---
title: Create
slug: quickbooks/create
docTags: 
createdAt: 2024-03-06T10:30:59.092Z
---

The following is an example of creating a Bill where we are setting every possible field (See [Bill](docId\:MpZPCquzR-OqlFEOnw3y9) for the available fields). The response will return the exact request data plus the new QuickBooks Bill ID (Id).

:::hint{type="info"}
Note:  You can only create one record at a time.
:::

:::CodeblockTabs
Request

```apex
//  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);
```

Response

```json
{
   statusCode:200,
   timestamp=1716961105479,
   validRequest=true,
   version=1.0,
   bill:[
      {
         "VendorRef":{
            "value":"67",
            "name":"3.39"
         },
         "TxnDate":"2024-04-26",
         "TotalAmt":10000.00,
         "SyncToken":"0",
         "sparse":false,
         "SFRecordID":"a01Ig000000PdsyIAC",
         "SalesTermRef":{
            "value":"2"
         },
         "PrivateNote":"Create Bill",
         "MetaData":{
            "LastUpdatedTime":"2024-05-28T22:38:24-07:00",
            "CreateTime":"2024-05-28T22:38:24-07:00"
         },
         "Line":[
            {
               "LineNum":1,
               "ItemBasedExpenseLineDetail":{
                  "UnitPrice":1000,
                  "TaxCodeRef":{
                     "value":"NON"
                  },
                  "Qty":10,
                  "ItemRef":{
                     "value":"19",
                     "name":"GenWatt Diesel 1000kW"
                  },
                  "BillableStatus":"NotBillable"
               },
               "Id":"1",
               "DetailType":"ItemBasedExpenseLineDetail",
               "Description":"Description",
               "Amount":10000.00
            }
         ],
         "Id":"229",
         "DueDate":"2024-05-26",
         "DocNumber":"0001",
         "CurrencyRef":{
            "value":"USD",
            "name":"United States Dollar"
         },
         "Balance":10000.00,
         "APAccountRef":{
            "value":"33",
            "name":"Accounts Payable (A/P)"
         }
      }
   ]
  }
}
```
:::

