Creating the Posted Data for Importing Invoice on Reckon Accounts Hosted

Jerwin Ollica Plaquia
Jerwin Ollica Plaquia Member Posts: 40
edited November 2020 in Reckon API
Hi Guys, 

Good day.

I just want to ask on how can I be able to send invoices from my application to Reckon Accounts Hosted via API.

I was able to set up a test company provided from the SDK Development Tools and was able to initiate connection to it, now my problem is on how to send my invoice data to the RAH via API.

Do I need to create a QBXML file? Then send it via POST Method (Submit Request 2 as per AZURE PORTAL)? If yes, can you redirect me some link on how to create a QBXML file? I already have some articles here on how to create it, I just want to know if you can recommend some articles that is much informative than what I currently have here.

Hoping for your quick response.
Thanks for reading.
«1

Comments

  • Mehrnoosh
    Mehrnoosh Member Posts: 36
    edited September 2020
    Hi  Jerwin,

    I'm new in this area but this link might help you in regard to creating QBXML.
    https://developer-static.intuit.com/qbSDK-current/Common/newOSR/index.html
    you can find your request for example InvoiceAdd from  drop down list and use it in the body of request (Payload factory).
    Hope it helps you.
  • Jason Hollis
    Jason Hollis Alumni Posts: 516 Reckon Staff
    edited May 2017
    That's a great reference site we use a lot Mehrnoosh. Thanks for sharing. 

    An example request is:
    { "FileName":"Q:\My Company File.QBW",
     "Operation":"<?xml version="1.0\""?><?qbxml version=\""6.1\""?><QBXML><QBXMLMsgsRq onError=\""continueOnError\"">
    <CustomerQueryRq  requestID='1'>
    <OwnerID >0</OwnerID>
    </CustomerQueryRq >
    </QBXMLMsgsRq></QBXML>"",
    ""UserName"":""Admin"",
    ""Password"":""password"",
    ""CountryVersion"":""2015.R2.AU"" }
    Note for Reckon Accounts Hosted 2016 R2 you must use 2015.R2 in your call. 

    Also try and filter where you can as the core SDK can time-out if trying to retrieve large datasets. "
  • Jerwin Ollica Plaquia
    Jerwin Ollica Plaquia Member Posts: 40
    edited May 2017
    Hi Mehrnoosh,

    Thank you so much for the link. I am also new to this Integration so the link you shared really helps a lot.

    Thanks again.


    Hi Jason,

    Noted that, thanks.
  • Jerwin Ollica Plaquia
    Jerwin Ollica Plaquia Member Posts: 40
    edited May 2017
    Hi Mehrnoosh,

    Following the link you gave earlier, I was wondering on how I can have it attached to the JSON Request like what Jason did as per the above reply.

    Because on how I can see it, it seems the QBXML request is included in the JSON array. Now my concern is, how can I add the QBXML request to the JSON? I am thinking that I will parse it to string, then insert it to the JSON Array? Not sure though if this is correct.

    If parsing the QBXML to string is correct, may I know how to do it?

    Hi Jason,

    I also have a question, does the "Filename" field on the JSON request sample you gave, how do we make it dynamic? I mean, how do I get the company file that the user use to process the request to?

    Hoping for quick response.
    Thanks for reading guys.
    Good day.

  • Jason Hollis
    Jason Hollis Alumni Posts: 516 Reckon Staff
    edited May 2017
    We don't have a dynamic endpoint (yet) but we are investigating. Hosted uses AD so there are some complexities. The file path currently needs to be provided by the user. 

    Some apps guide them through the set-up with a wizard with examples on how to find the file path, but ideally we want to automate it.

    The best way (currently) is, logged in as ADMIN, go to File > Audit Company File which shows the correct credentials (remembering some files can be in the root drive (Q:) whilst others are shared).

    Use our help docs to determine the correct path details required.

    image

    Also don't forget to escape the \ in the JSON. 
  • Mehrnoosh
    Mehrnoosh Member Posts: 36
    edited September 2020
    Hi Jerwin,

    I'm not quite sure about your problem and I'm not confident enough in this area.
    What I've tried for Reckon Account Hosted API, using Postman and also Azure API portal to test my message and it works well so far.
    From where I'm standing this is a qbxml format embedded in the JSON. 
    My message for adding a new customer is like this:

    {

    "FileName":"Q:\mycompanyfilename.QBW",

    "Operation":"<?xml version="1.0\""?><?qbxml version=\""6.1\""?><QBXML><QBXMLMsgsRq onError=\""stopOnError\"">

    <CustomerAddRq>

       <CustomerAdd>

          <Name>Mehrnoosh A</Name>

          <FirstName>Mehrnoosh</FirstName>

          <LastName>A</LastName>

          <BillAddress>

             <Addr1>Harbour Espalanade</Addr1>

             <City>Docklands</City>

             <State>Victoria</State>

             <PostalCode>3018</PostalCode>

             <Country>Australia</Country>

             <Note>testNote</Note>

          </BillAddress>

          <ShipAddress>

             <Addr1>Toorak Road</Addr1>

             <City>Toorak</City>

             <State>Victoria</State>

             <PostalCode>3142</PostalCode>

             <Country>Australia</Country>

             <Note>AnotherTest</Note>

          </ShipAddress>

          <Phone>1345676</Phone>

          <Email>Test@gmail.com</Email>

          <JobStatus>InProgress</JobStatus>

       </CustomerAdd>

    </CustomerAddRq>

    </QBXMLMsgsRq></QBXML>"",

    ""UserName"":""username"",

    ""Password"":""password"",

    ""CountryVersion"":""2015.R2.AU""

     }

    I use the XML in the link that I've sent you to embed it into QBXMLMsgsRq.

    I started to work with Reckon API for one of our clients yesterday and I am not confident about this API, Sorry, it may don't help you,"
  • Jerwin Ollica Plaquia
    Jerwin Ollica Plaquia Member Posts: 40
    edited May 2017
    Hi Jason, 

    I see, okay that is understood. For now I will just hard code my QBW path for testing.

    Thanks.
  • Jerwin Ollica Plaquia
    Jerwin Ollica Plaquia Member Posts: 40
    edited May 2017
    Hi Mehrnoosh,

    Sorry I might have explained it poorly, what I was trying to say is that, how do you set the value of "Operation:" field in your JSON to QBXML request?

    Because I can't seem to see on how it was done on the link you sent earlier.

    Thanks,

  • Jason Hollis
    Jason Hollis Alumni Posts: 516 Reckon Staff
    edited May 2017
    I also updated this for shared folders on our Hosted API FAQ page. https://reckon.helpdocsonline.com/api-reckon-accounts-hosted-faq
  • Jason Hollis
    Jason Hollis Alumni Posts: 516 Reckon Staff
    edited May 2017
    You seem to be going very well so far Mehrnoosh !!

    Think of it as a desktop SDK (using qbXML) wrapped in a RESTful API Jerwin. 
  • Jerwin Ollica Plaquia
    Jerwin Ollica Plaquia Member Posts: 40
    edited May 2017
    Hi Jason,

    I was finally able to create a post data. Thanks a lot, Mehrnoosh for the link you gave, it is very helpful.

    Here is the sample data that I am trying to send though AZURE API portal.

    Please note that the test data is for the creating of a Customer Instead of Invoice, because it is much easier to provide a dummy data for a customer than a test invoice.

    {

      "FileName": "Q:\DevTestRAH\Test Enterprises.QBW",

      "Operation": "<?xml version="1.0\""?>

    <?qbxml version=\""13.0\""?>

    <QBXML>

    <QBXMLMsgsRq onError=\""stopOnError\"">

    <CustomerAddRq>

    <CustomerAdd>

    <Name>Test Customer</Name>

    <IsActive>1</IsActive>

    <CompanyName/>

    <Salutation>Mr.</Salutation>

    <FirstName>Test</FirstName>

    <MiddleName>Customer</MiddleName>

    <LastName>Customer</LastName>

    <JobTitle>Programmer</JobTitle>

    <BillAddress>

    <Addr1>323 Malugay St.</Addr1>

    <Addr2>San Martin De Porres</Addr2>

    <Addr3/>

    <Addr4/>

    <Addr5/>

    <City>Paranaque</City>

    <State>Metro Manila</State>

    <PostalCode>1700</PostalCode>

    <Country>Philippines</Country>

    </BillAddress>

    <ShipAddress>

    <Addr1>323 Malugay St.</Addr1>

    <Addr2>San Martin De Porres</Addr2>

    <Addr3/>

    <Addr4/>

    <Addr5/>

    <City>Paranaque</City>

    <State>Metro Manila</State>

    <PostalCode>1700</PostalCode>

    <Country>Philippines</Country>

    </ShipAddress>

    <ShipToAddress>

    <Addr1>323 Malugay St.</Addr1>

    <Addr2>San Martin De Porres</Addr2>

    <Addr3/>

    <Addr4/>

    <Addr5/>

    <City>Paranaque</City>

    <State>Metro Manila</State>

    <PostalCode>1700</PostalCode>

    <Country>Philippines</Country>

    </ShipToAddress>

    <Phone>+(63)9999999999</Phone>

    <AltPhone>+(63)9999999999</AltPhone>

    <Fax/>

    <Email>email@email.com</Email>

    </CustomerAdd>

    </CustomerAddRq>

    </QBXMLMsgsRq>

    </QBXML>"",

      ""UserName"": ""TestApp"",

      ""Password"": ""1234"",

      ""CountryVersion"": ""2015.R2.AU""

    }

    However, upon sending the data, I am having this error not sure on why this is happening as I have followed the steps on authorizing the APP to connect to the Reckon Accounts Hosted via this link: https://reckon.helpdocsonline.com/https-//reckon-helpdocsonline-com/api-reckon-accounts-hosted-autho...

    image

    Hope you can help me on this one.
    Thanks for reading.
    Good day."
  • Jerwin Ollica Plaquia
    Jerwin Ollica Plaquia Member Posts: 40
    edited May 2017
    Hi Jason,

    I was able to process it now by setting the CountryVersion to 2016.R2.AU. But I was wondering on why it takes long to create one customer, also as per the response, it says that the Request has not been completed yet. What does that mean?

    image

    Thanks in advanced.

  • Mehrnoosh
    Mehrnoosh Member Posts: 36
    edited May 2017
    Hi Jerwin,

    I used the QBXML version 6.1 instead of version 13. I'm not sure whether it matters or doesn't matter for sending a request.

    <?qbxml version="6.1\""?>

    Another error which I come across on that was:

    Code 400 bad request

    Message: Error connecting to Reckon Accounts. Recent changes to your configuration require you (the Reckon Accounts Administrator) to go into the Integrated Applications and re-authorize your integrated application to login automatically.preferences

    Once I log out from my account in Reckon, the request come through the system. 

    CountryVersion to 2016.R2.AU doesn't work you should change it back to the 2015.R2.AU"
  • Jerwin Ollica Plaquia
    Jerwin Ollica Plaquia Member Posts: 40
    edited May 2017
    Hi Mehrnoosh,

    I also came across on that error you mentioned, but yeah logging in and out of the RAH did the trick.

    I also encountered an Error wherein it says that it cannot connect to Reckon Accounts, sadly I wasn't able to take a screenshot of that error.

    I am not sure but I think the QBXML version won't really matter as I tried both version 6.1 and 13.0 and it worked fine. Although the response that I am having says that the "Request has not been completed yet. Please check back in couple of minutes."

    But the CountryVersion did matter as when I tried setting it to 2015.R2.AU I am having a 401 Error, but when I changed it to 2016.R2.AU it worked, though I still got the same response mentioned above.

    How about on your end, do you get the same response as I am having? or it is a different one? sorry to bother but, is it okay if you can post a screenshot of the response here, in case that you have a different response?

    Thanks in advanced.
  • Mehrnoosh
    Mehrnoosh Member Posts: 36
    edited May 2017
    Once I tried to send a request with CountryVersion 2016.R2.AU, I got same message request has not been completed. I asked here and Jason mentioned to change it to 2015 and it works fine.

    To me, Code 401 is related to Authorization.
     I do the following steps.
    firstly I sent this request with Admin account

    {

    "CountryVersion": "2015.R2.AU",

    "FileName":"Q:\mycompanyname.QBW",

    "Operation": "<?xml version="1.0\""?><?qbxml version=\""6.1\""?><QBXML><QBXMLMsgsRq onError=\""continueOnError\"">

    <CompanyQueryRq/></QBXMLMsgsRq></QBXML>"",

      ""UserName"": ""Admin"",

      ""Password"": ""mypassword""

    }

    2. open the Reckon hosted account (company file)
    1. click Edit > Preferences...
    2. In the Preferences windows, click Integrated Applications
    3. Click the Company Preferences tab.
    Ensure that Allow this application to read and modify this company file is ticked, and that Allow this application to login automatically is ticked.
     
    3. then change the login user from admin to another user
    4. Do the steps again for new users.
    my response:

    {

      ""RequestId"": null,

      ""Data"": ""<?xml version=\""1.0\"" ?>\n<QBXML>\n<QBXMLMsgsRs>\n<CompanyQueryRs statusCode=\""0\"" statusSeverity=\""Info\"" statusMessage=\""Status OK\"">\n<CompanyRet>\n<IsSampleCompany>false</IsSampleCompany>\n<CompanyName>mycompanyname</CompanyName>\n<AddressBlock>\n<Addr1> </Addr1>\n</AddressBlock>\n<FirstMonthFiscalYear>July</FirstMonthFiscalYear>\n<FirstMonthIncomeTaxYear>July</FirstMonthIncomeTaxYear>\n<TaxForm>OtherOrNone</TaxForm>\n</CompanyRet>\n</CompanyQueryRs>\n</QBXMLMsgsRs>\n</QBXML>\n"",

      ""Success"": true,

      ""RetryLater"": false,

      ""Message"": ""Your data was processed successfully""

    }

    After I've been authorised to access to the company file, 
    I used username and password as 'username' and 'password' respectively not the actual username and password values.

    ""UserName"":""username"",

    ""Password"":""password""

    "
  • Jason Hollis
    Jason Hollis Alumni Posts: 516 Reckon Staff
    edited May 2017
    Thanks again for helping out Mehrnoosh. 

    You are quite correct - version needs to be 2015 and isnt the issue here. 

    Jerwin please check the help docs online site again as we have made a few changes including yesterday. Also check the FAQs.

    You definitely need to REGISTER the API using the COMPANY FILE admin username and password, then go into the app as Mehrnoosh mentions and ensure that the api is located in the integrated applications window (if you used the old method to register previously - that is - register offline - you should delete and re-register).

    You should then change the user for the call to the api integrated application in the preferences, and use this from now on.

    ALSO

    If you log into Reckon Accounts Hosted with the same user as the API you may get issues, so we advise to always have one user for the api (with full access) and one user for your testing in the UI (and of course Admin user is there by default). 

    Have a re-read of the OAuth and Reckon Accounts Hosted online docs again to see if you have missed anything. 

    Jason
  • Jason Hollis
    Jason Hollis Alumni Posts: 516 Reckon Staff
    edited May 2017
    Oh, and you MUST use xml v 6.1 definitely !
  • Jerwin Ollica Plaquia
    Jerwin Ollica Plaquia Member Posts: 40
    edited May 2017
    Hi Jason,

    I've redo the process on Authorizing the API, and I was finally able to get a 200 response.

    Using the Post data below.

    {

    "CountryVersion": "2015.R2.AU",

    "FileName":"Q:\mycompanyname.QBW",

    "Operation": "<?xml version="1.0\""?><?qbxml version=\""6.1\""?><QBXML><QBXMLMsgsRq onError=\""continueOnError\"">

    <CompanyQueryRq/></QBXMLMsgsRq></QBXML>"",

      ""UserName"": ""TestApp"",

      ""Password"": ""1234""

    }

    However after that, I tried sending the data below, I get a Error that says ""Reckon Accounts found an error when parsing the provided XML Text Stream"".

    {

        ""FileName"": ""Q:\myCompany.QBW"",

        ""Operation"": ""<?xml version=\""1.0\""?><?qbxml version=\""6.1\""?><QBXML><QBXMLMsgsRq onError=\""stopOnError\""><CustomerAddRq><CustomerAdd><Name>Jerwin Ollica Plaquia</Name><IsActive>1</IsActive><CompanyName></CompanyName><Salutation>Mr.</Salutation><FirstName>Jerwin</FirstName><MiddleName>Ollica</MiddleName><LastName>Plaquia</LastName><JobTitle>Programmer</JobTitle><BillAddress><Addr1>323 Malugay St.</Addr1><Addr2>San Martin De Porres</Addr2><Addr3></Addr3><Addr4></Addr4><Addr5></Addr5><City>Paranaque</City><State>Metro Manila</State><PostalCode>1700</PostalCode><Country>Philippines</Country></BillAddress><ShipAddress><Addr1>323 Malugay St.</Addr1><Addr2>San Martin De Porres</Addr2><Addr3></Addr3><Addr4></Addr4><Addr5></Addr5><City>Paranaque</City><State>Metro Manila</State><PostalCode>1700</PostalCode><Country>Philippines</Country></ShipAddress><ShipToAddress><Addr1>323 Malugay St.</Addr1><Addr2>San Martin De Porres</Addr2><Addr3></Addr3><Addr4></Addr4><Addr5></Addr5><City>Paranaque</City><State>Metro Manila</State><PostalCode>1700</PostalCode><Country>Philippines</Country></ShipToAddress><Phone>+(63)9999999999</Phone><AltPhone>+(63)9999999999</AltPhone><Fax></Fax><Email>jerwin_plaquia@indigo8-solutions.com</Email></CustomerAdd></CustomerAddRq></QBXMLMsgsRq></QBXML>"",

        ""UserName"": ""TestApp"",

        ""Password"": ""1234"",

        ""CountryVersion"": ""2015.R2.AU""

      }

    Then I tried copying Mehrnoosh sample request for creating a customer and changing the values then it work fine and flow through my company.

    Can you please enlighten me on why there was a parsing error occuring in my request, while when I tried copying on Mehrnoosh it worked fine.

    Hoping for your quick response.

    Thanks

    "
  • Mehrnoosh
    Mehrnoosh Member Posts: 36
    edited May 2017
    That's great Jerwin.

    I came across this XML parsing error as well. I don't know what is the problem for some fields. I used online XML reader to find out is it my problem but XML reader can parse my XML. but Reckon API cannot.


  • Mehrnoosh
    Mehrnoosh Member Posts: 36
    edited May 2017
    Hi Jason,

    Can I post a new job to the reckon through the API? In the link that I've already shared here, I found qbxml for adding job type but I couldn't find any XML for adding a New job?

    Thanks in advance
  • Jason Hollis
    Jason Hollis Alumni Posts: 516 Reckon Staff
    edited May 2017
    A job is simply a subset of a customer. Customer:Job, so really, it is still a customer. 
  • Mehrnoosh
    Mehrnoosh Member Posts: 36
    edited May 2017
    Thank you for your prompt reply.
  • Jason Hollis
    Jason Hollis Alumni Posts: 516 Reckon Staff
    edited September 2017
    image
  • Jerwin Ollica Plaquia
    Jerwin Ollica Plaquia Member Posts: 40
    edited September 2020
    Hi, 

    I was able to finally send a sample data on creating a customer on the Reckon AZURE portal last Friday. Then this morning I proceed to sending an Invoice through API as per data below, on the Reckon Azure Portal as well.

    {
    "Filename": "Q:\myCompany.QBW",
    "Operation": "<?xml version="1.0\""?>
    <?qbxml version=\""6.1\""?>
    <QBXML>
    <QBXMLMsgsRq onError=\""stopOnError\"">
    <InvoiceAddRq>
    <InvoiceAdd>
    <CustomerRef>
    <FullName>Jerwin Ollica Plaquia</FullName>
    </CustomerRef>
    <TxnDate>2017-05-22</TxnDate>
    <RefNumber>PHP20799</RefNumber>
    <BillAddress>
    <Add1>323 Malugay St.</Add1>
    <Add2>San Martin De Porres</Add2>
    <City>Paranaque</City>
    <State>Metro Manila</State>
    <PostalCode>1700</PostalCode>
    <Country>Philippines</Country>
    </BillAddress>
    <PONumber>11250</PONumber>
    <DueDate>2017-05-25</DueDate>
    <InvoiceLineAdd>
    <Desc>JE-003 - Jerwin Desc Style Test - Chrome</Desc>
    <Quantity>5</Quantity>
    <Rate>100.0000</Rate>
    <Amount>500.0000</Amount>
    </InvoiceLineAdd>
    <InvoiceLineAdd>
    <Desc>JE-003 - Jerwin Desc Style Test - Gold</Desc>
    <Quantity>4</Quantity>
    <Rate>100.0000</Rate>
    <Amount>400.0000</Amount>
    </InvoiceLineAdd>
    </InvoiceAdd>
    </InvoiceAddRq>
    </QBXMLMsgsRq>
    </QBXML>"",
    ""Username"": ""TestApp"",
    ""Password"": ""1234"",
    ""CountryVersion"": ""2015.R2.AU""
    }

    However upon sending I encountered this error again.

    image

    Can you please enlighten me on what is wrong on the QBXML that I am sending? As I have followed the format as per Mehrnoosh link above, though I haven't added all fields as per that link since most of them are optional.

    Also, I am just wondering if its possible that you can make the response error a bit more detailed? ie if I am missing a required column or have added a column that is not accepted on the QBXML version 6.1? Instead of getting the same error and then doing a trial and error on removing or adding a column? Not sure about this though.

    Hoping for your quick response.
    Thanks for reading.
    Good day.

    "
  • Jerwin Ollica Plaquia
    Jerwin Ollica Plaquia Member Posts: 40
    edited May 2017
    I also tried sending this one. But still no luck on being able to create the invoice.

    Hope you can help point out what is wrong or missing in the posted data that I am sending

    {
    "Filename": "Q:\myCompany.QBW",
    "Operation": "<?xml version="1.0\""?>
    <?qbxml version=\""6.1\""?>
    <QBXML>
    <QBXMLMsgsRq onError=\""stopOnError\"">
    <InvoiceAddRq>
    <InvoiceAdd>
    <CustomerRef>
    <FullName>Jerwin Ollica Plaquia</FullName>
    </CustomerRef>
    <TxnDate>2017-05-22</TxnDate>
    <RefNumber>PHP20799</RefNumber>
    <ARAccountRef>
    <FullName>Accounts Receivable</FullName>
    </ARAccountRef>
    <BillAddress>
    <Add1>323 Malugay St.</Add1>
    <Add2>San Martin De Porres</Add2>
    <City>Paranaque</City>
    <State>Metro Manila</State>
    <PostalCode>1700</PostalCode>
    <Country>Philippines</Country>
    </BillAddress>
    <ShipAddress>
    <Add1>323 Malugay St.</Add1>
    <Add2>San Martin De Porres</Add2>
    <City>Paranaque</City>
    <State>Metro Manila</State>
    <PostalCode>1700</PostalCode>
    <Country>Philippines</Country>
    </ShipAddress>
    <PONumber>11250</PONumber>
    <DueDate>2017-05-25</DueDate>
    <CustomerSalesTaxCodeRef>
    <FullName>GST</FullName>
    </CustomerSalesTaxCodeRef>
    <IsToBePrinted>1</IsToBePrinted>
    <IsToBeEmailed>1</IsToBeEmailed>
    <InvoiceLineAdd>
    <Desc>JE-003 - Jerwin Desc Style Test - Chrome</Desc>
    <Quantity>5</Quantity>
    <Rate>100.0000</Rate>
    <Amount>500.0000</Amount>
    <SalesTaxCodeRef>
    <FullName>GST</FullName>
    </SalesTaxCodeRef>
    </InvoiceLineAdd>
    <InvoiceLineAdd>
    <Desc>JE-003 - Jerwin Desc Style Test - Gold</Desc>
    <Quantity>4</Quantity>
    <Rate>100.0000</Rate>
    <Amount>400.0000</Amount>
    <SalesTaxCodeRef>
    <FullName>GST</FullName>
    </SalesTaxCodeRef>
    </InvoiceLineAdd>
    </InvoiceAdd>
    </InvoiceAddRq>
    </QBXMLMsgsRq>
    </QBXML>"",
    ""Username"": ""TestApp"",
    ""Password"": ""1234"",
    ""CountryVersion"": ""2015.R2.AU""
    }

    Thanks and Good day.

    "
  • Jason Hollis
    Jason Hollis Alumni Posts: 516 Reckon Staff
    edited May 2017
    Hi Jerwin, the team are trying to get to you so hang in there.

    Just checking - you are able to retrieve a simple query aren't you? eg. Chart of Accounts list?

    I want to make sure you can access a company file and perform a simple task.
  • Simon Hutchinson_8164484
    Simon Hutchinson_8164484 Alumni Posts: 135
    edited May 2017
    Hi Jerwin

    Its potentially because you have not used the Admin username in the call, which you must do if you include the Username parameter

    Try
    "Username": "Admin",

    with the Admin password

    Thanks

    Simon H
    Reckon API 

  • Jason Hollis
    Jason Hollis Alumni Posts: 516 Reckon Staff
    edited May 2017
    Yes thanks Simon. So Jerwin we need you to check (and answer) the following:
    • In the company file, under Edit > Preferences > Integrated applications can you see the Reckon API listed? If not you have not registered the API in the company file (see online help docs).
    • If so, check the properties. The user and password need to match what you are sending in your call (but as Simon advised you need to send ADMIN at least once to register the api in the company file - it's all in the online docs.
    • If this is ok, then can you retrieve simple data as I posted above?
    Thanks. 

  • Jerwin Ollica Plaquia
    Jerwin Ollica Plaquia Member Posts: 40
    edited May 2017
    Sorry for the very late response.

    Hi Simon,

    I did use the Admin account first before (on the creation of a Test Customer) and it worked fine. Tried it with a sample account I added on the Reckon API as per the Authorizing the API documentation and it worked fine as well.

    That's when I assume that I am now able to access my Company File through API, then I get this issue when I tried sending an Invoice.

    Hi Jason,

    I have check all the points you mentioned above and they are all good. Please note that I was able to create a sample Customer on my Company file using the same credential as I posted above.

    I was also able to retrieve some invoices using "InvoiceQueryReq" using the same credential as per above post data, I guess I am able to access my company file, right?

    Though I change the value of the "FileName" on the Post Data above, in case you need it the correct company file that I am accessing through API is "Q:\I8TestRAH\Cougar Enterprises.QBW" the credentials is the same.

    Hoping for your quick response.
    Thanks,

  • Jason Hollis
    Jason Hollis Alumni Posts: 516 Reckon Staff
    edited May 2017
    Hi Jerwin,

    You need to do the ADMIN API register process with EVERY company (*.QBW) file. So sounds like you have only done that with your first test file. 

    That first call using the ADMIN user is what registers the API, and yes, its 'per file'. 

  • Jerwin Ollica Plaquia
    Jerwin Ollica Plaquia Member Posts: 40
    edited May 2017
    Hi Jason, I have already done that. Please note that I am only using one QBW file. I just changed the value of the filename on the request when I post it here. But when I was able to create a customer, and query an Invoice they were all accessing the same company file. When I was trying to create an Invoice which has the issue, it was the same company file as well. Thanks.
  • Jason Hollis
    Jason Hollis Alumni Posts: 516 Reckon Staff
    edited May 2017
    Thanks so much for clarifying Jerwin.

    Can you test your InvoiceQueryReq call again. If it works let us know and we'll look closer at the XML itself. 
  • Jerwin Ollica Plaquia
    Jerwin Ollica Plaquia Member Posts: 40
    edited May 2017
    Hi Jason,

    I just tried doing the InvoiceQueryReq and it works fine. Please see posted data below that I am sending on the Azure Portal, just in case you might need it.

    {
        "FileName": "Q:\I8TestRAH\Cougar Enterprises.QBW",
        "Operation": "<?xml version="1.0\""?>
    <?qbxml version=\""6.1\""?>
    <QBXML>
    <QBXMLMsgsRq onError=\""stopOnError\"">
    <InvoiceQueryRq>
    <MaxReturned>1</MaxReturned>
    <IncludeLineItems >1</IncludeLineItems>
    </InvoiceQueryRq>
    </QBXMLMsgsRq>
    </QBXML>"",
        ""UserName"": ""TestApp"",
        ""Password"": ""1234"",
        ""CountryVersion"": ""2015.R2.AU""
      }

    Hoping for your quick response.
    Thanks,

    "
  • Jason Hollis
    Jason Hollis Alumni Posts: 516 Reckon Staff
    edited May 2017
    OK great. I'll ask the API team to look at the other call (and xml) more closely. 
  • Simon Hutchinson_8164484
    Simon Hutchinson_8164484 Alumni Posts: 135
    edited May 2017
    Hi Jerwin,

    You are not defining the items to include on the line items you have in the XML

    <ItemRef>
    <FullName>test</FullName>
    </ItemRef>

    For example

    <InvoiceLineAdd>
    <ItemRef>
    <FullName>test</FullName>
    </ItemRef>
    <Desc>JE-003 - Jerwin Desc Style Test - Chrome</Desc>
    <Quantity>5</Quantity>
    <Rate>100.0000</Rate>
    <Amount>500.0000</Amount>
    </InvoiceLineAdd>


    Thanks

    Simon H
    Reckon API
  • Jerwin Ollica Plaquia
    Jerwin Ollica Plaquia Member Posts: 40
    edited May 2017
    Hi Simon, 

    I just tried it again, unfortunately same error.

    Thanks.
  • Jason Hollis
    Jason Hollis Alumni Posts: 516 Reckon Staff
    edited May 2017
    Can you post the full code you sent here please? (change anything sensitive)
  • Jerwin Ollica Plaquia
    Jerwin Ollica Plaquia Member Posts: 40
    edited May 2017
    Hi Jason,

    Here it is. Hasn't done any changes.

    It's almost the same as the one I post here yesterday, I just added the "<ItemRef>" tag as per Simons' instruction.

    {
    "FileName": "Q:\I8TestRAH\Cougar Enterprises.QBW",
    "Operation": "<?xml version="1.0\""?>
    <?qbxml version=\""6.1\""?>
    <QBXML>
    <QBXMLMsgsRq onError=\""stopOnError\"">
    <InvoiceAddRq>
    <InvoiceAdd>
    <CustomerRef>
    <FullName>Jerwin Ollica Plaquia</FullName>
    </CustomerRef>
    <TxnDate>2017-05-22</TxnDate>
    <RefNumber>PHP20799</RefNumber>
    <BillAddress>
    <Add1>323 Malugay St.</Add1>
    <Add2>San Martin De Porres</Add2>
    <City>Paranaque</City>
    <State>Metro Manila</State>
    <PostalCode>1700</PostalCode>
    <Country>Philippines</Country>
    </BillAddress>
    <PONumber>11250</PONumber>
    <DueDate>2017-05-25</DueDate>
    <InvoiceLineAdd>
    <ItemRef>
    <FullName>Test 01</FullName>
    </ItemRef>
    <Desc>JE-003 - Jerwin Desc Style Test - Chrome</Desc>
    <Quantity>5</Quantity>
    <Rate>100.0000</Rate>
    <Amount>500.0000</Amount>
    </InvoiceLineAdd>
    <InvoiceLineAdd>
    <ItemRef>
    <FullName>Test 02</FullName>
    </ItemRef>
    <Desc>JE-003 - Jerwin Desc Style Test - Gold</Desc>
    <Quantity>4</Quantity>
    <Rate>100.0000</Rate>
    <Amount>400.0000</Amount>
    </InvoiceLineAdd>
    </InvoiceAdd>
    </InvoiceAddRq>
    </QBXMLMsgsRq>
    </QBXML>"",
    ""Username"": ""TestApp"",
    ""Password"": ""1234"",
    ""CountryVersion"": ""2015.R2.AU""
    }

    Thanks,"
  • Simon Hutchinson_8164484
    Simon Hutchinson_8164484 Alumni Posts: 135
    edited May 2017
    Hi Jerwin

    Try this in the Operation element

    <?xml version="\1.0"?>
    <?qbxml version=\""6.1\""?>
    <QBXML>
    <QBXMLMsgsRq onError=""stopOnError"">
    <InvoiceAddRq>
    <InvoiceAdd>
    <CustomerRef>
    <FullName>Jerwin Ollica Plaquia</FullName>
    </CustomerRef>
    <TxnDate>2017-05-22</TxnDate>
    <RefNumber>PHP20799</RefNumber>
    <BillAddress>
    <Addr1>323 Malugay St.</Addr1>
    <Addr2>San Martin De Porres</Addr2>
    <City>Paranaque</City>
    <State>Metro Manila</State>
    <PostalCode>1700</PostalCode>
    <Country>Philippines</Country>
    </BillAddress>
    <PONumber>11250</PONumber>
    <DueDate>2017-05-25</DueDate>
    <InvoiceLineAdd>
    <ItemRef>
    <FullName>Test 01</FullName>
    </ItemRef>
    <Desc>JE-003 - Jerwin Desc Style Test - Chrome</Desc>
    <Quantity>5</Quantity>
    <Rate>100.00</Rate>
    <Amount>500.00</Amount>
    </InvoiceLineAdd>
    <InvoiceLineAdd>
    <ItemRef>
    <FullName>Test 02</FullName>
    </ItemRef>
    <Desc>JE-003 - Jerwin Desc Style Test - Gold</Desc>
    <Quantity>4</Quantity>
    <Rate>100.00</Rate>
    <Amount>400.00</Amount>
    </InvoiceLineAdd>
    </InvoiceAdd>
    </InvoiceAddRq>
    </QBXMLMsgsRq>
    </QBXML>

    Thanks

    Simon H
    Reckon API

    "
  • Jerwin Ollica Plaquia
    Jerwin Ollica Plaquia Member Posts: 40
    edited May 2017
    HI Simon,

    That seems to do it, although it still returns an error but the error is much clearer now.

    I am just wondering as per the error, it says There is an invalid reference to Reckon Accounts Item "Test 01" in the Invoice line. Does this mean, that I need to create the Line Item First?

    If yes, is it possible to add an invoice item without adding it to the List? like manually adding an item. 

    Hoping for your quick response.
    Thanks