Update
1 min
The following is an example of update Payment. The Payment Id (Id) and Customer Id (Id) are required to update the payment (See Payment for the available fields).
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 Customer
Map<String, Object> paymentMap = new Map<String, Object>();
paymentMap.put('Id','889');
paymentMap.put('TotalAmt','200');
paymentMap.put('CustomerRef' , new Map<String, Object>{'value' => '226'});
paymentMap.put('SyncToken','0');
paymentMap.put('PrivateNote','Memo field updated');
// Required, make sure you add all Lines, otherwise, the payment will not be applied to any invoices.
// Initializing the RequestJSON Data to be passed.
Map<String, Object> requestJSONMap = new Map<String, Object>();
requestJSONMap.put('payments', new List<Object>{paymentMap});
String reqJSON = JSON.serialize(requestJSONMap);
Map<String, Object> reqObj = new Map<String, Object>();
reqObj.put('version', '1.0');
reqObj.put('action', 'updatePayment');
reqObj.put('requestJSON', reqJSON);
//Required, if QuickBooks Multi-Org is enabled in Breadwinner.
reqObj.put('qbOrgId', '4620816365285051610');
// Placing a request to Breadwinner Global API
Map<String, Object> respMap = breadwinner_qbo.BreadwinnerQBAPI.call(reqObj);
System.debug(respMap);