Global API
...
Request
Bill
Update
1min
The following is an example of updating a Bill. The QuickBooks Bill ID (id), Vendor Reference Id (VendorRef) and Sync Token (SyncToken) are required to update the Bill. (See Bill for the available fields).
Note: You can only create one record at a time.
Request
Response
// Create a Map to store all the data of a Bill
Map<String, Object> billMap = new Map<String, Object>();
List<Object> lineItemList = new List<Object>();
List<Object> billList = new List<Object>();
// Assign value of Opportunity to QuickBook Bill
billMap.put('TxnDate','2024-04-26');
billMap.put('DueDate','2024-05-26');
billMap.put('Id','191');
billMap.put('SyncToken','0');
billMap.put('TrackingNumber','12');
billMap.put('GlobalTaxCalculation','TaxInclusive');
billMap.put('SalesTermRef' , new Map<String, Object>{'value' => '2' });
billMap.put('VendorRef' , new Map<String, Object>{'value' => '83' });
billMap.put('PrivateNote' , 'updated');
// Assign value of OpportunityLineItem to QuickBook Bill
Map<String, Object> lineItemMap = new Map<String, Object>();
Map<String, Object> salesLineItemDetailMap = new Map<String, Object>();
lineItemMap.put('DetailType','ItemBasedExpenseLineDetail');
lineItemMap.put('Amount',100);
salesLineItemDetailMap.put('ItemRef' , new Map<String, Object>{'value' => '19' });
salesLineItemDetailMap.put('TaxCodeRef', new Map<String, Object>{'value' => 'NON' });
salesLineItemDetailMap.put('Qty','10');
salesLineItemDetailMap.put('UnitPrice','10');
if(lineItemMap.get('DetailType') == 'SalesItemLineDetail'){
lineItemMap.put('SalesItemLineDetail',salesLineItemDetailMap);
}else if(lineItemMap.get('DetailType') == 'ItemBasedExpenseLineDetail'){
lineItemMap.put('ItemBasedExpenseLineDetail',salesLineItemDetailMap);
}
lineItemList.add(lineItemMap);
// Adding the Line Items to QuickBook Bill
billMap.put('Line',lineItemList);
billList.add(billMap);
Map<String, Object> reqJSONMap = new Map<String, Object>();
reqJSONMap.put('Bill' , billList);
String reqJSON = JSON.serialize(reqJSONMap);
Map<String, Object> finalReqMap = new Map<String, Object>();
Map<String,Object> reqOptions = new Map<String,Object>();
finalReqMap.put('options' , reqOptions);
finalReqMap.put('version' , '1.0');
finalReqMap.put('action' , 'updateBill');
finalReqMap.put('RequestJSON' , reqJSON);
finalReqMap.put('qbOrgId' , '4620816365285051610');
// Required, if QuickBooks Multi-Org is enabled in Breadwinner.
finalReqMap.put('skipDML' , false);
System.debug('Request ::: ' + finalReqMap);
Map<String, Object> respMap = breadwinner_qbo.BreadwinnerQBAPI.call(finalReqMap);
System.debug('Response ::: ' + respMap);