Global API
...
Request
Bill
Create
1min
The following is an example of creating a Bill where we are setting every possible field (See Bill for the available fields). The response will return the exact request data plus the new QuickBooks Bill ID (Id).
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('DocNumber', '0001');
billMap.put('PrivateNote','Create Bill');
billMap.put('TrackingNumber','12');
billMap.put('GlobalTaxCalculation','NotApplicable');
billMap.put('SalesTermRef' , new Map<String, Object>{'value' => '2' });
billMap.put('VendorRef' , new Map<String, Object>{'value' => '67' });
// Assign value of OpportunityLineItem to QuickBook Bill
Map<String, Object> lineItemMap = new Map<String, Object>();
Map<String, Object> salesLineItemDetailMap = new Map<String, Object>();
Map<String, Object> discountItemDetailMap = new Map<String, Object>();
lineItemMap.put('Description','Description');
lineItemMap.put('DetailType','ItemBasedExpenseLineDetail');
lineItemMap.put('Amount',10000);
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','1000');
if(lineItemMap.get('DetailType') == 'AccountBasedExpenseLineDetail'){
lineItemMap.put('AccountBasedExpenseLineDetail',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' , 'createBill');
finalReqMap.put('RequestJSON' , reqJSON);
//Required, if QuickBooks Multi-Org is enabled in Breadwinner.
finalReqMap.put('qbOrgId' , '4620816365285051610');
finalReqMap.put('skipDML' , false);
System.debug('Request ::: ' + finalReqMap);
Map<String, Object> respMap = breadwinner_qbo.BreadwinnerQBAPI.call(finalReqMap);
System.debug('Response ::: ' + respMap);