For AI agents: visit https://docs.useblinc.com/llms.txt for an index of all pages formatted in Markdown and endpoints in OpenAPI. Append .md to any documentation page URL to get its markdown version.
Plain-English explanations of the JSON objects reused by payment operations.
Several operations reuse the same small JSON shapes. This page explains every parent object and leaf field once. An operation page tells you whether that shape is required, optional, or conditional for that operation.
How to read a property rule
For every property, answer these five questions before writing code:
Who sends it? Blinc sends every request property. The institution sends every response property.
Must it exist?Required means present and non-null. Optional means it may be omitted or null as the operation states. Conditional means the stated condition decides.
What exact value is normal? Use the operation example and code-values page. A standard example value is not permission to invent a missing value.
What does it control? The explanation states whether the field is for routing, identity, money movement, reconciliation, display, or security.
What happens when it is wrong? Validate before changing account or financial state. Return the documented transport or protected business rejection.
No required property has an automatic default. If Blinc omits a required request property, reject the
request. If the institution must return a required response property, it must calculate or copy that
property as described; it must not leave it blank.
Amount
{ "Amt": 2500.00, "Ccy": "NGN" }
Path
Type / required
Meaning and rule
Amount object
Object / Required when its parent amount is present
Keeps the number and its currency together. Never process one without the other.
Amt
Decimal / Required
Amount in normal currency units. 2500.00 means NGN 2,500.00, not kobo. Financial-action amounts must be positive; a documented charge may be zero.
Ccy
Three-letter text / Required
Blinc sends the currency of this amount. The current contract value is NGN. The institution validates it against the account and all related amounts. Never infer NGN when the property is missing.
Code wrapper
{ "Cd": "OTHR" }
Path
Type / required
Meaning and rule
Code-wrapper object
Object / Required when the coded concept is present
Container used by ISO-style messages so a code is not confused with free text.
Cd
Text / Required
Blinc sends this code in requests; the institution sends it in responses. Its meaning depends on the parent path, so read that operation's field row and the code-values page. Accept only a listed literal value, including exact uppercase spelling. Do not infer a missing code.
Says the parent party or account uses a structured identifier.
Id.Othr
Object / Required for the documented non-IBAN flow
"Other identifier": use this because the value is carried under a named scheme rather than as an IBAN.
Id.Othr.Id
Text / Required
The actual identifier supplied by Blinc, such as an account number, BVN, creditor ID, or business reference. SchmeNm.Cd tells the institution which one it is. Treat customer and account values as sensitive and preserve opaque business IDs exactly.
Id.Othr.SchmeNm
Object / Required
"Scheme name": container explaining how to interpret and validate the identifier.
Id.Othr.SchmeNm.Cd
Text / Required
Explains how to read Id.Othr.Id: NUBAN means an account number, BVN means a customer BVN, and BLINC means an identifier assigned or recognised under this contract. Validate the value using that exact scheme. There is no default scheme.
When a field explicitly permits an International Bank Account Number, Id.IBAN is the complete IBAN text and Id.Othr is omitted. Do not send both forms unless a separate rule explicitly allows it.
Object / Required when the operation names a debtor, creditor, originator, or initiating party
Describes one person or organisation.
Nm
Text / Required
Human-readable name for statements, audit, and support. Do not use the name alone as a security identifier.
Id
Object or null / Conditional
Structured identity using the generic identifier shape above. Required when the operation needs identity matching; optional when the party is only descriptive.
Account-identifier container using the generic identifier shape above. Validate format, existence, ownership, status, currency, and operation eligibility.
Identifies the institution acting in the role named by the parent, such as debtor agent or creditor agent.
FinInstnId
Object / Required where shown
"Financial institution identification": groups BIC, display name, and clearing identity. Some fields, such as IntermediaryAgent, contain these three children directly without this wrapper.
FinInstnId.BICFI
Text or null / Conditional
Bank Identifier Code. Validate its format when the onboarding/routing agreement uses it.
FinInstnId.Name
Text / Required
Human-readable institution name for display and audit. Do not route by name.
FinInstnId.ClrSysMmbId
Object / Required
"Clearing-system member identification": container for the assigned routing member code.
FinInstnId.ClrSysMmbId.MmbId
Text / Required
Six-digit member code issued by Blinc. It must identify the institution expected in that payment role. Do not create or substitute a code.
Payment identifiers
Relative path
Type / required
Meaning and rule
PmtId
Object / Required
Groups identifiers that let different systems trace the same payment. All values are opaque. They stay unchanged when Blinc retries Credit Notification, Credit Transfer, or Reverse. After a Debit Authorization timeout, the original debit references are carried into Reverse; Blinc does not resend the debit.
PmtId.InstrId
Text / Required
Identifies one instruction. Do not reuse it for another instruction.
PmtId.EndToEndId
Text / Required
Main reference carried from initiation to final outcome. Preserve it in responses and later related operations.
PmtId.TxId
Text / Required
Identifies the transaction in the switching flow.
PmtId.ClrSysRef
Text / Required
Clearing-system reference for reconciliation and support.
Payment classification
Relative path
Type / required
Meaning and rule
PmtTpInf
Object / Required
"Payment type information": groups service, purpose, product, and optional sequence classification.
PmtTpInf.SvcLvl
Code-wrapper object / Required
Service-level rules applied to the payment.
PmtTpInf.SvcLvl.Cd
Text / Required
Blinc sends the service-level code agreed during onboarding. It selects the service rules applied to this payment. The institution validates the supplied code; it must not guess or replace a missing value.
PmtTpInf.CtgyPurp
Code-wrapper object / Required
Business-purpose category.
PmtTpInf.CtgyPurp.Cd
Text / Required
Blinc sends the agreed business-purpose category. GDAS is the documented value for the current payment flows.
PmtTpInf.LclInstrm
Code-wrapper object / Required
Local payment product/rule set.
PmtTpInf.LclInstrm.Cd
Text / Required
Blinc sends the local payment-product code agreed during onboarding. It tells the institution which local processing rules apply. Reject an unknown or missing code.
PmtTpInf.SeqTp
Text or null / Conditional
Blinc sends the collection position. Use OOFF for the one-off Debit Authorization and null for Credit Transfer, where collection sequencing does not apply. The institution validates rather than chooses it.
Remittance and invoice information
Relative path
Type / required
Meaning and rule
RmtInf
Object / Required
"Remittance information": describes why the money moved.
RmtInf.Ustrd
Text / Required
Unstructured human-readable narration for statements.
RmtInf.Strd
Object or null / Optional
Structured invoice/document information. Validate every child when present.
RmtInf.Strd.RfrdDocAmt
Object / Conditional
"Referred document amount": groups original due, adjustment, and actual remitted amounts.
...RfrdDocAmt.DuePyblAmt
Amount object / Conditional
Original amount payable for the document.
...RfrdDocAmt.AdjstmntAmtAndRsn
Object / Conditional
Adjustment made to the due amount.
...AdjstmntAmtAndRsn.Amt
Amount object / Conditional
Size and currency of the adjustment.
...AdjstmntAmtAndRsn.Rsn
Text / Conditional
Blinc sends the reason for changing the document amount. Use only COMM, COST, DISC, EARL, PENF, TAX, ADJS, or CREN, with the meanings on the code-values page. There is no default reason.
...AdjstmntAmtAndRsn.AddtlInf
Text / Conditional
Plain additional explanation without secrets.
...RfrdDocAmt.RmtdAmt
Amount object / Conditional
Amount actually remitted. It must reconcile with due amount and adjustment.
RmtInf.Strd.RfrdDocInf
Object or null / Optional
Container identifying the invoice or document.
...RfrdDocInf.Nb
Text or null / Optional
Opaque invoice/document number.
Charges
Debit Authorization, Credit Transfer, and Credit Notification each carry the fee that Blinc's FeeBreakdown computes for that operation, but the total fee is charged once; never added or
subtracted a second time by summing role shares on top of it.
Debit Authorization charges the full FeeBreakdown.TotalFee once. Chrgs shows that
amount as FEE and also shows the issuer's share as COMMISSION. The commission is part of
the fee breakdown, not an extra charge. TtlChrgs equals the FEE amount, and NetSttlmAmt equals InstdAmt minus that one fee. See its own operation guide.
Credit Transfer uses the same Chrgs/TtlChrgs/NetSttlmAmt shape, but every item's Tp
must equal ACQUIRER; it carries FeeBreakdown.AcquirerShare only. See its own operation guide.
All three adjustment-bearing messages carry TttlCharges inside RmtInf.Strd.RfrdDocAmt.AdjstmntAmtAndRsn; it reports the complete transaction fee while Amt continues to identify the adjustment's specific share.
Credit Notification carries FeeBreakdown.PaymentFacilitatorShare in that adjustment,
with Rsn fixed to PAYMENT_FACILITATOR. See Remittance adjustment reasons and its own operation guide.
Across all three operations: amounts are in major currency units (not minor/cents), a zero share
must be sent explicitly rather than omitted or null-dropped, and every charge/adjustment currency
must match InstdAmt.Ccy (or the entry amount currency for Credit Notification).
The fee charged for this operation. For Debit Authorization it equals the FEE item, not FEE plus COMMISSION. For Credit Transfer it equals the ACQUIRER item. Currency must match InstdAmt.Ccy.
InstdAmt minus TtlChrgs; drives settlement/posting.
Merchant and terminal
Relative path
Type / required
Meaning and rule
Merchant
Object or null / Operation-specific
Groups merchant and terminal context. Required for merchant/terminal flows; it can be absent where the operation explicitly permits it.
Merchant.TerminalId
Text / Required with merchant context
Terminal or channel identifier. It is not an authentication key.
Merchant.MerchantName
Text / Required with merchant context
Human-readable merchant name.
Merchant.MerchantCategoryCode
Text / Required with merchant context
Code describing the merchant's business type.
Merchant.TerminalLocation
Text or null / Optional
Terminal location. Treat it as sensitive.
Merchant.TerminalReference
Text or null / Optional
Terminal's opaque transaction reference. Keep it unchanged when Blinc retries Credit Notification, Credit Transfer, or Reverse. Preserve the original debit value when it is needed to reconcile or Reverse a timed-out debit.
Merchant.TerminalTimestamp
UTC date-time text or null / Optional
Time recorded by the terminal. It must be plausible relative to the payment times.
Payment result
Relative path
Type / required
Meaning and rule
TxInfAndSts
Object / Required
"Transaction information and status": result of one financial instruction.
TxInfAndSts.OrgnlInstrId
Text / Required
Copy of the request instruction ID.
TxInfAndSts.OrgnlEndToEndId
Text / Required
Copy of the request end-to-end ID.
TxInfAndSts.OrgnlTxId
Text / Required
Copy of the request transaction ID.
TxInfAndSts.TxSts
Text / Required
The institution sends the final business result. Return ACSC only after the requested payment action is committed; return RJCT when it did not complete. HTTP 200 only confirms delivery of the protected response and does not choose this value.
TxInfAndSts.StsRsnInf
Object or null / Conditional
Null on success; required on rejection.
...StsRsnInf.Orgtr
Object / Conditional
Container for the decision originator.
...StsRsnInf.Orgtr.Nm
Text / Conditional
Institution/component that made the rejection decision.