Skip to content
SiloraSilora

Reference

Silora Partner API

Connect once. Access every global payment network.

v1.0.0OpenAPI 3.126 endpointsopenapi.yaml
The public Silora Partner API. JSON only, modelled on ISO 20022. Silora is an **enterprise payment connectivity platform**. It does not move money and does not act as a PSP. Customers hold their own commercial, compliance and prefunding relationships with each payment provider; Silora instructs, tracks and records. ## Conventions * **Amounts are strings, never JSON numbers.** `"value": "24500.00"`. IEEE-754 doubles silently corrupt money. * **Dates** are `YYYY-MM-DD`; **timestamps** are RFC 3339 in UTC. * **Repeating elements are always arrays**, even at length 1. * **Codes are ISO 20022 external code values**, validated against the quarterly code set rather than a hardcoded enum. * `uetr` is the identity of a payment and the key on every path, event, webhook and trace. `endToEndId` is *your* reference and is never a path key. ## Nothing provider-specific inbound A customer may **name** a rail via `provider`; it never **describes** one. Funding accounts, wallet addresses, chains, token contracts and FX rates are execution facts resolved by Silora, never request fields. ## The shape of an integration 1. `GET /corridors/{pair}/requirements` — what does this corridor demand? 2. `POST /beneficiaries` — store the payee once 3. `POST /beneficiaries/{id}/validate` — confirm the account before paying it 4. `POST /payments/quote` — which provider, what rate, what fee 5. `POST /payments` — returns `202` with an initial status 6. Webhook `payment.settled` or `payment.failed` delivers the outcome

Base URLs

https://api.silorapay.ai/v1ProductionNever called from this page
https://api.sandbox.silorapay.ai/v1SandboxSafe to call from this page

Authentication

ApiKeyX-Silora-KeyapiKey · header

Your API key **id**, not the secret.

SignatureX-Silora-SignatureapiKey · header

`HMAC-SHA256(secret, timestamp + "." + method + "." + path + "." + sha256(body))`, hex-encoded.

TimestampX-Silora-TimestampapiKey · header

Unix seconds. Skew over 300 seconds is rejected.

Worked signing examples in Node and Java are in the authentication guide.

text
timestamp . METHOD . path . sha256(body)

1787654328.POST./payments.9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
The canonical string. The query is part of the signed path.

Corridors

What a corridor requires before you build a payload.

GET/corridors

List corridors you can serve

listCorridors

Authenticated with ApiKey + Signature + Timestamp.

Headers

X-Correlation-Id
string

Echoed on the response and threaded through every internal hop.

Responses

200Corridors available to this client.

application/json

application/json
datarequired
pair
string

Example US-IN

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

currencies

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

providers
string[]
401Bad key, signature or timestamp skew.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

429Rate limited.

RateLimit-Limit integerRateLimit-Remaining integerRateLimit-Reset integer

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

GET/corridors/{pair}/requirements

Which fields this corridor demands

getCorridorRequirements

Cross-border corridors differ enormously in what they require. Rather than documenting that in prose and letting you discover it through rejections, the API tells you. Cache the response; `ETag` is supported.

Authenticated with ApiKey + Signature + Timestamp.

Path parameters

pairrequired
string

Corridor as `{fromCountry}-{toCountry}`, ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}-[A-Z]{2}$

Example US-IN

Query parameters

currency
CurrencyCode

pattern ^[A-Z]{3}$

Example USD

amount
DecimalString

Some requirements are threshold-dependent.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

creditorType
PartyType

INDVORGA

Headers

X-Correlation-Id
string

Echoed on the response and threaded through every internal hop.

Responses

200The conditional field schema for this corridor.

ETag string

application/json

application/json
corridorrequired
string

Example US-IN

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

supportedrequired
boolean
fieldsrequired
pathrequired
string

Dotted path into the payment request.

Example creditorAgent.clearingSystemMemberId

requirementrequired
string

REQUIREDCONDITIONALRECOMMENDEDOPTIONALNOT_SUPPORTED

condition
string

Present when `requirement` is `CONDITIONAL`.

reason
string
label
string
pattern
string
maxLength
integer
allowed
string[]
codeList
string
codeListUrl
string
limits
object
minAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

maxAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

cutOff
string

Example 14:30

cutOffTimezone
string

Example America/New_York

settlement
object
typical
string

Example same-day

window
string

Example T+0 to T+1

providers
string[]
401Bad key, signature or timestamp skew.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

404Unknown resource.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

GET/code-lists/{listId}

A local purpose or reporting code list

getCodeList

Authenticated with ApiKey + Signature + Timestamp.

Path parameters

listIdrequired
string

Example IN_RBI_PURPOSE

Headers

X-Correlation-Id
string

Echoed on the response and threaded through every internal hop.

Responses

200The code list.

application/json

application/json
listIdrequired
string
authority
string
updatedAt
string(date-time)
codesrequired
object[]
coderequired
string

Example P0103

namerequired
string

Example Import of goods

description
string
404Unknown resource.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

Beneficiaries

Store payees once; validate them before money moves.

GET/beneficiaries

List and search beneficiaries

listBeneficiaries

Authenticated with ApiKey + Signature + Timestamp.

Query parameters

q
string

Free-text search across name, reference and account.

corridor
string

pattern ^[A-Z]{2}-[A-Z]{2}$

status
BeneficiaryStatus

UNVALIDATEDVALIDATEDVALIDATION_FAILEDINACTIVE

cursor
string
limit
integer

min 1 · max 500 · default 100

Headers

X-Correlation-Id
string

Echoed on the response and threaded through every internal hop.

Responses

200A page of beneficiaries.

application/json

application/json
datarequired
beneficiaryIdrequired
string
reference
string
statusrequired

UNVALIDATEDVALIDATEDVALIDATION_FAILEDINACTIVE

Individual or organisation. Determines which identification fields apply.

INDVORGA

namerequired
string

Structured address. CBPR+ is moving to structured-mandatory — send these fields rather than free-text `addressLine`.

streetName
string

max length 70

buildingNumber
string

max length 16

postCode
string

max length 16

townName
string

max length 35

countrySubDivision
string

max length 35

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

addressLine
string[]

Unstructured fallback. Discouraged.

max items 3

contact
email
string(email)
phone
string

E.164. Required by mobile-money and several payout rails.

pattern ^\+[0-9]{6,18}$

account

Account identifiers are masked on read.

option 1
object
ibanrequired
string

pattern ^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

option 2
object
schemerequired
string

Local scheme name, from the corridor requirements.

Example IN_ACCOUNT

idrequired
string

max length 34

issuer
string

max length 35

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

agent

At least one identifier is required.

option 1
any
option 2
any
corridors
string[]

Derived from the account and agent.

lastValidation
beneficiaryId
string
result
string

MATCHCLOSE_MATCHNO_MATCHACCOUNT_NOT_FOUNDACCOUNT_CLOSEDUNAVAILABLE

nameMatch
string

FULLPARTIALNONE

accountStatus
string

ACTIVECLOSEDBLOCKEDUNKNOWN

accountHolderName
string

Returned on `CLOSE_MATCH` so a human can decide.

validatedBy
string
validatedAt
string(date-time)
expiresAt
string(date-time)
createdAt
string(date-time)
pagerequired
cursor
string | null
hasMorerequired
boolean
limitrequired
integer
401Bad key, signature or timestamp skew.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

POST/beneficiaries

Store a payee

createBeneficiary

Storing a payee removes the largest, most error-prone part of the payment payload and lets you validate the account before you ever move money.

Authenticated with ApiKey + Signature + Timestamp.

Headers

Idempotency-Keyrequired
string(uuid)

UUID. Replaying with an identical body returns the original response and `Idempotency-Replayed: true`; with a different body it returns `409`. Keys are retained 24 hours.

X-Correlation-Id
string

Echoed on the response and threaded through every internal hop.

Request body required

application/json

application/json
reference
string

max length 35

Individual or organisation. Determines which identification fields apply.

INDVORGA

namerequired
string

max length 140

Structured address. CBPR+ is moving to structured-mandatory — send these fields rather than free-text `addressLine`.

streetName
string

max length 70

buildingNumber
string

max length 16

postCode
string

max length 16

townName
string

max length 35

countrySubDivision
string

max length 35

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

addressLine
string[]

Unstructured fallback. Discouraged.

max items 3

identification

FATF Recommendation 16 requires an identifier for the originator on cross-border wires. For `ORGA` use `lei` or `taxId`; for `INDV` use `nationalId`, `passportNumber`, `customerId` or `dateAndPlaceOfBirth`.

lei
string

pattern ^[A-Z0-9]{18}[0-9]{2}$

taxId
string

max length 35

bic
string

pattern ^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$

nationalId
string

max length 35

passportNumber
string

max length 35

driversLicence
string

max length 35

customerId
string

max length 35

dateAndPlaceOfBirth
birthDaterequired
string(date)
cityOfBirth
string

max length 35

countryOfBirthrequired

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

contact
email
string(email)
phone
string

E.164. Required by mobile-money and several payout rails.

pattern ^\+[0-9]{6,18}$

countryOfResidence

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

accountrequired

Either an IBAN or a scheme-qualified local account identifier — never both.

option 1
object
ibanrequired
string

pattern ^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

option 2
object
schemerequired
string

Local scheme name, from the corridor requirements.

Example IN_ACCOUNT

