Global API
...
Request
Invoice
Create
1min
In Xero, the "Invoice" object includes Invoices, Bills, and Credit Notes. So, when creating the Invoice, set the field "Type" with the value "ACCREC".
Request
Response
// Create a Map to store all the data of a Invoice List<Object> invoiceList = new List<Object>(); Map<String, Object> invoiceMap = new Map<String, Object>(); invoiceMap.put('Type', 'ACCREC'); invoiceMap.put('DateString', '2021-11-11T00:00:00'); invoiceMap.put('DueDateString', '2021-12-06T00:00:00'); invoiceMap.put('LineAmountTypes', 'Exclusive'); invoiceMap.put('Status', 'DRAFT'); // Initializing the Contact Map<String, Object> contactMap = new Map<String, Object>(); contactMap.put('ContactID', 'c84ebb15-0a8d-4145-933f-203e68d014a0'); invoiceMap.put('Contact', contactMap); // Initializing the Invoice 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', '200'); lineItemList.add(lineItemMap); // Adding the Line Items to Invoice invoiceMap.put('LineItems', lineItemList); invoiceList.add(invoiceMap); // Initializing the RequestJSON Data to be passed. Map<String, Object> reqJSONMap = new Map<String, Object>(); reqJSONMap.put('invoices', invoiceList); 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', 'createInvoice'); 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);