Docs — Interbank Settlement Protocol
Docs

Introduction

Interbank Settlement Protocol (ISP) is the settlement layer for the stablecoin economy — infrastructure that lets banks, fintechs and regulated institutions settle value instantly on stablecoin rails, replacing slow correspondent banking with programmable, always-on settlement.

What is ISP

Traditional cross-border settlement routes a payment through a chain of correspondent banks. Each hop adds delay, cost and counterparty risk, and the whole system closes outside banking hours. ISP replaces that chain with a single settlement fabric: a payment is initiated through one API, screened for compliance, settled atomically on stablecoin rails, and confirmed with deterministic finality — typically in one to two seconds.

Institutions integrate once and reach every other counterparty on the network, in any supported corridor, at any time of day.

New to settlement infrastructure?
Start with the core concepts to learn the vocabulary, then follow the quickstart.

Key capabilities

Real-time finality
Deterministic settlement in ~1–2 seconds — no confirmation windows.
Compliance-native
KYC, AML and sanctions screening built into every settlement.
Multi-chain rails
USDC, USDT and EURC routed across networks behind one API.
Always-on
Settle 24 / 7 / 365 — no cut-off windows or banking holidays.
Programmable
Transparent, rule-based fees and settlement logic via API.
Audit-ready
Immutable ledger and exportable records for every transaction.

How settlement works

At a high level, every settlement moves through five stages. The settlement lifecycle covers each in depth.

1Initiate 2Screen 3Settle 4Confirm 5Report

Where to go next

Quickstart

Go from zero to a settled transaction in four steps. This guide uses the Node.js SDK against the test-net — no real funds move.

Prerequisites

A whitelisted institution account — request access if you don't have one.
A test-net API key from the dashboard.
Node.js 18+ installed locally.

1 · Install the SDK

terminal
# npm
npm install @isp/sdk

# or pnpm / yarn
pnpm add @isp/sdk

2 · Authenticate

Initialize the client with your test-net key. Keep secret keys server-side — never ship them to a browser.

settle.js
import { ISP } from '@isp/sdk';

const isp = new ISP({
  apiKey: process.env.ISP_API_KEY,
  env: 'test',   // 'test' | 'live'
});

3 · Create a settlement

Reference two registered counterparties, an amount and an asset. The call resolves once finality is reached.

settle.js
const settlement = await isp.settlements.create({
  amount:   '2500000.00',
  asset:    'USDC',
  from:     'cp_meridian',
  to:       'cp_nordbank',
  corridor: 'US-DE',
});

console.log(settlement.id, settlement.status);
// ISP-48231 settled

4 · Track the result

Retrieve a settlement any time, or subscribe to webhooks to receive status changes as they happen.

settle.js
const s = await isp.settlements.retrieve('ISP-48231');

console.log(s.finalityMs); // 1420
That's it.
You've settled a transaction end-to-end. Swap env: 'live' and a live key to go to production.

Next steps

Authentication

The ISP API authenticates every request with a bearer token. Keys are scoped to an environment and an institution, and can be rotated at any time.

API keys

Each key has a prefix that tells you its type at a glance. Publishable keys are safe to expose; secret keys must stay server-side.

PREFIXTYPEUSE
sk_live_SecretServer-side, production
sk_test_SecretServer-side, test-net
pk_live_PublishableClient-side, read-only
Never expose secret keys
A leaked sk_live_ key can move funds. Store it in a secrets manager and rotate immediately if exposed.

Environments

The test-net mirrors production exactly but moves no real value. Point at the right base URL for each environment.

ENVBASE URL
testhttps://api.sandbox.interbank.settlement/v1
livehttps://api.interbank.settlement/v1

Making authenticated requests

Pass your secret key as a bearer token in the Authorization header.

cURL
curl https://api.interbank.settlement/v1/settlements \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json"

Rotating keys

Create a new key before revoking the old one to rotate without downtime. Both keys stay valid during the overlap window, so you can roll deployments gradually. Revoke the previous key once traffic has fully moved over.

Security best practices

Store secret keys in a dedicated secrets manager, never in source control.
Restrict keys to specific IP ranges from the dashboard.
Rotate keys on a schedule and after any staff change.
Verify webhook signatures to trust inbound events — see Webhooks.

Architecture

ISP is a modular settlement fabric. Each module owns one responsibility and communicates over internal, authenticated channels — so institutions integrate against a single API while the protocol handles compliance, liquidity and finality underneath.

Request flow

A settlement request travels left to right. Every stage writes to the immutable ledger before handing off to the next.

Sending bank
Compliance
Settlement engine
Stablecoin rail
Receiving bank

Core modules