idrequired
string

max length 34

issuer
string

max length 35

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

agent

At least one identifier is required.

option 1
any
option 2
any
defaultPurpose
string
metadata
map<string, string>
[key]
string

max length 256

Responses

201Beneficiary stored.

application/json

application/json
beneficiaryIdrequired
string
reference
string
statusrequired

UNVALIDATEDVALIDATEDVALIDATION_FAILEDINACTIVE

Individual or organisation. Determines which identification fields apply.

INDVORGA

namerequired
string

Structured address. CBPR+ is moving to structured-mandatory — send these fields rather than free-text `addressLine`.

streetName
string

max length 70

buildingNumber
string

max length 16

postCode
string

max length 16

townName
string

max length 35

countrySubDivision
string

max length 35

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

addressLine
string[]

Unstructured fallback. Discouraged.

max items 3

contact
email
string(email)
phone
string

E.164. Required by mobile-money and several payout rails.

pattern ^\+[0-9]{6,18}$

account

Account identifiers are masked on read.

option 1
object
ibanrequired
string

pattern ^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

option 2
object
schemerequired
string

Local scheme name, from the corridor requirements.

Example IN_ACCOUNT

idrequired
string

max length 34

issuer
string

max length 35

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

agent

At least one identifier is required.

option 1
any
option 2
any
corridors
string[]

Derived from the account and agent.

lastValidation
beneficiaryId
string
result
string

MATCHCLOSE_MATCHNO_MATCHACCOUNT_NOT_FOUNDACCOUNT_CLOSEDUNAVAILABLE

nameMatch
string

FULLPARTIALNONE

accountStatus
string

ACTIVECLOSEDBLOCKEDUNKNOWN

accountHolderName
string

Returned on `CLOSE_MATCH` so a human can decide.

validatedBy
string
validatedAt
string(date-time)
expiresAt
string(date-time)
createdAt
string(date-time)
400Malformed, or failed schema / corridor / CBPR+ validation.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

401Bad key, signature or timestamp skew.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

409Idempotency-key reuse with a different body, or invalid state transition.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

GET/beneficiaries/{beneficiaryId}

Read a beneficiary

getBeneficiary

Authenticated with ApiKey + Signature + Timestamp.

Path parameters

beneficiaryIdrequired
string

Example ben_01J8M4TQ7X2K9

Responses

200The beneficiary. Account numbers are masked.

application/json

application/json
beneficiaryIdrequired
string
reference
string
statusrequired

UNVALIDATEDVALIDATEDVALIDATION_FAILEDINACTIVE

Individual or organisation. Determines which identification fields apply.

INDVORGA

namerequired
string

Structured address. CBPR+ is moving to structured-mandatory — send these fields rather than free-text `addressLine`.

streetName
string

max length 70

buildingNumber
string

max length 16

postCode
string

max length 16

townName
string

max length 35

countrySubDivision
string

max length 35

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

addressLine
string[]

Unstructured fallback. Discouraged.

max items 3

contact
email
string(email)
phone
string

E.164. Required by mobile-money and several payout rails.

pattern ^\+[0-9]{6,18}$

account

Account identifiers are masked on read.

option 1
object
ibanrequired
string

pattern ^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

option 2
object
schemerequired
string

Local scheme name, from the corridor requirements.

Example IN_ACCOUNT

idrequired
string

max length 34

issuer
string

max length 35

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

agent

At least one identifier is required.

option 1
any
option 2
any
corridors
string[]

Derived from the account and agent.

lastValidation
beneficiaryId
string
result
string

MATCHCLOSE_MATCHNO_MATCHACCOUNT_NOT_FOUNDACCOUNT_CLOSEDUNAVAILABLE

nameMatch
string

FULLPARTIALNONE

accountStatus
string

ACTIVECLOSEDBLOCKEDUNKNOWN

accountHolderName
string

Returned on `CLOSE_MATCH` so a human can decide.

validatedBy
string
validatedAt
string(date-time)
expiresAt
string(date-time)
createdAt
string(date-time)
404Unknown resource.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

PATCH/beneficiaries/{beneficiaryId}

Update a beneficiary

updateBeneficiary

Changing the account or agent resets `status` to `UNVALIDATED`.

Authenticated with ApiKey + Signature + Timestamp.

Path parameters

beneficiaryIdrequired
string

Example ben_01J8M4TQ7X2K9

Request body required

application/json

application/json
reference
string

max length 35

Individual or organisation. Determines which identification fields apply.

INDVORGA

namerequired
string

max length 140

Structured address. CBPR+ is moving to structured-mandatory — send these fields rather than free-text `addressLine`.

streetName
string

max length 70

buildingNumber
string

max length 16

postCode
string

max length 16

townName
string

max length 35

countrySubDivision
string

max length 35

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

addressLine
string[]

Unstructured fallback. Discouraged.

max items 3

identification

FATF Recommendation 16 requires an identifier for the originator on cross-border wires. For `ORGA` use `lei` or `taxId`; for `INDV` use `nationalId`, `passportNumber`, `customerId` or `dateAndPlaceOfBirth`.

lei
string

pattern ^[A-Z0-9]{18}[0-9]{2}$

taxId
string

max length 35

bic
string

pattern ^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$

nationalId
string

max length 35

passportNumber
string

max length 35

driversLicence
string

max length 35

customerId
string

max length 35

dateAndPlaceOfBirth
birthDaterequired
string(date)
cityOfBirth
string

max length 35

countryOfBirthrequired

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

contact
email
string(email)
phone
string

E.164. Required by mobile-money and several payout rails.

pattern ^\+[0-9]{6,18}$

countryOfResidence

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

accountrequired

Either an IBAN or a scheme-qualified local account identifier — never both.

option 1
object
ibanrequired
string

pattern ^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

option 2
object
schemerequired
string

Local scheme name, from the corridor requirements.

Example IN_ACCOUNT

idrequired
string

max length 34

issuer
string

max length 35

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

agent

At least one identifier is required.

option 1
any
option 2
any
defaultPurpose
string
metadata
map<string, string>
[key]
string

max length 256

Responses

200Updated.

application/json

application/json
beneficiaryIdrequired
string
reference
string
statusrequired

UNVALIDATEDVALIDATEDVALIDATION_FAILEDINACTIVE

Individual or organisation. Determines which identification fields apply.

INDVORGA

namerequired
string

Structured address. CBPR+ is moving to structured-mandatory — send these fields rather than free-text `addressLine`.

streetName
string

max length 70

buildingNumber
string

max length 16

postCode
string

max length 16

townName
string

max length 35

countrySubDivision
string

max length 35

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

addressLine
string[]

Unstructured fallback. Discouraged.

max items 3

contact
email
string(email)
phone
string

E.164. Required by mobile-money and several payout rails.

pattern ^\+[0-9]{6,18}$

account

Account identifiers are masked on read.

option 1
object
ibanrequired
string

pattern ^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

option 2
object
schemerequired
string

Local scheme name, from the corridor requirements.

Example IN_ACCOUNT

idrequired
string

max length 34

issuer
string

max length 35

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

agent

At least one identifier is required.

option 1
any
option 2
any
corridors
string[]

Derived from the account and agent.

lastValidation
beneficiaryId
string
result
string

MATCHCLOSE_MATCHNO_MATCHACCOUNT_NOT_FOUNDACCOUNT_CLOSEDUNAVAILABLE

nameMatch
string

FULLPARTIALNONE

accountStatus
string

ACTIVECLOSEDBLOCKEDUNKNOWN

accountHolderName
string

Returned on `CLOSE_MATCH` so a human can decide.

validatedBy
string
validatedAt
string(date-time)
expiresAt
string(date-time)
createdAt
string(date-time)
400Malformed, or failed schema / corridor / CBPR+ validation.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

404Unknown resource.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

DELETE/beneficiaries/{beneficiaryId}

Deactivate a beneficiary

deactivateBeneficiary

Soft delete. Historic payments keep their reference.

Authenticated with ApiKey + Signature + Timestamp.

Path parameters

beneficiaryIdrequired
string

Example ben_01J8M4TQ7X2K9

Responses

204Deactivated.
404Unknown resource.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

POST/beneficiaries/{beneficiaryId}/validate

Confirmation of Payee

validateBeneficiary

Checks the account exists and the name matches **before** money moves. This is the single largest lever on your `AC03` rejection rate. Validation does not block payment — you may pay an unvalidated beneficiary — but the result is recorded on every payment made to it.

Authenticated with ApiKey + Signature + Timestamp.

Path parameters

beneficiaryIdrequired
string

Example ben_01J8M4TQ7X2K9

Headers

Idempotency-Keyrequired
string(uuid)

UUID. Replaying with an identical body returns the original response and `Idempotency-Replayed: true`; with a different body it returns `409`. Keys are retained 24 hours.

Request body optional

application/json

application/json
amount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Responses

200Validation result.

application/json

application/json
beneficiaryId
string
result
string

MATCHCLOSE_MATCHNO_MATCHACCOUNT_NOT_FOUNDACCOUNT_CLOSEDUNAVAILABLE

nameMatch
string

FULLPARTIALNONE

accountStatus
string

ACTIVECLOSEDBLOCKEDUNKNOWN

accountHolderName
string

Returned on `CLOSE_MATCH` so a human can decide.

validatedBy
string
validatedAt
string(date-time)
expiresAt
string(date-time)
404Unknown resource.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

