Skip to main content

REST API

This API allows our partners to programatically interface with services offered by Automotive Business Solutions.

Design​

Our API conforms to the design principles of the representational state transfer (REST) architectural style. API endpoints are generally structured as follows:

METHOD https://BASE_URL/CATEGORY/RESOURCE/ID
info
  • Not all methods are available for each resource
  • Not all resources are available for each category

METHOD is one of the following:

MethodDescription
POSTCreate a resource
GETRead a resource; list multiple resources
PATCHUpdate part of a resource

BASE_URL corresponds with an environment, documented below.

CATEGORY is one of

RESOURCE is one of

  • registrations
  • claims

ID refers to a specific instance of a resource.

Environments​

info
  • While not required, we recommend using a different asymmetric key pair per environment
NameBase URLPurpose
Sandbox – UAThttps://sandbox.absintegrations.com/api/v3Testing
Production – PRDhttps://absintegrations.com/api/v3Production

Authentication​

Before you begin making API calls, you must generate a public/private key pair and share your public key with us. We will provide you with a Partner ID and one or more Product IDs.

Your application must authenticate all API requests with a JWT which contains your Partner ID and has been signed with your private key, passed as a Bearer token in the HTTP Authorization header.

tip

To learn how to generate a signed JWT see Getting Started.

The JWT must contain the following headers:

HeaderAllowed Value(s)
typJWT
algES256
ES384
ES512

For example:

{
"alg": "ES256",
"typ": "JWT"
}
info

The token must be signed with the Elliptic Curve Digital Signature Algorithm (ECDSA) [FIPS PUB 186-5]. We support the following curves:

AlgorithmNameCurve
ES256secp256r1ECSDA P-256
ES384secp384r1ECDSA P-384
ES512secp521r1ECDSA P-521

See getting started for further details on how to generate your private and public key.

Send your public key to engineering@abswarranty.net.

warning

Keep your private key secure - do not send it over an insecure channel or share it with anyone, including ABS.

info

Your key pair never expires - if you decide to change your key pair, send your updated public key to engineering@abswarranty.net.

The JWT must contain the following claims:

ClaimNameDescription
iatissued atUnix timestamp when the token was created, within the last 2 hours
ississuerYour Partner ID (provided by ABS)
audaudienceThe environment Base URL
expexpiration timeUnix timestamp not greater than 2 hours in the future.

For example:

{
"iat": 1627618568,
"iss": "6102b521f403f42ddcde7ae5",
"aud": "https://sandbox.absintegrations.com/api/v3",
"exp": 1627625768
}

To be valid, the JWT must:

  • Contain typ and alg headers
    • typ must be JWT
    • alg must be ES256, ES384 or ES512
  • Contain iat, iss, aud, and exp claims
    • iat must be within the last 2 hours
    • iss must be your Partner ID
    • exp must not be greater than 2 hours in the future
    • aud must be an environment Base URL

If a claim is missing, does not pass validation, contains incorrect values, or if the token cannot be verified, the API will return 401: Unauthorized.

{
"error": "unauthorized",
"statusCode": 401
}
tip

We recommend generating a new signed JWT for every request made to our API.

Request Payload​

Our API only accepts JSON requests. When making a request, set the Content-Type header to application/json. The maximum payload size is 3 MB.