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.
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.
Code | Response |
---|
201 | Created Successfully |
200 | Updated Successfully |
204 | Deleted Successfully |
400 | Invalid JSON |
422 | Validation Error |
500 | Something went wrong on our end |