Payments

Create, track and act on payments.

POST/payments

Create a payment

createPayment

**Asynchronous.** Acceptance is not execution. A `202` means *accepted for processing*, not *paid* — screening, routing and submission happen after the response, and settlement never resolves on the same call. The outcome arrives by webhook. Two content types carry the same model: the Simple usage profile, and the full ISO 20022 `pain.001` body. There is no XML endpoint.

Authenticated with ApiKey + Signature + Timestamp.

Headers

Idempotency-Keyrequired
string(uuid)

UUID. Replaying with an identical body returns the original response and `Idempotency-Replayed: true`; with a different body it returns `409`. Keys are retained 24 hours.

X-Correlation-Id
string

Echoed on the response and threaded through every internal hop.

Request body required

application/vnd.silora.simple+json

application/vnd.silora.simple+json
option 1
any
option 2
any

application/json

application/json
CstmrCdtTrfInitnrequired
object

Responses

202Accepted for processing.

X-Silora-Uetr string(uuid)

application/json

application/json
uetrrequired
string(uuid)
endToEndIdrequired
string
instructionId
string
createdAt
string(date-time)
statusrequired

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatusrequired

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

instructedAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

corridor
pair
string

Example US-IN

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

currencies

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

providers
string[]
beneficiaryId
string
accepted
object

What was checked at acceptance, so you know the rejection risk that remains.

validation
string

PASSED

corridorRequirements
string

SATISFIED

beneficiaryValidation
beneficiaryId
string
result
string

MATCHCLOSE_MATCHNO_MATCHACCOUNT_NOT_FOUNDACCOUNT_CLOSEDUNAVAILABLE

nameMatch
string

FULLPARTIALNONE

accountStatus
string

ACTIVECLOSEDBLOCKEDUNKNOWN

accountHolderName
string

Returned on `CLOSE_MATCH` so a human can decide.

validatedBy
string
validatedAt
string(date-time)
expiresAt
string(date-time)
execution
one of

Null until the payment is routed.

PaymentExecution

Resolved by the platform. Never accepted from a caller.

providerId
string
providerName
string
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
evaluated
RouteEvaluation[]
providerReference
string
settlementAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

Expanded under ChargeBearer.

amount

Expanded under Amount.

settlementAsset

Present only when the resolved rail used one. An **execution outcome** — never an input. The instructed amount stays in its ISO 4217 currency.

token
string

Example USDC

chain
string

Example base

contractAddress
string
decimals
integer
settlementDate
string(date)
settledAt
string(date-time)
attempts
integer
option 2
null
links
object
self
string(uri)
timeline
string(uri)
400Malformed, or failed schema / corridor / CBPR+ validation.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

401Bad key, signature or timestamp skew.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

409Idempotency-key reuse with a different body, or invalid state transition.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

422Well-formed but rejected. Always carries `isoReasonCode`.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

429Rate limited.

RateLimit-Limit integerRateLimit-Remaining integerRateLimit-Reset integer

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

503Provider unreachable. Retry with the same `Idempotency-Key`.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

GET/payments/{uetr}

Full current state of a payment

getPayment

Authenticated with ApiKey + Signature + Timestamp.

Path parameters

uetrrequired
string(uuid)

The payment's UETR — its identity everywhere.

Example 7a9c1e02-4f3b-4c8e-9d21-6b0f5a8e33c1

Headers

X-Correlation-Id
string

Echoed on the response and threaded through every internal hop.

Responses

200The payment. Account numbers are masked.

application/json

application/json
uetrrequired
string(uuid)
endToEndId
string
instructionId
string
transactionId
string
createdAt
string(date-time)
updatedAt
string(date-time)
statusrequired

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatusrequired

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
reasonText
string | null
instruction

The instruction block. Exactly one of `instructedAmount` (fixed-send) or `equivalentAmount` (fixed-receive) is required. Provide either `beneficiaryId` or the inline `creditor` / `creditorAccount` / `creditorAgent` trio. Provider mechanics — funding accounts, wallet addresses, chains, tokens, FX rates — are **never** accepted here. A payload containing one is rejected `FF01`.

option 1
any
option 2
any
execution
one of
PaymentExecution

Resolved by the platform. Never accepted from a caller.

providerId
string
providerName
string
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
evaluated
RouteEvaluation[]
providerReference
string
settlementAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

Expanded under ChargeBearer.

amount

Expanded under Amount.

settlementAsset

Present only when the resolved rail used one. An **execution outcome** — never an input. The instructed amount stays in its ISO 4217 currency.

token
string

Example USDC

chain
string

Example base

contractAddress
string
decimals
integer
settlementDate
string(date)
settledAt
string(date-time)
attempts
integer
option 2
null
compliance
object
screening
object
result
string

CLEARHITPENDING

screenedAt
string(date-time)
beneficiaryValidation
beneficiaryId
string
result
string

MATCHCLOSE_MATCHNO_MATCHACCOUNT_NOT_FOUNDACCOUNT_CLOSEDUNAVAILABLE

nameMatch
string

FULLPARTIALNONE

accountStatus
string

ACTIVECLOSEDBLOCKEDUNKNOWN

accountHolderName
string

Returned on `CLOSE_MATCH` so a human can decide.

validatedBy
string
validatedAt
string(date-time)
expiresAt
string(date-time)
corridor
pair
string

Example US-IN

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

currencies

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

providers
string[]
404Unknown resource.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

GET/payments/{uetr}/timeline

Lifecycle events for a payment

getPaymentTimeline

Authenticated with ApiKey + Signature + Timestamp.

Path parameters

uetrrequired
string(uuid)

The payment's UETR — its identity everywhere.

Example 7a9c1e02-4f3b-4c8e-9d21-6b0f5a8e33c1

Responses

200Ordered lifecycle events.

application/json

application/json
uetrrequired
string(uuid)
eventsrequired
atrequired
string(date-time)
statusrequired

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatusrequired

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

labelrequired
string
detail
string
404Unknown resource.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

POST/payments/{uetr}/retry

Re-attempt a failed payment

retryPayment

Same `uetr`, new `transactionId`, new provider attempt key. Rejected `409` if the payment is not retryable, or if the failure was terminal (`AC03`, `AC04`, `RR04`, `AM02`).

Authenticated with ApiKey + Signature + Timestamp.

Path parameters

uetrrequired
string(uuid)

The payment's UETR — its identity everywhere.

Example 7a9c1e02-4f3b-4c8e-9d21-6b0f5a8e33c1

Headers

Idempotency-Keyrequired
string(uuid)

UUID. Replaying with an identical body returns the original response and `Idempotency-Replayed: true`; with a different body it returns `409`. Keys are retained 24 hours.

Request body optional

application/json

application/json
reason
string

max length 256

Responses

202Retry accepted.

application/json

application/json
uetrrequired
string(uuid)
endToEndIdrequired
string
instructionId
string
createdAt
string(date-time)
statusrequired

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatusrequired

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

instructedAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

corridor
pair
string

Example US-IN

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

currencies

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

providers
string[]
beneficiaryId
string
accepted
object

What was checked at acceptance, so you know the rejection risk that remains.

validation
string

PASSED

corridorRequirements
string

SATISFIED

beneficiaryValidation
beneficiaryId
string
result
string

MATCHCLOSE_MATCHNO_MATCHACCOUNT_NOT_FOUNDACCOUNT_CLOSEDUNAVAILABLE

nameMatch
string

FULLPARTIALNONE

accountStatus
string

ACTIVECLOSEDBLOCKEDUNKNOWN

accountHolderName
string

Returned on `CLOSE_MATCH` so a human can decide.

validatedBy
string
validatedAt
string(date-time)
expiresAt
string(date-time)
execution
one of

Null until the payment is routed.

PaymentExecution

Resolved by the platform. Never accepted from a caller.

providerId
string
providerName
string
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
evaluated
RouteEvaluation[]
providerReference
string
settlementAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

Expanded under ChargeBearer.

amount

Expanded under Amount.

settlementAsset

Present only when the resolved rail used one. An **execution outcome** — never an input. The instructed amount stays in its ISO 4217 currency.

token
string

Example USDC

chain
string

Example base

contractAddress
string
decimals
integer
settlementDate
string(date)
settledAt
string(date-time)
attempts
integer
option 2
null
links
object
self
string(uri)
timeline
string(uri)
409Idempotency-key reuse with a different body, or invalid state transition.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

POST/payments/{uetr}/reroute

Re-attempt on a different provider

reroutePayment

Same `uetr`, different `providerId`. If the payment carried an explicit `provider`, every subsequent read shows `providerPreference` diverging from `execution.providerId`, and the override is written to the audit trail.

Authenticated with ApiKey + Signature + Timestamp.

Path parameters

uetrrequired
string(uuid)

The payment's UETR — its identity everywhere.

Example 7a9c1e02-4f3b-4c8e-9d21-6b0f5a8e33c1

Headers

Idempotency-Keyrequired
string(uuid)

UUID. Replaying with an identical body returns the original response and `Idempotency-Replayed: true`; with a different body it returns `409`. Keys are retained 24 hours.

Request body required

application/json

application/json
providerrequired

`AUTO` is a reserved value, not a provider. Explicit codes come from `GET /providers`. An explicit provider is a **hard constraint** — if it cannot serve the payment, the payment is rejected, never re-resolved.

