How to get purchase order documents from tradeShift API?

228 Views Asked by At

I am trying to get the trade shift purchase order using their API.

FYI, While I am making an API request,

  • I am using OAuth1.
  • I am using endpoint https://api-sandbox.tradeshift.com/tradeshift/rest/external/documents?limit=5

In the header, When I set Accept as application/JSON, I am getting a response like

{
  "itemsPerPage": 5,
  "itemCount": 2,
  "indexing": false,
  "numPages": 1,
  "pageId": 0,
  "Document": []
}

But If I add nothing in the Header, I am getting an XML response.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ts:DocumentList xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:ts="http://tradeshift.com/api/public/1.0" xmlns:ns6="http://tradeshift.com/api/1.0" xmlns:ns7="http://tradeshift.com/api/2.0" xmlns:ns8="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:ns9="urn:oasis:names:specification:ubl:schema:xsd:Quotation-2" xmlns:ns10="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2" xmlns:ns11="urn:oasis:names:specification:ubl:schema:xsd:Order-2" xmlns:ns12="urn:oasis:names:specification:ubl:schema:xsd:OrderChange-2" xmlns:ns13="urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2" xmlns:ns14="urn:oasis:names:specification:ubl:schema:xsd:Reminder-2" xmlns:ns15="urn:oasis:names:specification:ubl:schema:xsd:RemittanceAdvice-2" xmlns:ns16="urn:oasis:names:specification:ubl:schema:xsd:ReceiptAdvice-2" xmlns:ns17="urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2" xmlns:ns18="https://tradeshift.com/documents/ubl/xsd/Requisition-2" xmlns:ns19="urn:oasis:names:specification:ubl:schema:xsd:OrderResponse-2" xmlns:ns20="urn:oasis:names:specification:ubl:schema:xsd:RequestForQuotation-2" xmlns:ns21="urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2" xmlns:ns22="urn:oasis:names:specification:ubl:schema:xsd:OrderCancellation-2" xmlns:ns23="urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2" indexing="false" numPages="1" pageId="0" itemsPerPage="5" itemCount="2"/>

I am not quite sure if the document is already there as UBL format.

Can you please ensure, if the document is already there as UBL.

If document is there, then How can I parse the document? And if the document is not there, how can I get the documents?

1

There are 1 best solutions below

1
On

The document is not there, that both responses are the same just the format is different. In order to get the Documents that you receive in your Tradeshift account you should follow the below steps:

  1. get the list with all the documents available in your account using the below API: GET https://api-sandbox.tradeshift.com/tradeshift/rest/external/documents?type=order Content-Type=application/json Accept=application/json Authorisation=oauth1

As response, you will have a JSON with all the orders in your account and the details you will need to retrieve the UBL file of the order.

  1. From the JSON resulted in point 1 using the DocumentId of the order you want to get make the below call GET https://api-sandbox.tradeshift.com/tradeshift/rest/external/documents/{DocumentUUID} Content-Type=application/json Accept=application/xml Authorisation=oauth1

  2. Once you get a file in order to get it marked as processed you can also tag the document using the below API call:

    PUT https://api.tradeshift.com/tradeshift/rest/external/documents/{DocumentId}/tags/{your-tag}

At the first call, you can then add more parameters like withouttag in order to filter out the documents you have tagged already, like in the below call:

`GET https://api-sandbox.tradeshift.com/tradeshift/rest/external/documents?type=order&withouttag={your-tag}`