Settlement Engine
The core ledger. Executes atomic debit/credit pairs and guarantees deterministic finality — a settlement either completes fully or not at all.
Stablecoin Rail
Routes value across USDC, USDT and EURC on multiple networks, selecting the optimal path for cost and liquidity behind a single interface.
Compliance Layer
Runs KYC, AML and sanctions screening inline, enforcing per-jurisdiction policy before any value moves.
Treasury Management
Automates liquidity provisioning, rebalancing and yield on idle balances so counterparties always have funds where they're needed.

Availability

The protocol runs active-active across multiple regions with no scheduled downtime, targeting 99.99% availability. Settlement continues 24 / 7 / 365, independent of any single banking calendar or market's operating hours.

Settlement lifecycle

Every settlement moves through a well-defined set of states. Understanding them lets you build reliable tracking, reconciliation and retry logic.

Settlement states

STATEMEANING
createdRequest accepted and validated; queued for screening.
screeningUndergoing KYC / AML / sanctions checks.
settlingCleared; the engine is executing the atomic transfer.
settledFinal and irreversible. Both parties notified.
failedCould not complete; no value moved. See error for cause.

Finality & timing

ISP reaches deterministic finality — once a settlement is settled it can never be reversed. There are no probabilistic confirmation windows; the median end-to-end time is 1–2 seconds.

Finality is one-way
To reverse value after settlement, create a new settlement in the opposite direction. There is no "undo".

Idempotency & retries

Pass an Idempotency-Key header on create requests. Retrying with the same key returns the original settlement instead of creating a duplicate — safe against network failures.

cURL
curl -X POST .../v1/settlements \
  -H "Idempotency-Key: a1b2c3d4-e5f6" \
  -H "Authorization: Bearer sk_live_..."

Core concepts

The vocabulary you'll use across the protocol and API. These terms appear throughout the docs and in every API response.

Glossary

Settlement

The atomic transfer of value between two counterparties. A settlement is all-or-nothing — there is no partial state — and is identified by a stable ID such as ISP-48231.

Finality

The point at which a settlement becomes irreversible. ISP delivers deterministic finality in ~1–2 seconds, with no confirmation windows to wait out.

Stablecoin rail

The on-chain path a settlement travels. ISP routes across USDC, USDT and EURC on multiple networks and abstracts chain selection away from the institution.

Corridor

A directional route between two jurisdictions, written as an origin–destination pair such as US-DE. Each corridor carries its own compliance rules and liquidity.

Counterparty

A registered institution able to send or receive settlements, identified by a handle such as cp_meridian. Every counterparty is onboarded and screened.

Netting

Offsetting mutual obligations between counterparties so only the net difference settles — reducing the value that must move on-chain.

Liquidity

The stablecoin balance available to a counterparty in a given corridor. Treasury Management keeps liquidity provisioned where it's needed on demand.

API overview

The ISP API is a REST API over HTTPS. It uses predictable resource-oriented URLs, returns JSON, and relies on standard HTTP verbs, status codes and authentication.

Base URL

https://api.interbank.settlement/v1

Use the sandbox host for test-net traffic — see Authentication.

Versioning

The version is pinned in the URL path (/v1). Backwards-incompatible changes ship under a new version; additive changes — new fields, new endpoints — roll out within the current version without notice, so write tolerant parsers.

Requests & responses

Send JSON bodies with Content-Type: application/json. Monetary amounts are strings to preserve precision. Timestamps are ISO 8601 in UTC.

example object
{
  "id": "ISP-48231",
  "object": "settlement",
  "amount": "2500000.00",
  "asset": "USDC",
  "status": "settled",
  "created_at": "2026-07-03T09:12:04Z"
}

Pagination

List endpoints are cursor-paginated. Pass limit (max 100) and starting_after with the last object's ID to page forward. The response includes has_more.

Rate limits

PLANLIMIT
Test-net100 req / min
Production1,000 req / min
EnterpriseCustom

Exceeding the limit returns 429. Back off using the Retry-After header.

Settlements

Create, retrieve and list settlements — the core object of the API.

POST/settlements
GET/settlements/:id
GET/settlements

Create a settlement

Body parameters:

amount
stringrequired
Decimal amount as a string, e.g. "2500000.00".
asset
enumrequired
One of USDC, USDT, EURC.
from
stringrequired
Sending counterparty ID.
to
stringrequired
Receiving counterparty ID.
corridor
stringoptional
Corridor code, e.g. "US-DE". Inferred if omitted.
request · 200 OK
# request
POST /v1/settlements
{ "amount":"2500000.00", "asset":"USDC",
  "from":"cp_meridian", "to":"cp_nordbank" }