AUTOBRIDGEXBSNIUMTHUNESVISA_B2BMC_MOVERIPPLE

default AUTO

reason
string

max length 256

Responses

202Re-route accepted.

application/json

application/json
uetrrequired
string(uuid)
endToEndIdrequired
string
instructionId
string
createdAt
string(date-time)
statusrequired

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatusrequired

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

instructedAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

corridor
pair
string

Example US-IN

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

currencies

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

providers
string[]
beneficiaryId
string
accepted
object

What was checked at acceptance, so you know the rejection risk that remains.

validation
string

PASSED

corridorRequirements
string

SATISFIED

beneficiaryValidation
beneficiaryId
string
result
string

MATCHCLOSE_MATCHNO_MATCHACCOUNT_NOT_FOUNDACCOUNT_CLOSEDUNAVAILABLE

nameMatch
string

FULLPARTIALNONE

accountStatus
string

ACTIVECLOSEDBLOCKEDUNKNOWN

accountHolderName
string

Returned on `CLOSE_MATCH` so a human can decide.

validatedBy
string
validatedAt
string(date-time)
expiresAt
string(date-time)
execution
one of

Null until the payment is routed.

PaymentExecution

Resolved by the platform. Never accepted from a caller.

providerId
string
providerName
string
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
evaluated
RouteEvaluation[]
providerReference
string
settlementAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

Expanded under ChargeBearer.

amount

Expanded under Amount.

settlementAsset

Present only when the resolved rail used one. An **execution outcome** — never an input. The instructed amount stays in its ISO 4217 currency.

token
string

Example USDC

chain
string

Example base

contractAddress
string
decimals
integer
settlementDate
string(date)
settledAt
string(date-time)
attempts
integer
option 2
null
links
object
self
string(uri)
timeline
string(uri)
409Idempotency-key reuse with a different body, or invalid state transition.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

422Well-formed but rejected. Always carries `isoReasonCode`.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

POST/payments/{uetr}/cancel

Cancel, or request cancellation

cancelPayment

Before `SUBMITTED` this cancels outright. After submission it becomes a cancellation *request* to the provider (`camt.056`) whose outcome is not guaranteed; `cancellationType` in the response says which happened and the resolution arrives by webhook.

Authenticated with ApiKey + Signature + Timestamp.

Path parameters

uetrrequired
string(uuid)

The payment's UETR — its identity everywhere.

Example 7a9c1e02-4f3b-4c8e-9d21-6b0f5a8e33c1

Headers

Idempotency-Keyrequired
string(uuid)

UUID. Replaying with an identical body returns the original response and `Idempotency-Replayed: true`; with a different body it returns `409`. Keys are retained 24 hours.

Request body required

application/json

application/json
reasonrequired
string

ISO cancellation reason code.

CUSTDUPLTECHFRADNARR

detail
string

max length 256

Responses

202Cancelled, or cancellation requested.

application/json

application/json
uetrrequired
string(uuid)
endToEndIdrequired
string
instructionId
string
createdAt
string(date-time)
statusrequired

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatusrequired

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

instructedAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

corridor
pair
string

Example US-IN

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

currencies

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

providers
string[]
beneficiaryId
string
accepted
object

What was checked at acceptance, so you know the rejection risk that remains.

validation
string

PASSED

corridorRequirements
string

SATISFIED

beneficiaryValidation
beneficiaryId
string
result
string

MATCHCLOSE_MATCHNO_MATCHACCOUNT_NOT_FOUNDACCOUNT_CLOSEDUNAVAILABLE

nameMatch
string

FULLPARTIALNONE

accountStatus
string

ACTIVECLOSEDBLOCKEDUNKNOWN

accountHolderName
string

Returned on `CLOSE_MATCH` so a human can decide.

validatedBy
string
validatedAt
string(date-time)
expiresAt
string(date-time)
execution
one of

Null until the payment is routed.

PaymentExecution

Resolved by the platform. Never accepted from a caller.

providerId
string
providerName
string
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
evaluated
RouteEvaluation[]
providerReference
string
settlementAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

Expanded under ChargeBearer.

amount

Expanded under Amount.

settlementAsset

Present only when the resolved rail used one. An **execution outcome** — never an input. The instructed amount stays in its ISO 4217 currency.

token
string

Example USDC

chain
string

Example base

contractAddress
string
decimals
integer
settlementDate
string(date)
settledAt
string(date-time)
attempts
integer
option 2
null
links
object
self
string(uri)
timeline
string(uri)
cancellationType
string

CANCELLEDREQUESTED

409Idempotency-key reuse with a different body, or invalid state transition.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

GET/query/payments

Paged, filtered list of payments

queryPayments

Cursor pagination, not offset — the ledger is append-heavy and offsets drift. `totals` covers the whole filtered set, not the page. `Accept: text/csv` streams an export.

Authenticated with ApiKey + Signature + Timestamp.

Query parameters

status
PaymentStatus

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

from
string(date)
to
string(date)
updatedSince
string(date-time)

Reconciliation fallback when webhook delivery has failed.

corridor
string

pattern ^[A-Z]{2}-[A-Z]{2}$

provider
string
currency
CurrencyCode

pattern ^[A-Z]{3}$

Example USD

minAmount
DecimalString

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

beneficiaryId
string
q
string
sort
string

default -createdAt

cursor
string
limit
integer

min 1 · max 500 · default 100

Responses

200A page of payments.

application/json

application/json
datarequired
uetr
string(uuid)
endToEndId
string
createdAt
string(date-time)
updatedAt
string(date-time)

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatus

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

instructedAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

corridor
pair
string

Example US-IN

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

currencies

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

providers
string[]
creditorName
string
providerId
string
metadata
map<string, string>
[key]
string
pagerequired
cursor
string | null
hasMorerequired
boolean
limitrequired
integer
totals
object
count
integer
volume
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

text/csv

text/csv
stringOpaque body — see the description.

Quotes

Resolve routing, FX and fees without creating anything.

POST/payments/quote

Resolve provider, FX and fees without creating anything

quotePayment

Takes the same body as `POST /payments`. Synchronous. Send `hold: true` to hold the rate where the resolved provider supports it, then pass the returned `quoteId` in `fx.quoteId` on the payment.

Authenticated with ApiKey + Signature + Timestamp.

Headers

Idempotency-Key
string(uuid)

Optional here. Supply one when the call has a side effect you do not want duplicated — holding an FX rate, or re-queuing a delivery.

X-Correlation-Id
string

Echoed on the response and threaded through every internal hop.

Request body required

application/vnd.silora.simple+json

application/vnd.silora.simple+json
option 1
any
option 2
any

Responses

200The resolution. Nothing was created.

application/json

application/json
quoteIdrequired
string
expiresAt
string(date-time)
rateHeld
boolean
routingDecisionrequired

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
debitAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

amount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

totalCost
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

settlement
object
estimatedAt
string(date-time)
window
string
cutOff
string(date-time)
requirements
object

Quote first and you never discover a missing purpose code by rejection.

satisfied
boolean
pathrequired
string

Dotted path into the payment request.

Example creditorAgent.clearingSystemMemberId

requirementrequired
string

REQUIREDCONDITIONALRECOMMENDEDOPTIONALNOT_SUPPORTED

condition
string

Present when `requirement` is `CONDITIONAL`.

reason
string
label
string
pattern
string
maxLength
integer
allowed
string[]
codeList
string
codeListUrl
string
400Malformed, or failed schema / corridor / CBPR+ validation.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

422Well-formed but rejected. Always carries `isoReasonCode`.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

Providers

Provider catalogue, capability and funding balances.

GET/providers

Provider catalogue and your subscriptions

listProviders

Authenticated with ApiKey + Signature + Timestamp.

Responses

200Providers.

application/json

application/json
datarequired
code
string

Example BRIDGE

providerId
string

Example bridge

name
string
kind
string

STABLECOINPSP

subscribed
boolean
status
string

HEALTHYDEGRADEDDOWN

currencies

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

corridors
string[]
GET/providers/capability-matrix

Which providers can serve a corridor

getCapabilityMatrix

Authenticated with ApiKey + Signature + Timestamp.

Query parameters

corridorrequired
string

pattern ^[A-Z]{2}-[A-Z]{2}$

currency
CurrencyCode

pattern ^[A-Z]{3}$

Example USD

amount
DecimalString

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Responses

200Capability per provider.

application/json

application/json
corridor
string
currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

supported
boolean
providers
object[]
code
string
capable
boolean
funded
boolean | null
estimatedCostBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

settlementWindow
string
note
string
GET/ledger/accounts

Funding balances you hold at each provider

listFundingAccounts

These are balances **you** hold at each provider, read by Silora. Silora takes no custody.

Authenticated with ApiKey + Signature + Timestamp.

Responses

200Funding accounts.

application/json

application/json
datarequired
accountId
string
providerId
string
currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

available
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

pending
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

asOf
string(date-time)

Documents

Supporting documents for corridors that require them.

POST/documents

Upload a supporting document

uploadDocument

Authenticated with ApiKey + Signature + Timestamp.

Headers

Idempotency-Keyrequired
string(uuid)

UUID. Replaying with an identical body returns the original response and `Idempotency-Replayed: true`; with a different body it returns `409`. Keys are retained 24 hours.

Request body required

multipart/form-data

multipart/form-data
filerequired
string(binary)
typerequired
string

