Skip to main content
The Diameter API is a REST API that enables fintechs to onboard end users, manage virtual accounts, create counterparties, and process domestic and international wire payments through Diameter’s partner bank network. All API interactions follow standard HTTP conventions and exchange data as JSON. This page covers everything you need to know to form valid requests and interpret responses — authentication, idempotency, pagination, error handling, and the data formats used throughout the API.

Base URLs

The API is available in two environments. Use the sandbox environment for all development and testing. Only production-ready, verified integrations should connect to the production environment.
Some endpoints are sandbox-only and will return 403 Forbidden if called against the production base URL. These endpoints are clearly marked in their individual reference pages.

API Version

The current API version is 0.11.7. The version is reflected in all endpoint paths (e.g., /v1/accounts). See the Changelog for the full release history.

Authentication

All requests must include a valid Bearer token in the Authorization header:
Tokens are JWTs that encode the scopes your integration is authorized to use. Each endpoint requires a specific scope (e.g., com.diameterpay.api/accounts.read, com.diameterpay.api/end-users.write). Requests made with a token that is missing the required scope receive a 403 Forbidden response. For instructions on obtaining tokens, see the Authentication page.

Content Type

All request and response bodies use JSON. Set the Content-Type header on every request that includes a body:

Idempotency

All write requests (POST, PUT, PATCH) require an x-idempotency-key header containing a UUID v4 value. Idempotency keys protect against duplicate operations caused by network retries or client errors.
Generate a fresh UUID v4 for each logically distinct operation. Reuse the same key only when retrying after a network failure where you did not receive a response.

Pagination

List endpoints return paginated results. Control pagination with the following query parameters: Every paginated response includes a pagination object:

Error Responses

When a request fails, the API returns a structured error response body alongside the appropriate HTTP status code. The requestId uniquely identifies the failed request and should be included when contacting Diameter support.

HTTP Status Codes

The API uses standard HTTP status codes to communicate the outcome of each request.

Data Formats

The Diameter API uses consistent formats for IDs, dates, amounts, and currency across all endpoints. IDs All resource identifiers (accounts, payments, end users, counterparties, etc.) use UUID v4 format:
Dates and Timestamps Date-time values are formatted as ISO 8601 strings in UTC:
Monetary Amounts Amounts are represented as strings with up to two decimal places:
Using strings avoids floating-point precision issues. Always parse amounts as strings (or use a decimal library) rather than as floating-point numbers. Currency Only USD is currently supported. The currency field in account and payment objects will always contain "USD".