Create an invoice using existing Account and Product records
- Step 1: Create a POST request
- Step 2: Configure authorization
- Step 3: Configure headers
- Step 4: Add JSON payload
- Step 5: Send your request
To try out the steps in this section, install Postman and open the Postman collection we have prepared for you. In the collection, open the Create an invoice using existing Account and Product records request and replace variables with actual values.
Download Postman Open Postman Collection
Step 1: Create a POST request
Configure your application to send the following composite request:
POST https://{your_Salesforce_domain}/services/data/v44.0/composite
where
- {your_Salesforce_domain} is your Salesforce sandbox or production domain, for example, my-domain-1234.cs89.my.salesforce.com.
- v44.0 is the Force.com REST API version you want to use.
Step 2: Configure authorization
Make sure your request uses OAuth 2.0. Authorization data must be included in the request URL.
Step 3: Configure headers
Configure the request headers to include the following key-value pairs:
Key | Value |
---|---|
Authorization | Bearer {access_token} Example: Bearer 00D0N000000h6Yq!AR0AQObORnk9lCldrMydk1Y3cuyqpscqcU.T1xvoM1uWkWrr8MLu2ehJLKp7Mz3Qeu.eQGI13qlH_HfGEEMxV_J8FdI1TwdR |
Content-Type | application/json |
Step 4: Add JSON payload
Add JSON payload to the request body. For example:
{
"allOrNone": true,
"compositeRequest":
[
{
"method": "GET",
"url": "/services/data/v44.0/sobjects/s2cor__Sage_INV_Trade_Document_Type__c/s2cor__UID__c/SalesInvoice_TD_US?fields=Id",
"referenceId": "SalesInvoiceType"
},
{
"method": "POST",
"url": "/services/data/v44.0/sobjects/s2cor__Sage_INV_Trade_Document__c",
"referenceId": "NewSalesInvoice",
"body": {
"s2cor__Account__c": "0011N00001FmNwLQAV",
"s2cor__Trade_Document_Type__c": "@{SalesInvoiceType.Id}"
}
},
{
"method": "POST",
"url": "/services/data/v44.0/sobjects/s2cor__Sage_INV_Trade_Document_Item__c",
"referenceId": "NewLineItem",
"body": {
"s2cor__Product__c": "01t1N00000ErDKHQA3",
"s2cor__Unit_Price__c": "1000.00",
"s2cor__Trade_Document__c": "@{NewSalesInvoice.id}"
}
},
{
"method": "PATCH",
"url": "/services/data/v44.0/sobjects/s2cor__Sage_INV_Trade_Document__c/@{NewSalesInvoice.id}",
"referenceId": "PostedInv",
"body": {
"s2cor__Status__c": "Submitted"
}
}
]
}
In this JSON payload:
- GET /services/data/v44.0/sobjects/s2cor__Sage_INV_Trade_Document_Type__c/s2cor__UID__c/SalesInvoice_TD_US?fields=Id
Retrieves theSalesInvoice_TD_US
sales invoice type and stores it in theSalesInvoiceType
variable. - POST /services/data/v44.0/sobjects/s2cor__Sage_INV_Trade_Document__c
Creates a new invoice for the Account record0011N00001FmNwLQAV
. The invoice is based on the invoice type stored in theSalesInvoiceType
variable. The created invoice is stored in theNewSalesInvoice
variable. - POST /services/data/v44.0/sobjects/s2cor__Sage_INV_Trade_Document_Item__c
Adds a new item to the invoice stored in theNewSalesInvoice
variable. The item is for the Product record01t1N00000ErDKHQA3
. - PATCH /services/data/v44.0/sobjects/s2cor__Sage_INV_Trade_Document__c/@{NewSalesInvoice.id}
Submits (posts) the invoice stored in theNewSalesInvoice
variable.
Step 5: Send your request
Send your request to create the invoice.