COMMERCIAL_INVOICECONTRACTCUSTOMS_DECLARATIONTAX_CERTIFICATEOTHER

description
string

max length 256

Responses

201Stored.

application/json

application/json
documentId
string
type
string
filename
string
sizeBytes
integer
uploadedAt
string(date-time)
413Malformed, or failed schema / corridor / CBPR+ validation.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

Webhooks

Endpoint management and delivery replay.

GET/webhooks/endpoints

List webhook endpoints

listWebhookEndpoints

Authenticated with ApiKey + Signature + Timestamp.

Responses

200Endpoints.

application/json

application/json
datarequired
endpointId
string
url
string(uri)

payment.acceptedpayment.screenedpayment.routedpayment.submittedpayment.settledpayment.failedpayment.cancelledpayment.returnedbeneficiary.validatedquote.expired

description
string
status
string

ACTIVESUSPENDED

createdAt
string(date-time)
POST/webhooks/endpoints

Register a webhook endpoint

createWebhookEndpoint

The response returns `secret` **once**. Store it; it is the HMAC key.

Authenticated with ApiKey + Signature + Timestamp.

Headers

Idempotency-Keyrequired
string(uuid)

UUID. Replaying with an identical body returns the original response and `Idempotency-Replayed: true`; with a different body it returns `409`. Keys are retained 24 hours.

Request body required

application/json

application/json
urlrequired
string(uri)
eventsrequired

payment.acceptedpayment.screenedpayment.routedpayment.submittedpayment.settledpayment.failedpayment.cancelledpayment.returnedbeneficiary.validatedquote.expired

min items 1

description
string

max length 256

Responses

201Registered.

application/json

application/json
endpointId
string
url
string(uri)

payment.acceptedpayment.screenedpayment.routedpayment.submittedpayment.settledpayment.failedpayment.cancelledpayment.returnedbeneficiary.validatedquote.expired

description
string
status
string

ACTIVESUSPENDED

createdAt
string(date-time)
secretrequired
string

Returned once, never again.

DELETE/webhooks/endpoints/{endpointId}

Remove a webhook endpoint

deleteWebhookEndpoint

Authenticated with ApiKey + Signature + Timestamp.

Path parameters

endpointIdrequired
string

Responses

204Removed.
404Unknown resource.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

GET/webhooks/endpoints/{endpointId}/deliveries

Delivery log for an endpoint

listWebhookDeliveries

Authenticated with ApiKey + Signature + Timestamp.

Path parameters

endpointIdrequired
string

Query parameters

cursor
string
limit
integer

min 1 · max 500 · default 100

Responses

200Deliveries.

application/json

application/json
datarequired
deliveryId
string
eventId
string

payment.acceptedpayment.screenedpayment.routedpayment.submittedpayment.settledpayment.failedpayment.cancelledpayment.returnedbeneficiary.validatedquote.expired

uetr
string(uuid)
attempts
integer
lastStatusCode
integer
deliveredAt
string(date-time)
status
string

DELIVEREDFAILEDPENDING

pagerequired
cursor
string | null
hasMorerequired
boolean
limitrequired
integer
POST/webhooks/endpoints/{endpointId}/deliveries/{deliveryId}/replay

Replay a delivery

replayWebhookDelivery

Authenticated with ApiKey + Signature + Timestamp.

Path parameters

endpointIdrequired
string
deliveryIdrequired
string

Headers

Idempotency-Key
string(uuid)

Optional here. Supply one when the call has a side effect you do not want duplicated — holding an FX rate, or re-queuing a delivery.

Responses

202Replay queued.
404Unknown resource.

application/problem+json

application/problem+json
typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

Webhook events

Silora delivers these to the endpoints you register. Delivery is at-least-once and unordered — deduplicate on eventId and trust occurredAt. Verification and the recovery path are in the webhooks guide.

eventpayment.settled

A payment settled — terminal

Acknowledged. Respond within 5 seconds; do your work asynchronously.

eventrequired

payment.acceptedpayment.screenedpayment.routedpayment.submittedpayment.settledpayment.failedpayment.cancelledpayment.returnedbeneficiary.validatedquote.expired

eventIdrequired
string
occurredAtrequired
string(date-time)
uetrrequired
string(uuid)
endToEndId
string
instructionId
string
statusrequired

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatusrequired

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
reasonText
string | null
terminal
boolean
retryable
boolean
failedStage
string

VALIDATIONSCREENINGROUTINGPROVIDER_SUBMISSIONSETTLEMENT

providerId
string
remediation
string

Resolved by the platform. Never accepted from a caller.

providerId
string
providerName
string
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
providerReference
string
settlementAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

amount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

settlementAsset

Present only when the resolved rail used one. An **execution outcome** — never an input. The instructed amount stays in its ISO 4217 currency.

token
string

Example USDC

chain
string

Example base

contractAddress
string
decimals
integer
settlementDate
string(date)
settledAt
string(date-time)
attempts
integer
returnedAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

chargesDeducted
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

returnedAt
string(date-time)
metadata
map<string, string>
[key]
string
json
{
  "event": "payment.settled",
  "eventId": "evt_01J8KXB4N2M7Q",
  "occurredAt": "2026-08-22T15:52:08Z",
  "uetr": "7a9c1e02-4f3b-4c8e-9d21-6b0f5a8e33c1",
  "endToEndId": "INV-2026-4471",
  "status": "SETTLED",
  "isoStatus": "ACSC",
  "terminal": true,
  "execution": {
    "providerId": "bridge",
    "providerReference": "brg_tr_01J8KX2M4Q",
    "creditAmount": {
      "currency": "INR",
      "value": "2043725.00"
    },
    "exchangeRate": {
      "pair": "USD/INR",
      "rate": "83.4173",
      "spreadBps": "18"
    },
    "settlementAsset": {
      "token": "USDC",
      "chain": "base"
    },
    "settledAt": "2026-08-22T15:52:08Z"
  },
  "metadata": {
    "costCentre": "CC-EMEA-07"
  }
}
POST to your endpoint · payment.settled
eventpayment.failed

A payment was rejected — terminal

Acknowledged.

eventrequired

payment.acceptedpayment.screenedpayment.routedpayment.submittedpayment.settledpayment.failedpayment.cancelledpayment.returnedbeneficiary.validatedquote.expired

eventIdrequired
string
occurredAtrequired
string(date-time)
uetrrequired
string(uuid)
endToEndId
string
instructionId
string
statusrequired

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatusrequired

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
reasonText
string | null
terminal
boolean
retryable
boolean
failedStage
string

VALIDATIONSCREENINGROUTINGPROVIDER_SUBMISSIONSETTLEMENT

providerId
string
remediation
string

Resolved by the platform. Never accepted from a caller.

providerId
string
providerName
string
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
providerReference
string
settlementAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

amount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

settlementAsset

Present only when the resolved rail used one. An **execution outcome** — never an input. The instructed amount stays in its ISO 4217 currency.

token
string

Example USDC

chain
string

Example base

contractAddress
string
decimals
integer
settlementDate
string(date)
settledAt
string(date-time)
attempts
integer
returnedAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

chargesDeducted
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

returnedAt
string(date-time)
metadata
map<string, string>
[key]
string
json
{
  "event": "payment.failed",
  "eventId": "evt_01J8KXC91P3R",
  "occurredAt": "2026-08-22T09:41:22Z",
  "uetr": "b41d77aa-9c02-4e15-8f6b-2a7de1440c93",
  "endToEndId": "INV-2026-4472",
  "status": "FAILED",
  "isoStatus": "RJCT",
  "isoReasonCode": "AC03",
  "reasonText": "Creditor account number failed provider validation",
  "terminal": true,
  "retryable": false,
  "failedStage": "PROVIDER_SUBMISSION",
  "providerId": "bridge"
}
POST to your endpoint · payment.failed
eventpayment.returned

Funds returned after settlement — terminal

Acknowledged.

eventrequired

payment.acceptedpayment.screenedpayment.routedpayment.submittedpayment.settledpayment.failedpayment.cancelledpayment.returnedbeneficiary.validatedquote.expired

eventIdrequired
string
occurredAtrequired
string(date-time)
uetrrequired
string(uuid)
endToEndId
string
instructionId
string
statusrequired

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatusrequired

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
reasonText
string | null
terminal
boolean
retryable
boolean
failedStage
string

VALIDATIONSCREENINGROUTINGPROVIDER_SUBMISSIONSETTLEMENT

providerId
string
remediation
string

Resolved by the platform. Never accepted from a caller.

providerId
string
providerName
string
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
providerReference
string
settlementAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

amount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

settlementAsset

Present only when the resolved rail used one. An **execution outcome** — never an input. The instructed amount stays in its ISO 4217 currency.

token
string

Example USDC

chain
string

Example base

contractAddress
string
decimals
integer
settlementDate
string(date)
settledAt
string(date-time)
attempts
integer
returnedAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

chargesDeducted
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

returnedAt
string(date-time)
metadata
map<string, string>
[key]
string
eventpayment.cancelled

Cancelled before submission — terminal

Acknowledged.

eventrequired

payment.acceptedpayment.screenedpayment.routedpayment.submittedpayment.settledpayment.failedpayment.cancelledpayment.returnedbeneficiary.validatedquote.expired

eventIdrequired
string
occurredAtrequired
string(date-time)
uetrrequired
string(uuid)
endToEndId
string
instructionId
string
statusrequired

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatusrequired

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
reasonText
string | null
terminal
boolean
retryable
boolean
failedStage
string

