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.