Update
1 min
The following is an example of update Credit Memo. The QuickBooks Credit Memo Id (id) is required to update the Credit Memo(See Credit Memo for the available fields)
The request body must include all writable fields of the Credit Memo object. Writable fields omitted from the request body are set to NULL.
Note: You can only update one record at a time.
- When you want to update specific fields of an entity without affecting others, use a sparse update operation by setting sparse= 'true' in your request. This approach is more efficient and less prone to unintended changes than a full update.
// Create a Map to store all the data of a Credit Memo
List<Object> creditMemoList = new List<Object>();
Map<String, Object> creditMemoMap = new Map<String, Object>();
creditMemoMap.put('Id', '13');
creditMemoMap.put('SyncToken','2');
creditMemoMap.put('CustomerRef',new Map<String, Object>{'value' => '9'});
// Initializing the Invoice Line Items
List<Object> lineItemList = new List<Object>();
Map<String, Object> lineItemMap = new Map<String, Object>();
lineItemMap.put('LineNum',1);
lineItemMap.put('Amount',100);
lineItemMap.put('Description','Description Updated');
lineItemMap.put('DetailType', 'SalesItemLineDetail');
Map<String, Object> salesLineItemDetailMap = new Map<String, Object>();
salesLineItemDetailMap.put('Qty',2);
salesLineItemDetailMap.put('UnitPrice',50);
salesLineItemDetailMap.put('TaxCodeRef' , new Map<String, Object>{'value' => 'TAX'});
lineItemMap.put('SalesItemLineDetail', salesLineItemDetailMap);
lineItemList.add(lineItemMap);
// Adding the Line Items to Invoice
creditMemoMap.put('Line',lineItemList);
creditMemoList.add(creditMemoMap);
// Initializing the RequestJSON Data to be passed.
Map<String, Object> reqJSONMap = new Map<String, Object>();
reqJSONMap.put('creditmemos' , creditMemoList);
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' , 'updateCreditMemo');
finalReqMap.put('RequestJSON' , reqJSON);
finalReqMap.put('skipDML' , false);
//Required, if QuickBooks Multi-Org is enabled in Breadwinner.
finalReqMap.put('qbOrgId', '4620816365285051610');
System.debug('Request ::: ' + finalReqMap);
// Placing a request to Breadwinner Global API
Map<String, Object> respMap = breadwinner_qbo.BreadwinnerQBAPI.call(finalReqMap);
System.debug('Response ::: ' + respMap);