VALIDATIONSCREENINGROUTINGPROVIDER_SUBMISSIONSETTLEMENT

providerId
string
remediation
string

Resolved by the platform. Never accepted from a caller.

providerId
string
providerName
string
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
providerReference
string
settlementAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

amount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

settlementAsset

Present only when the resolved rail used one. An **execution outcome** — never an input. The instructed amount stays in its ISO 4217 currency.

token
string

Example USDC

chain
string

Example base

contractAddress
string
decimals
integer
settlementDate
string(date)
settledAt
string(date-time)
attempts
integer
returnedAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

chargesDeducted
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

returnedAt
string(date-time)
metadata
map<string, string>
[key]
string
eventpayment.accepted

Instruction validated and accepted

Acknowledged.

eventrequired

payment.acceptedpayment.screenedpayment.routedpayment.submittedpayment.settledpayment.failedpayment.cancelledpayment.returnedbeneficiary.validatedquote.expired

eventIdrequired
string
occurredAtrequired
string(date-time)
uetrrequired
string(uuid)
endToEndId
string
instructionId
string
statusrequired

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatusrequired

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
reasonText
string | null
terminal
boolean
retryable
boolean
failedStage
string

VALIDATIONSCREENINGROUTINGPROVIDER_SUBMISSIONSETTLEMENT

providerId
string
remediation
string

Resolved by the platform. Never accepted from a caller.

providerId
string
providerName
string
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
providerReference
string
settlementAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

amount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

settlementAsset

Present only when the resolved rail used one. An **execution outcome** — never an input. The instructed amount stays in its ISO 4217 currency.

token
string

Example USDC

chain
string

Example base

contractAddress
string
decimals
integer
settlementDate
string(date)
settledAt
string(date-time)
attempts
integer
returnedAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

chargesDeducted
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

returnedAt
string(date-time)
metadata
map<string, string>
[key]
string
eventpayment.screened

Sanctions and AML cleared

Acknowledged.

eventrequired

payment.acceptedpayment.screenedpayment.routedpayment.submittedpayment.settledpayment.failedpayment.cancelledpayment.returnedbeneficiary.validatedquote.expired

eventIdrequired
string
occurredAtrequired
string(date-time)
uetrrequired
string(uuid)
endToEndId
string
instructionId
string
statusrequired

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatusrequired

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
reasonText
string | null
terminal
boolean
retryable
boolean
failedStage
string

VALIDATIONSCREENINGROUTINGPROVIDER_SUBMISSIONSETTLEMENT

providerId
string
remediation
string

Resolved by the platform. Never accepted from a caller.

providerId
string
providerName
string
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
providerReference
string
settlementAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

amount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

settlementAsset

Present only when the resolved rail used one. An **execution outcome** — never an input. The instructed amount stays in its ISO 4217 currency.

token
string

Example USDC

chain
string

Example base

contractAddress
string
decimals
integer
settlementDate
string(date)
settledAt
string(date-time)
attempts
integer
returnedAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

chargesDeducted
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

returnedAt
string(date-time)
metadata
map<string, string>
[key]
string
eventpayment.routed

Provider resolved

Acknowledged.

eventrequired

payment.acceptedpayment.screenedpayment.routedpayment.submittedpayment.settledpayment.failedpayment.cancelledpayment.returnedbeneficiary.validatedquote.expired

eventIdrequired
string
occurredAtrequired
string(date-time)
uetrrequired
string(uuid)
endToEndId
string
instructionId
string
statusrequired

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatusrequired

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
reasonText
string | null
terminal
boolean
retryable
boolean
failedStage
string

VALIDATIONSCREENINGROUTINGPROVIDER_SUBMISSIONSETTLEMENT

providerId
string
remediation
string

Resolved by the platform. Never accepted from a caller.

providerId
string
providerName
string
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
providerReference
string
settlementAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

amount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

settlementAsset

Present only when the resolved rail used one. An **execution outcome** — never an input. The instructed amount stays in its ISO 4217 currency.

token
string

Example USDC

chain
string

Example base

contractAddress
string
decimals
integer
settlementDate
string(date)
settledAt
string(date-time)
attempts
integer
returnedAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

chargesDeducted
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

returnedAt
string(date-time)
metadata
map<string, string>
[key]
string
eventpayment.submitted

Handed to the provider

Acknowledged.

eventrequired

payment.acceptedpayment.screenedpayment.routedpayment.submittedpayment.settledpayment.failedpayment.cancelledpayment.returnedbeneficiary.validatedquote.expired

eventIdrequired
string
occurredAtrequired
string(date-time)
uetrrequired
string(uuid)
endToEndId
string
instructionId
string
statusrequired

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatusrequired

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
reasonText
string | null
terminal
boolean
retryable
boolean
failedStage
string

VALIDATIONSCREENINGROUTINGPROVIDER_SUBMISSIONSETTLEMENT

providerId
string
remediation
string

Resolved by the platform. Never accepted from a caller.

providerId
string
providerName
string
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
providerReference
string
settlementAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

amount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

settlementAsset

Present only when the resolved rail used one. An **execution outcome** — never an input. The instructed amount stays in its ISO 4217 currency.

token
string

Example USDC

chain
string

Example base

contractAddress
string
decimals
integer
settlementDate
string(date)
settledAt
string(date-time)
attempts
integer
returnedAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

chargesDeducted
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

returnedAt
string(date-time)
metadata
map<string, string>
[key]
string
eventbeneficiary.validated

Confirmation of Payee completed

Acknowledged.

beneficiaryId
string
result
string

MATCHCLOSE_MATCHNO_MATCHACCOUNT_NOT_FOUNDACCOUNT_CLOSEDUNAVAILABLE

nameMatch
string

FULLPARTIALNONE

accountStatus
string

ACTIVECLOSEDBLOCKEDUNKNOWN

accountHolderName
string

Returned on `CLOSE_MATCH` so a human can decide.

validatedBy
string
validatedAt
string(date-time)
expiresAt
string(date-time)

Schemas

Every component schema in the contract. Type links elsewhere on this page resolve here, and nested objects that would recurse are expanded at their own entry rather than inline.

Account

Either an IBAN or a scheme-qualified local account identifier — never both.

option 1
object
ibanrequired
string

pattern ^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

option 2
object
schemerequired
string

Local scheme name, from the corridor requirements.

Example IN_ACCOUNT

idrequired
string

max length 34

issuer
string

max length 35

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Agent

At least one identifier is required.

option 1
any
option 2
any

Amount

currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Beneficiary

beneficiaryIdrequired
string
reference
string
statusrequired

UNVALIDATEDVALIDATEDVALIDATION_FAILEDINACTIVE

Individual or organisation. Determines which identification fields apply.

INDVORGA

namerequired
string

Structured address. CBPR+ is moving to structured-mandatory — send these fields rather than free-text `addressLine`.

streetName
string

max length 70

buildingNumber
string

max length 16

postCode
string

max length 16

townName
string

max length 35

countrySubDivision
string

max length 35

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

addressLine
string[]

Unstructured fallback. Discouraged.

max items 3

contact
email
string(email)
phone
string

E.164. Required by mobile-money and several payout rails.

pattern ^\+[0-9]{6,18}$

account

Account identifiers are masked on read.

option 1
object
ibanrequired
string

pattern ^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

option 2
object
schemerequired
string

Local scheme name, from the corridor requirements.

Example IN_ACCOUNT

idrequired
string

max length 34

issuer
string

max length 35

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

agent

At least one identifier is required.

option 1
any
option 2
any
corridors
string[]

Derived from the account and agent.

lastValidation
beneficiaryId
string
result
string

MATCHCLOSE_MATCHNO_MATCHACCOUNT_NOT_FOUNDACCOUNT_CLOSEDUNAVAILABLE

nameMatch
string

FULLPARTIALNONE

accountStatus
string

ACTIVECLOSEDBLOCKEDUNKNOWN

accountHolderName
string

Returned on `CLOSE_MATCH` so a human can decide.

validatedBy
string
validatedAt
string(date-time)
expiresAt
string(date-time)
createdAt
string(date-time)

BeneficiaryRequest

reference
string

max length 35

Individual or organisation. Determines which identification fields apply.

INDVORGA

namerequired
string

max length 140

Structured address. CBPR+ is moving to structured-mandatory — send these fields rather than free-text `addressLine`.

streetName
string

max length 70

buildingNumber
string

max length 16

postCode
string

max length 16

townName
string

max length 35

countrySubDivision
string

max length 35

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

addressLine
string[]

Unstructured fallback. Discouraged.

max items 3

identification

FATF Recommendation 16 requires an identifier for the originator on cross-border wires. For `ORGA` use `lei` or `taxId`; for `INDV` use `nationalId`, `passportNumber`, `customerId` or `dateAndPlaceOfBirth`.

lei
string

pattern ^[A-Z0-9]{18}[0-9]{2}$

taxId
string

max length 35

bic
string

pattern ^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$

nationalId
string

max length 35

passportNumber
string

max length 35

driversLicence
string

max length 35

customerId
string

max length 35

dateAndPlaceOfBirth
birthDaterequired
string(date)
cityOfBirth
string

max length 35

countryOfBirthrequired

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

contact
email
string(email)
phone
string

E.164. Required by mobile-money and several payout rails.

