This example shows how to create and post an invoice using only one existing record (Company). We create all other records required for the invoice from scratch.


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 together with required 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


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_ACC_Dimension__c/s2cor__UID__c/Customer/?fields=Id",
        "referenceId" : "CustomerDimension"
        },
        {
        "method" : "GET",
        "url" : "/services/data/v44.0/sobjects/s2cor__Sage_COR_Company__c/a1G1N0000066tG6UAI?fields=Id",
        "referenceId" : "Company"
        },
        {
        "method" : "POST",
        "url" : "/services/data/v44.0/sobjects/Account",
        "referenceId" : "NewAccount",
        "body" : {
            "Name" : "Example account 2"
            }
        },
        {
        "method" : "POST",
        "url" : "/services/data/v44.0/sobjects/s2cor__Sage_ACC_Tag__c",
        "referenceId" : "NewCustomerTag",
        "body" : {
            "Name" : "Example customer tag 2",
            "s2cor__Account__c": "@{NewAccount.id}",
            "s2cor__Dimension__c": "@{CustomerDimension.Id}",
            "s2cor__Company__c" : "@{Company.Id}"
            }
        },
        {
        "method" : "GET",
        "url" : "/services/data/v44.0/sobjects/s2cor__Sage_ACC_Dimension__c/s2cor__UID__c/Product/?fields=Id",
        "referenceId" : "ProductDimension"
        },
        {
        "method" : "POST",
        "url" : "/services/data/v44.0/sobjects/Product2",
        "referenceId" : "NewProduct",
        "body" : {
            "Name" : "Example product 2"
            }
        },
        {
        "method" : "POST",
        "referenceId" : "NewProductTag",
        "url" : "/services/data/v44.0/sobjects/s2cor__Sage_ACC_Tag__c/",
        "body" : {
            "Name" : "Example product tag 2",
            "s2cor__Dimension__c": "@{ProductDimension.Id}",
            "s2cor__Company__c": "@{Company.Id}",
            "s2cor__Product__c": "@{NewProduct.id}"
            }
        },
        {
        "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": "@{NewAccount.id}",
            "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": "@{NewProduct.id}",
            "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" : "PostedSalesInvoice",
        "body" : {
            "s2cor__Status__c": "Submitted"
            }
        }
    ]
}

In this JSON payload:


Step 5: Send your request

Send your request to retrieve the records.