API reference
Contracts for Fintech ↔ MEMEH and MEMEH ↔ Bank Adapters. Bank-side status updates map to RTP pain.014.001.10 (GrpSts/TxSts + optional StsRsnInf).
instruction_id identifies bank-side instruction delivery.
rtp_id maps to RTP EndToEndId/UETR correlation.
RTP status model (pain.014)
Bank/adapter updates drive lifecycle using TxSts/GrpSts. Use status reasons for negative outcomes.
| TxSts / GrpSts | Business label | Meaning |
|---|---|---|
| RCVD | RECEIVED | RTP received/acknowledged; awaiting approval or rejection. |
| RJCT | REJECTED | RTP rejected; request will not proceed. |
| CANC | CANCELLED | RTP cancelled; request terminated. |
| ACSP | PAID | RTP paid; completion confirmed. |
- • For RJCT, include StsRsnInf/Rsn/Prtry and optional additional info.
- • The spec describes AddtlInfo; examples show AddtlInf.
- • Some sections show ASCP; business flows use ACSP.
Common headers
Applied to signed boundaries. Bank adapter contracts may use the same header set unless your deployment defines bank-specific names.
| Header | Purpose |
|---|---|
| X-Client-ID | Client identity (issued during onboarding). |
| X-Signature | HMAC signature over canonical request. |
| X-Timestamp | ISO 8601 UTC timestamp (skew enforced). |
| X-Nonce | Unique per delivery (anti-replay). |
| X-Idempotency-Key | Stable per operation (safe retries). |
Fintech API
Endpoints used by fintech clients to initiate requests and query lifecycle state.
{
"payer_alias": "2320001",
"payee_alias": "2329991",
"amount": "100.00",
"currency": "SLE",
"description": "Payment",
"reference": "TXN-123"
}
{
"request_id": "req_01J3Z9B3C4M9S8ZK2A6KQ9W0YQ",
"reference": "TXN-123",
"rtp_id": "ef73139a-2efb-4279-aa27-5d9b350121cb",
"status": "accepted",
"received_at": "2026-03-26T10:00:00Z"
}
{
"request_id": "req_01J3Z9B3C4M9S8ZK2A6KQ9W0YQ",
"reference": "TXN-123",
"rtp_id": "ef73139a-2efb-4279-aa27-5d9b350121cb",
"status": "RECEIVED",
"status_code": "RCVD",
"reason_code": null,
"additional_info": null,
"updated_at": "2026-03-26T10:00:12Z"
}
{
"items": [
{
"request_id": "req_01J3Z9B3C4M9S8ZK2A6KQ9W0YQ",
"reference": "TXN-123",
"rtp_id": "ef73139a-2efb-4279-aa27-5d9b350121cb",
"status": "PAID",
"status_code": "ACSP",
"reason_code": null
}
]
}
Bank adapter API
Contracts between MEMEH and bank adapters: inbound instructions (MEMEH → bank) and RTP status updates (bank → MEMEH).
{
"instruction_id": "ins_01J3Z9C9YB8FQH1T0WQ0P2J6QK",
"request_id": "req_01J3Z9B3C4M9S8ZK2A6KQ9W0YQ",
"rtp_id": "ef73139a-2efb-4279-aa27-5d9b350121cb",
"payer_alias": "2320001",
"payee_alias": "2329991",
"amount": "100.00",
"currency": "SLE",
"description": "Payment",
"reference": "TXN-123",
"routing": {
"payee_bank_code": "BANK001",
"rail": "SLIPS"
}
}
{
"instruction_id": "ins_01J3Z9C9YB8FQH1T0WQ0P2J6QK",
"accepted": true,
"received_at": "2026-03-26T10:00:05Z"
}
{
"Document": {
"@xmlns": "urn:iso:std:iso:20022:tech:xsd:pain.014.001.10",
"CdtrPmtActvtnReqStsRpt": {
"GrpHdr": {
"MsgId": "419711302703779712806",
"CreDtTm": "2022-07-07T03:42:00.232",
"InitgPty": {
"Id": { "OrgId": { "AnyBIC": "BIC" } }
}
},
"OrgnlGrpInfAndSts": {
"OrgnlMsgId": "AWINETAAXXX2024071501460161500000",
"OrgnlMsgNmId": "pain.013.001.10",
"OrgnlCreDtTm": "2022-07-07T03:41:49.232",
"GrpSts": "RJCT"
},
"OrgnlPmtInfAndSts": {
"OrgnlPmtInfId": "AWINETAAXXX2024071501460161500000",
"TxInfAndSts": {
"OrgnlInstrId": "AWINETAAXXX2024071501460164600000",
"OrgnlEndToEndId": "ef73139a-2efb-4279-aa27-5d9b350121cb",
"OrgnlUETR": "ef73139a-2efb-4279-aa27-5d9b350121cb",
"TxSts": "RJCT",
"StsRsnInf": {
"Rsn": { "Prtry": "DCBP" },
"AddtlInf": "Declined by payer"
}
}
}
}
}
}
{
"accepted": true,
"recorded_at": "2026-03-26T10:01:11Z",
"rtp_id": "ef73139a-2efb-4279-aa27-5d9b350121cb",
"tx_sts": "RJCT"
}
{
"instruction_id": "ins_01J3Z9C9YB8FQH1T0WQ0P2J6QK",
"request_id": "req_01J3Z9B3C4M9S8ZK2A6KQ9W0YQ",
"status": "sent",
"attempts": 1,
"last_attempt_at": "2026-03-26T10:00:05Z"
}
{
"rtp_id": "ef73139a-2efb-4279-aa27-5d9b350121cb",
"status": "PAID",
"status_code": "ACSP",
"reason_code": null,
"additional_info": null,
"message": "Payment confirmed (paid). You may fulfil/deliver.",
"event_time": "2026-03-28T05:42:41Z"
}
Standard error model
Use consistent error codes for monitoring, triage, and partner support.
{
"error": {
"code": "INVALID_SIGNATURE",
"message": "Signature mismatch for canonical request.",
"trace_id": "trc_01J3Z9D8Y2Q4G8M1QWZ8N2K9R0"
}
}
OpenAPI
OpenAPI is the canonical source for request/response schemas and enumerations.