pattern ^\+[0-9]{6,18}$

countryOfResidence

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

accountrequired

Either an IBAN or a scheme-qualified local account identifier — never both.

option 1
object
ibanrequired
string

pattern ^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

option 2
object
schemerequired
string

Local scheme name, from the corridor requirements.

Example IN_ACCOUNT

idrequired
string

max length 34

issuer
string

max length 35

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

agent

At least one identifier is required.

option 1
any
option 2
any
defaultPurpose
string
metadata
map<string, string>
[key]
string

max length 256

BeneficiaryStatus

stringPrimitive — see the type above.

BeneficiaryValidation

beneficiaryId
string
result
string

MATCHCLOSE_MATCHNO_MATCHACCOUNT_NOT_FOUNDACCOUNT_CLOSEDUNAVAILABLE

nameMatch
string

FULLPARTIALNONE

accountStatus
string

ACTIVECLOSEDBLOCKEDUNKNOWN

accountHolderName
string

Returned on `CLOSE_MATCH` so a human can decide.

validatedBy
string
validatedAt
string(date-time)
expiresAt
string(date-time)

CapabilityMatrix

corridor
string
currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

supported
boolean
providers
object[]
code
string
capable
boolean
funded
boolean | null
estimatedCostBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

settlementWindow
string
note
string

Charge

type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

amount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

ChargeBearer

ISO `ChargeBearerType1Code`.

stringISO `ChargeBearerType1Code`.

Contact

email
string(email)
phone
string

E.164. Required by mobile-money and several payout rails.

pattern ^\+[0-9]{6,18}$

Corridor

pair
string

Example US-IN

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

currencies

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

providers
string[]

CorridorRequirements

corridorrequired
string

Example US-IN

currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

supportedrequired
boolean
fieldsrequired
pathrequired
string

Dotted path into the payment request.

Example creditorAgent.clearingSystemMemberId

requirementrequired
string

REQUIREDCONDITIONALRECOMMENDEDOPTIONALNOT_SUPPORTED

condition
string

Present when `requirement` is `CONDITIONAL`.

reason
string
label
string
pattern
string
maxLength
integer
allowed
string[]
codeList
string
codeListUrl
string
limits
object
minAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

maxAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

cutOff
string

Example 14:30

cutOffTimezone
string

Example America/New_York

settlement
object
typical
string

Example same-day

window
string

Example T+0 to T+1

providers
string[]

CountryCode

ISO 3166-1 alpha-2.

stringISO 3166-1 alpha-2.

CurrencyCode

ISO 4217 currency. Stablecoin tickers are never valid here.

stringISO 4217 currency. Stablecoin tickers are never valid here.

DateAndPlaceOfBirth

birthDaterequired
string(date)
cityOfBirth
string

max length 35

countryOfBirthrequired

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

DecimalString

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

stringA decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

Document

documentId
string
type
string
filename
string
sizeBytes
integer
uploadedAt
string(date-time)

ExchangeRate

pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

source
string

Example provider

asOf
string(date-time)

FieldRequirement

pathrequired
string

Dotted path into the payment request.

Example creditorAgent.clearingSystemMemberId

requirementrequired
string

REQUIREDCONDITIONALRECOMMENDEDOPTIONALNOT_SUPPORTED

condition
string

Present when `requirement` is `CONDITIONAL`.

reason
string
label
string
pattern
string
maxLength
integer
allowed
string[]
codeList
string
codeListUrl
string

FundingAccount

accountId
string
providerId
string
currency

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

available
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

pending
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

asOf
string(date-time)

IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

stringISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

IsoStatus

ISO `ExternalPaymentTransactionStatus1Code`.

stringISO `ExternalPaymentTransactionStatus1Code`.

Page

cursor
string | null
hasMorerequired
boolean
limitrequired
integer

Party

Individual or organisation. Determines which identification fields apply.

INDVORGA

namerequired
string

max length 140

Structured address. CBPR+ is moving to structured-mandatory — send these fields rather than free-text `addressLine`.

streetName
string

max length 70

buildingNumber
string

max length 16

postCode
string

max length 16

townName
string

max length 35

countrySubDivision
string

max length 35

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

addressLine
string[]

Unstructured fallback. Discouraged.

max items 3

identification

FATF Recommendation 16 requires an identifier for the originator on cross-border wires. For `ORGA` use `lei` or `taxId`; for `INDV` use `nationalId`, `passportNumber`, `customerId` or `dateAndPlaceOfBirth`.

lei
string

pattern ^[A-Z0-9]{18}[0-9]{2}$

taxId
string

max length 35

bic
string

pattern ^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$

nationalId
string

max length 35

passportNumber
string

max length 35

driversLicence
string

max length 35

customerId
string

max length 35

dateAndPlaceOfBirth
birthDaterequired
string(date)
cityOfBirth
string

max length 35

countryOfBirthrequired

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

contact
email
string(email)
phone
string

E.164. Required by mobile-money and several payout rails.

pattern ^\+[0-9]{6,18}$

countryOfResidence

Distinct from address country; matters for sanctions screening.

pattern ^[A-Z]{2}$

PartyIdentification

FATF Recommendation 16 requires an identifier for the originator on cross-border wires. For `ORGA` use `lei` or `taxId`; for `INDV` use `nationalId`, `passportNumber`, `customerId` or `dateAndPlaceOfBirth`.

lei
string

pattern ^[A-Z0-9]{18}[0-9]{2}$

taxId
string

max length 35

bic
string

pattern ^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$

nationalId
string

max length 35

passportNumber
string

max length 35

driversLicence
string

max length 35

customerId
string

max length 35

dateAndPlaceOfBirth
birthDaterequired
string(date)
cityOfBirth
string

max length 35

countryOfBirthrequired

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

PartyType

Individual or organisation. Determines which identification fields apply.

stringIndividual or organisation. Determines which identification fields apply.

Payment

uetrrequired
string(uuid)
endToEndId
string
instructionId
string
transactionId
string
createdAt
string(date-time)
updatedAt
string(date-time)
statusrequired

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatusrequired

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
reasonText
string | null
instruction

The instruction block. Exactly one of `instructedAmount` (fixed-send) or `equivalentAmount` (fixed-receive) is required. Provide either `beneficiaryId` or the inline `creditor` / `creditorAccount` / `creditorAgent` trio. Provider mechanics — funding accounts, wallet addresses, chains, tokens, FX rates — are **never** accepted here. A payload containing one is rejected `FF01`.

option 1
any
option 2
any
execution
one of
PaymentExecution

Resolved by the platform. Never accepted from a caller.

providerId
string
providerName
string
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
evaluated
RouteEvaluation[]
providerReference
string
settlementAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

Expanded under ChargeBearer.

amount

Expanded under Amount.

settlementAsset

Present only when the resolved rail used one. An **execution outcome** — never an input. The instructed amount stays in its ISO 4217 currency.

token
string

Example USDC

chain
string

Example base

contractAddress
string
decimals
integer
settlementDate
string(date)
settledAt
string(date-time)
attempts
integer
option 2
null
compliance
object
screening
object
result
string

CLEARHITPENDING

screenedAt
string(date-time)
beneficiaryValidation
beneficiaryId
string
result
string

MATCHCLOSE_MATCHNO_MATCHACCOUNT_NOT_FOUNDACCOUNT_CLOSEDUNAVAILABLE

nameMatch
string

FULLPARTIALNONE

accountStatus
string

ACTIVECLOSEDBLOCKEDUNKNOWN

accountHolderName
string

Returned on `CLOSE_MATCH` so a human can decide.

validatedBy
string
validatedAt
string(date-time)
expiresAt
string(date-time)
corridor
pair
string

Example US-IN

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

currencies

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

providers
string[]

PaymentAccepted

uetrrequired
string(uuid)
endToEndIdrequired
string
instructionId
string
createdAt
string(date-time)
statusrequired

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatusrequired

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

instructedAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

corridor
pair
string

Example US-IN

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

currencies

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

providers
string[]
beneficiaryId
string
accepted
object

What was checked at acceptance, so you know the rejection risk that remains.

validation
string

PASSED

corridorRequirements
string

SATISFIED

beneficiaryValidation
beneficiaryId
string
result
string

MATCHCLOSE_MATCHNO_MATCHACCOUNT_NOT_FOUNDACCOUNT_CLOSEDUNAVAILABLE

nameMatch
string

FULLPARTIALNONE

accountStatus
string

ACTIVECLOSEDBLOCKEDUNKNOWN

accountHolderName
string

Returned on `CLOSE_MATCH` so a human can decide.

validatedBy
string
validatedAt
string(date-time)
expiresAt
string(date-time)
execution
one of

Null until the payment is routed.

PaymentExecution

Resolved by the platform. Never accepted from a caller.

providerId
string
providerName
string
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
evaluated
RouteEvaluation[]
providerReference
string
settlementAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

Expanded under ChargeBearer.

amount

Expanded under Amount.

settlementAsset

Present only when the resolved rail used one. An **execution outcome** — never an input. The instructed amount stays in its ISO 4217 currency.

token
string

Example USDC

chain
string

Example base

contractAddress
string
decimals
integer
settlementDate
string(date)
settledAt
string(date-time)
attempts
integer
option 2
null
links
object
self
string(uri)
timeline
string(uri)

PaymentExecution

Resolved by the platform. Never accepted from a caller.

