Global API
...
Request
Purchase Order
Update
1min
To update a PO in Xero, make sure you set the field "PurchaseOrderID" with the unique reference value (ID generated by Xero for the PO)
Request
Response
// Create a Map to store all the data of a Purchase Order List<Object> purchaseOrderList = new List<Object>(); Map<String, Object> purchaseOrderMap = new Map<String, Object>(); purchaseOrderMap.put('DateString', '2021-11-11T00:00:00'); purchaseOrderMap.put('DeliveryDate', '2021-12-06T00:00:00'); purchaseOrderMap.put('Status', 'AUTHORISED'); purchaseOrderMap.put('PurchaseOrderID', '2fef007e-1979-4634-9bb7-87c4559a0038'); // Initializing the Contact Map<String, Object> contactMap = new Map<String, Object>(); contactMap.put('ContactID', 'c84ebb15-0a8d-4145-933f-203e68d014a0'); purchaseOrderMap.put('Contact', contactMap); // Initializing the Purchase Order Line Items List<Object> lineItemList = new List<Object>(); Map<String, Object> lineItemMap = new Map<String, Object>(); lineItemMap.put('Description', 'Line Item Description updated'); lineItemMap.put('UnitAmount', 100); lineItemMap.put('Quantity', 10); lineItemMap.put('AccountCode', '310'); lineItemMap.put('LineItemID', 'fd9bd48c-9f10-44de-aee4-c6185b2868c3'); lineItemList.add(lineItemMap); // Adding the Line Items to Purchase Order purchaseOrderMap.put('LineItems', lineItemList); purchaseOrderList.add(purchaseOrderMap); // Initializing the RequestJSON Data to be passed. Map<String, Object> reqJSONMap = new Map<String, Object>(); reqJSONMap.put('purchaseOrders', purchaseOrderList); String reqJSON = JSON.serialize(reqJSONMap); Map<String, Object> finalReqMap = new Map<String, Object>(); finalReqMap.put('version', '1.0'); finalReqMap.put('action', 'updatePurchaseOrder'); finalReqMap.put('RequestJSON', reqJSON); finalReqMap.put('skipDML', false); //Required, if Xero Multi-Org is enabled in Breadwinner. finalReqMap.put('xeroOrgId', '!aa00TM'); System.debug('Request ::: ' + finalReqMap); // Placing a request to Breadwinner Global API Map<String, Object> respMap = bread_winner.BreadwinnerXeroAPI.call(finalReqMap); System.debug('Response ::: ' + respMap);