loQbsession=CREATEOBJECT('QBFC5.QBSessionManager') loQBRequest= loQbsession.CreateMsgSetRequest("UK",<XMLVersion>,<XMLMinorVersion>) && set for your country/version loCustomer=loQBRequest.AppendCustomerAddRq() WITH loCustomer .CompanyName.SetValue("<Customer Name>") .BillAddress.addr1.SetValue("<Address Line1>") .BillAddress.addr2.SetValue("<Address Line2>") *! etc etc. ENDWITH loResponse = loQBSession.DoRequests(loQBRequest) && Save Details *! or to modify an existing loCustomer = loQBRequest.AppendCustomerModRq()FYI: from my experience speed is VERY dependant on network, local queries on machine with QuickBooks installed have a reasonable performance, when accessed across network performance deteriorates significantly (another reason for a server based approach?)