providerId
string
providerName
string
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
providerReference
string
settlementAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

amount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

settlementAsset

Present only when the resolved rail used one. An **execution outcome** — never an input. The instructed amount stays in its ISO 4217 currency.

token
string

Example USDC

chain
string

Example base

contractAddress
string
decimals
integer
settlementDate
string(date)
settledAt
string(date-time)
attempts
integer

PaymentRequest

The instruction block. Exactly one of `instructedAmount` (fixed-send) or `equivalentAmount` (fixed-receive) is required. Provide either `beneficiaryId` or the inline `creditor` / `creditorAccount` / `creditorAgent` trio. Provider mechanics — funding accounts, wallet addresses, chains, tokens, FX rates — are **never** accepted here. A payload containing one is rejected `FF01`.

option 1
any
option 2
any

PaymentStatus

stringPrimitive — see the type above.

PaymentSummary

uetr
string(uuid)
endToEndId
string
createdAt
string(date-time)
updatedAt
string(date-time)

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatus

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

instructedAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

corridor
pair
string

Example US-IN

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

currencies

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

providers
string[]
creditorName
string
providerId
string
metadata
map<string, string>
[key]
string

PaymentWebhook

Delivered with `X-Silora-Signature: sha256=HMAC(secret, timestamp + "." + rawBody)`. At-least-once — deduplicate on `eventId`. Order is **not** guaranteed; trust `occurredAt`, never arrival order. Retried with exponential backoff over 24 hours on any non-`2xx`.

eventrequired

payment.acceptedpayment.screenedpayment.routedpayment.submittedpayment.settledpayment.failedpayment.cancelledpayment.returnedbeneficiary.validatedquote.expired

eventIdrequired
string
occurredAtrequired
string(date-time)
uetrrequired
string(uuid)
endToEndId
string
instructionId
string
statusrequired

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatusrequired

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
reasonText
string | null
terminal
boolean
retryable
boolean
failedStage
string

VALIDATIONSCREENINGROUTINGPROVIDER_SUBMISSIONSETTLEMENT

providerId
string
remediation
string

Resolved by the platform. Never accepted from a caller.

providerId
string
providerName
string
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
providerReference
string
settlementAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

amount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

settlementAsset

Present only when the resolved rail used one. An **execution outcome** — never an input. The instructed amount stays in its ISO 4217 currency.

token
string

Example USDC

chain
string

Example base

contractAddress
string
decimals
integer
settlementDate
string(date)
settledAt
string(date-time)
attempts
integer
returnedAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

chargesDeducted
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

returnedAt
string(date-time)
metadata
map<string, string>
[key]
string

PostalAddress

Structured address. CBPR+ is moving to structured-mandatory — send these fields rather than free-text `addressLine`.

streetName
string

max length 70

buildingNumber
string

max length 16

postCode
string

max length 16

townName
string

max length 35

countrySubDivision
string

max length 35

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

addressLine
string[]

Unstructured fallback. Discouraged.

max items 3

Problem

RFC 9457 problem details, extended with the ISO reason code.

typerequired
string(uri)
titlerequired
string
statusrequired
integer
detail
string
instance
string
correlationId
string
uetr
string | null
isoReasonCode
one of
IsoReasonCode

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

option 2
null
routingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
errors
object[]
pointerrequired
string

JSON Pointer to the offending element.

coderequired

ISO `ExternalStatusReason1Code`, validated against the quarterly code set rather than a fixed enum. Common values: `AC03` invalid creditor account, `AC04` closed, `AC06` blocked, `AM02` limit exceeded, `AM04` insufficient funds, `AG01` forbidden or no capable provider, `RR03` missing creditor address, `RR04` regulatory, `CURR` unsupported currency, `TM01` past cut-off, `DT01` invalid date or expired quote, `DUPL` duplicate, `ED05` settlement failed, `FF01` invalid format, `FF05` invalid purpose code, `AB06`/`AB07` provider timeout or offline.

Example AC03

detail
string
requirementsUrl
string

The corridor requirement that produced this error.

Provider

code
string

Example BRIDGE

providerId
string

Example bridge

name
string
kind
string

STABLECOINPSP

subscribed
boolean
status
string

HEALTHYDEGRADEDDOWN

currencies

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

corridors
string[]

ProviderCode

`AUTO` is a reserved value, not a provider. Explicit codes come from `GET /providers`. An explicit provider is a **hard constraint** — if it cannot serve the payment, the payment is rejected, never re-resolved.

string`AUTO` is a reserved value, not a provider. Explicit codes come from `GET /providers`. An explicit provider is a **hard constraint** — if it cannot serve the payment, the payment is rejected, never re-resolved.

Quote

quoteIdrequired
string
expiresAt
string(date-time)
rateHeld
boolean
routingDecisionrequired

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string
debitAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

creditAmount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

exchangeRate
pair
string

Example USD/INR

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

inverseRate

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

spreadBps

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

source
string

Example provider

asOf
string(date-time)
charges
type
string

PLATFORMPROVIDERINTERMEDIARYBENEFICIARY_BANK

ISO `ChargeBearerType1Code`.

DEBTCREDSHARSLEV

amount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

totalCost
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

settlement
object
estimatedAt
string(date-time)
window
string
cutOff
string(date-time)
requirements
object

Quote first and you never discover a missing purpose code by rejection.

satisfied
boolean
pathrequired
string

Dotted path into the payment request.

Example creditorAgent.clearingSystemMemberId

requirementrequired
string

REQUIREDCONDITIONALRECOMMENDEDOPTIONALNOT_SUPPORTED

condition
string

Present when `requirement` is `CONDITIONAL`.

reason
string
label
string
pattern
string
maxLength
integer
allowed
string[]
codeList
string
codeListUrl
string

ReferredDocument

typerequired
string

ISO `ExternalDocumentType1Code` — `CINV` commercial invoice, `CREN` credit note.

Example CINV

numberrequired
string

max length 35

relatedDate
string(date)
amount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

RegulatoryReporting

debitCreditReportingIndicator
string

CREDDEBTBOTH

authority
object
name
string

max length 140

ISO 3166-1 alpha-2.

pattern ^[A-Z]{2}$

details
object[]
type
string

Example PURPOSE

code
string

Example P0103

amount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

information
string[]

max length 35

RemittanceInformation

unstructured
string[]

max length 140

What lets the *beneficiary* reconcile automatically.

referredDocument
typerequired
string

ISO `ExternalDocumentType1Code` — `CINV` commercial invoice, `CREN` credit note.

Example CINV

numberrequired
string

max length 35

relatedDate
string(date)
amount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

Expanded under CurrencyCode.

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

Expanded under DecimalString.

creditorReference
object
type
string

Example SCOR

reference
string

ISO 11649 RF creditor reference.

Example RF18539007547034

additionalInformation
string[]

max length 140

RouteEvaluation

providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string

RoutingDecision

Why this provider. "The system chose NIUM" is not an answer an operations team will accept; this is.

preferencerequired
string

Example AUTO

tierrequired
integer

0 explicit code · 1 sole capable subscription · 2 routing rules · 3 best available.

min 0 · max 3

objective
string

Tier 3 only.

COSTSPEEDRELIABILITY

providerId
string | null
providerIdrequired
string
matchedrequired
boolean
winner
boolean
reasonrequired
string

SettlementAsset

Present only when the resolved rail used one. An **execution outcome** — never an input. The instructed amount stays in its ISO 4217 currency.

token
string

Example USDC

chain
string

Example base

contractAddress
string
decimals
integer

StructuredRemittance

What lets the *beneficiary* reconcile automatically.

referredDocument
typerequired
string

ISO `ExternalDocumentType1Code` — `CINV` commercial invoice, `CREN` credit note.

Example CINV

numberrequired
string

max length 35

relatedDate
string(date)
amount
currencyrequired

ISO 4217 currency. Stablecoin tickers are never valid here.

pattern ^[A-Z]{3}$

Example USD

valuerequired

A decimal encoded as a string. **Never a JSON number** — IEEE-754 doubles silently corrupt money.

pattern ^-?[0-9]+(\.[0-9]+)?$

Example 24500.00

creditorReference
object
type
string

Example SCOR

reference
string

ISO 11649 RF creditor reference.

Example RF18539007547034

additionalInformation
string[]

max length 140

TimelineEvent

atrequired
string(date-time)
statusrequired

INITIATEDSCREENEDROUTEDSUBMITTEDSETTLEDFAILEDRETURNED

isoStatusrequired

ISO `ExternalPaymentTransactionStatus1Code`.

RCVDACTCACSPACSCACCCPDNGRJCTCANC

labelrequired
string
detail
string

WebhookDelivery

deliveryId
string
eventId
string

payment.acceptedpayment.screenedpayment.routedpayment.submittedpayment.settledpayment.failedpayment.cancelledpayment.returnedbeneficiary.validatedquote.expired

uetr
string(uuid)
attempts
integer
lastStatusCode
integer
deliveredAt
string(date-time)
status
string

DELIVEREDFAILEDPENDING

WebhookEndpoint

endpointId
string
url
string(uri)

payment.acceptedpayment.screenedpayment.routedpayment.submittedpayment.settledpayment.failedpayment.cancelledpayment.returnedbeneficiary.validatedquote.expired

description
string
status
string

ACTIVESUSPENDED

createdAt
string(date-time)

WebhookEvent

stringPrimitive — see the type above.