Welcome

i3 Vertical's APIs are a suite of RESTful APIs that are easily consumed, nearly frictionless, and extremely fast. Our APIs allow you to:

API Access

Our APIs are publically available, and you can use the provided demo credentials to test the documented resources. Once you've decided to move forward, contact i3 Vertical's integration team to begin the integration process. You'll be provided your own sandbox, as well as a production environment.

API endpoints

Use the following hosts for all requests to our APIs.

Version 1

Version 2

Our APIs

Click on an API to view its documentation.

Customer API

The Customer API is used to manage customers and customer wallets.

Distribution API

Retrieve your payment distribution details with the Distribution API.

Document API

Store and retrieve documents attached to merchants with the Document API.

Enrollment API

The Enrollment API allows Partners to enroll Merchants and provision their payment Accounts.

Link API

The Link API provides a link shortening and tracking service.

Messaging API

The Messaging API allows Partners and Merchants to communicate with customers through various communications channels.

Payment API

The Payment API provides methods for processing payments and tokenizing payment methods. Access to the API can be limited based on various scenarios (tokenize-only, charge-only, etc).

Plugin API

The Plugin API provides UI plugin components that implement API functionality.

Session API

The Session API allows Partners allows the creation of a profile that defines a future end-user interaction such as accepting a payment.

Verify API

The Verify API makes verifying a contact method, such as a mobile phone number, simple.

How to Authenticate

Our APIs use the Client Credentials OAuth 2 flow. A high-level overview of this process looks like this:

OAuth Client Credentials flow

CreateBearerToken request

The Client Credentials flow requires a few basic items in the authentication call:

Putting these together, a cURL command would look like this.

curl -X POST \
  'https://$Host/services/oauth2/token' \
  -H 'Authorization: Basic HashedCredentials' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'cache-control: no-cache' \
  -d 'grant_type=client_credentials'

A successful response will have a response code of 200, and a body like this.

{
  "token_type": "Bearer",
  "access_token": "C6fgvWRISzNxA7MkVSk21XqdRN8O",
  "issued_at": 1550254644,
  "expires_in": 3599,
  "status": "approved",
  "refresh_token": null,
  "refresh_token_issued_at": 0,
  "refresh_token_expires_in": 0,
  "application_list": [
    "Payments",
  ],
  "scope": "charges read store_token create update delete refunds"
}

A few things to note:

Using the Bearer token

When making a request to a protected endpoint, populate your Authorization header with {token_type} {access_token}.

curl -X POST \
  'https://$Host/protected_endpoint' \
  -H 'Authorization: Bearer C6fgvWRISzNxA7MkVSk21XqdRN8O' \
  ...

Get Started

Read the following article that will help you get started quickly:

Get Started: Processing Payments