The purpose of this page is to describe the headless Billing API service that enables rapid experience-first commerce development and applications.

Billing API follows a microservice architecture that enables commerce into any part of an application and is built on the JSON API specification, follows predictable REST URLs, and supports cross-origin resource sharing.

Authentication

All requests to the API need to be accompanied by an authorization header with a standard salesforce authentication token. 

Authorization: Bearer 00D230000000nZM!ARMAQHLLm33JxYYP.UJn1gF6FFmLv8sDYK_8szeckHWtbguztoBpF0HL8...

Endpoint

The Billing API is installed with the Billing package and can be exposed to external applications via a Salesforce site. The following is an example of billing API structure: 

https://salesforce.com/services/apexrest/Apttus_Billing/CreateInvoices/v1/createInvoices

Replace the https://salesforce.com with your Org URL. 

Versions

The Billing API ensures backward compatibility by properly versioning any changes to the APIs. Should changes to the API structure need to be made, it will occur within a new version and older functionality will be preserved.

X-Storefront Header Parameter

In order to match your API requests with a storefront, the x-storefront parameter must be used with all requests in the request header. It should match a storefront name record in SFDC.

x-storefront: my-storefront`

Content Type

Requests made to the API must be encoded as JSON and contain the header

Content-Type: application/json

Includes

You can easily include resource relationships on most top-level resources. Multiple includes are defined using comma-delimited values.

Caching

Server side caching is used and can be configured per request using the cacheStrategy query parameter.

Errors

Any request that returns an error follows a standard format. The Billing APIs will return an array of errors that contains objects containing the status, title and data with the error details.

CodeResponse
201 Created Successfully
200Updated Successfully
204Deleted Successfully
400Invalid JSON
422Validation Error
500Something went wrong on our end