Website logo
Product Overview
NetSuite
Payments
QuickBooks
Xero
Navigate through spaces
⌘K
Getting Started
Guided Wizard
Guided Wizard Settings
Custom Guided Wizard
Button URL Structure
Button URL Generator
Support
Global API
API Overview
Request
Response
Code Examples
Advanced Topics
Batch Invoicing
Technical Resources
Breadwinner Setup
Requirements
ERD / Object Structure
Getting Help
Version History
Docs powered by Archbee
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);




Updated 03 Mar 2023
Did this page help you?
PREVIOUS
Create
NEXT
Payment
Docs powered by Archbee
Docs powered by Archbee