---
title: Update
slug: xero/nKVz-update
description: Learn how to update a bill in Xero using the Xero API and the Breadwinner Global API with this sample code. Understand the importance of setting the "InvoiceID" field with the unique reference value generated by Xero. See an example of how to create a map
docTags: 
createdAt: 2021-11-02T07:47:27.000Z
---

To update a Bill in Xero, make sure you set the field "InvoiceID" with the unique reference value (ID generated by Xero for the Bill)&#x20;

:::CodeblockTabs
Request

```apex
//  Create a Map to store all the data of a Bill
List<Object> invoiceList = new List<Object>();
Map<String, Object> invoiceMap = new Map<String, Object>();
    invoiceMap.put('InvoiceID', '192d2166-7cfa-4f30-89c1-9ad1dc1f55df');
    invoiceMap.put('Status', 'AUTHORISED');
    invoiceMap.put('InvoiceNumber', 'Test Bill');

    //  Updating the Bill Line Items
    List<Object> lineItemList = new List<Object>();
        Map<String, Object> lineItemMap = new Map<String, Object>(); 
        lineItemMap.put('Description', 'Line Item Description Updated');
        lineItemMap.put('LineItemID', '1294d14b-30e6-4c76-85f5-d66de2c02b83');
        lineItemMap.put('UnitAmount', 100);
        lineItemMap.put('Quantity', 10);
		lineItemMap.put('AccountCode', '200');
        lineItemList.add(lineItemMap);
        
    //  Adding the Line Items to Bill
    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>(); 
    finalReqMap.put('version', '1.0'); 
    finalReqMap.put('action', 'updateBill'); 
    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);
```

Response

```json
{
   action=updateBill,
   responseJSON={
      "statusCode":200,
      "bills":[
         {
            "UpdatedDateUTC":null,
            "Type":"ACCPAY",
            "TotalTax":0.00,
            "TotalDiscount":null,
            "Total":1000.00,
            "Telephone":"",
            "SubTotal":1000.00,
            "Status":"AUTHORISED",
            "SentToContact":false,
            "SalesforceRecordId":"a0K7F00001eFt7OUAS",
            "Reference":"",
            "PurchaseOrderNumber":null,
            "PurchaseOrderID":null,
            "Payments":null,
            "LineItems":[
               {
                  "UnitAmount":100.00,
                  "Tracking":[
                     
                  ],
                  "TaxType":"OUTPUT",
                  "TaxAmount":0.00,
                  "Quantity":10.0000,
                  "LineItemID":"1294d14b-30e6-4c76-85f5-d66de2c02b83",
                  "LineAmount":1000.00,
                  "ItemCode":null,
                  "DiscountRate":null,
                  "Description":"Line Item Description Updated",
                  "AccountCode":"200"
               }
            ],
            "LineAmountTypes":"Exclusive",
            "IsDiscounted":false,
            "InvoiceNumber":"Test Bill",
            "InvoiceID":"192d2166-7cfa-4f30-89c1-9ad1dc1f55df",
            "HasErrors":false,
            "DueDateString":"2021-12-06T00:00:00",
            "DueDate":"/Date(1638748800000+0000)/",
            "DeliveryInstructions":"",
            "DeliveryDateString":null,
            "DeliveryDate":null,
            "DeliveryAddress":"",
            "DateVariable":"/Date(1636588800000+0000)/",
            "DateString":"2021-11-11T00:00:00",
            "CurrencyRate":1.0000000000,
            "CurrencyCode":"INR",
            "CreditNotes":null,
            "Contact":{
               "Name":"Test Contact 2",
               "ContactStatus":"ACTIVE",
               "ContactID":"c84ebb15-0a8d-4145-933f-203e68d014a0"
            },
            "BrandingThemeID":null,
            "AttentionTo":"",
            "AmountPaid":0.00,
            "AmountDue":1000.00,
            "AmountCredited":0.00
         }
      ],
      "errors":[
         
      ]
   },
   timestamp=1636632202998,
   validRequest=true,
   version=1.0
}
```
:::