# response
{ "id":"ISP-48231", "status":"settled",
  "finality_ms":1420 }

List settlements

Filter with query parameters. All are optional.

status
Filter by state, e.g. settled.
corridor
Filter by corridor code.
limit
Page size, 1–100. Defaults to 20.

Counterparties

Register and manage the institutions you settle with. A counterparty must be onboarded and screened before it can send or receive value.

POST/counterparties
GET/counterparties/:id

Register a counterparty

legal_name
stringrequired
Registered legal entity name.
jurisdiction
stringrequired
ISO country code, e.g. "SG".
type
enumoptional
bank, fintech, psp or exchange.
Onboarding is asynchronous
A new counterparty starts in pending_review. Listen for the counterparty.approved webhook before settling.

Webhooks

Webhooks push settlement events to your endpoint in real time, so you never have to poll. Register a URL in the dashboard and subscribe to the events you care about.

Events

EVENTFIRES WHEN
settlement.settledA settlement reaches finality.
settlement.screeningA settlement enters compliance review.
settlement.failedA settlement cannot be completed.
counterparty.approvedA counterparty passes onboarding.

Payload

POST to your endpoint
{
  "event": "settlement.settled",
  "id": "evt_9f2a",
  "data": {
    "id": "ISP-48231",
    "corridor": "US-DE",
    "finality_ms": 1420
  }
}

Verifying signatures

Each delivery is signed with an ISP-Signature header. Verify it against your signing secret before trusting the event.

webhook.js
const ok = isp.webhooks.verify({
  payload: req.rawBody,
  signature: req.headers['isp-signature'],
  secret: process.env.ISP_WEBHOOK_SECRET,
});

if (!ok) return res.status(400).end();

Retries & best practices

Respond 2xx within 5 seconds; process asynchronously.
Failed deliveries retry with exponential backoff for up to 24 hours.
Deduplicate on event.id — events may arrive more than once.

Errors & status codes

ISP uses conventional HTTP status codes and returns a structured error object so your integration can respond programmatically.

Error object

422 Unprocessable
{
  "error": {
    "type": "invalid_request",
    "code": "insufficient_liquidity",
    "message": "Not enough liquidity in corridor US-DE.",
    "param": "amount"
  }
}

HTTP status codes

CODEMEANING
200Success.
400Malformed request.
401Invalid or missing API key.
422Valid syntax but rejected — see error code.
429Rate limit exceeded.
500Something went wrong on our end.

Common error codes

CODERESOLUTION
insufficient_liquidityRetry later or split the amount.
counterparty_not_approvedWait for onboarding to complete.
screening_rejectedBlocked by compliance policy.
idempotency_conflictReused key with a different body.

SDKs & libraries

Official SDKs wrap authentication, retries, pagination and webhook verification so you can focus on your settlement logic.

Official SDKs

Node.js
TypeScript-first
npm i @isp/sdk
Python
3.9+
pip install isp
Go
1.21+
go get isp.dev/sdk

Python example

settle.py
import isp

client = isp.Client(api_key=os.environ["ISP_API_KEY"])

s = client.settlements.create(
    amount="2500000.00",
    asset="USDC",
    from_="cp_meridian",
    to="cp_nordbank",
)
print(s.id, s.status)

Go example

main.go
client := isp.New(os.Getenv("ISP_API_KEY"))

s, err := client.Settlements.Create(&isp.SettlementParams{
    Amount: "2500000.00",
    Asset:  "USDC",
    From:   "cp_meridian",
    To:     "cp_nordbank",
})
Prefer raw HTTP?
Every SDK is a thin wrapper over the REST API — start from the API overview to call it directly.

Security & compliance

ISP is built for regulated institutions. Compliance and security are native to the protocol, not bolted on — every settlement is screened, encrypted and recorded.

Compliance

KYC / KYB
Every counterparty is verified during onboarding and re-checked on a risk-based schedule.
AML & sanctions
Real-time transaction monitoring and sanctions screening against global watchlists on every settlement.
Per-jurisdiction policy
Corridor-level rules enforce local regulatory requirements before any value moves.

Data protection

Encryption
TLS 1.3 in transit; AES-256 at rest.
Key custody
Signing keys held in HSMs with MPC controls.
Data residency
Regional storage options for regulated data.
Immutable audit
Every action written to a tamper-evident ledger.

Certifications

ISP operates to institutional assurance standards. Reports are available under NDA to whitelisted partners.

SOC 2 Type II ISO 27001 PCI DSS
Need our security package?
Join the whitelist and request compliance documentation during onboarding.
Was this page helpful?
ON THIS PAGE