Global API
...
Request
Purchase Order
Create
1min
Here is the below example on how to to create a PO using Breadwinners Global API.
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', 'DRAFT');
// 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');
lineItemMap.put('UnitAmount', 100);
lineItemMap.put('Quantity', 10);
lineItemMap.put('AccountCode', '310');
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>();
Map<String, Object> reqOptions = new Map<String, Object>();
finalReqMap.put('queryParameters', reqOptions);
finalReqMap.put('version', '1.0');
finalReqMap.put('action', 'createPurchaseOrder');
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);