Download OpenAPI specification:Download
Initiate payment through disbursement instructions
signature | string (MsgSignature) Signature of {header}+{message} body verified using sender's signing public key |
required | object Message header |
required | DisburseRequest (object) or EncryptedMessage (object) |
{- "signature": "Signature: namespace=\"g2p\", kidId=\"{sender_id}|{unique_key_id}|{algorithm}\", algorithm=\"ed25519\", created=\"1606970629\", expires=\"1607030629\", headers=\"(created) (expires) digest\", signature=\"Base64(signing content)",
- "header": {
- "version": "1.0.0",
- "message_id": "123",
- "message_ts": "",
- "action": "disburse",
- "sender_id": "spp.example.org",
- "receiver_id": "pymts.example.org",
- "total_count": 21800,
- "is_msg_encrypted": false,
- "meta": { }
}, - "message": {
- "transaction_id": 123456789,
- "disbursements": [
- {
- "reference_id": "12345678901234567890",
- "payer_fa": "token:12345@gtbank",
- "payee_fa": "token:12345@gtbank",
- "amount": "string",
- "scheduled_timestamp": "",
- "payer_name": "Farmer draught relief scheme 2023",
- "payee_name": "Joe John",
- "note": "string",
- "purpose": "Farmer Relief 2023",
- "instruction": "string",
- "meta": { },
- "currency_code": "SLL",
- "locale": "en"
}
]
}
}
{- "errors": [
- {
- "code": "string",
- "message": "string"
}
]
}
Disburse response through callback
signature | string (MsgSignature) Signature of {header}+{message} body verified using sender's signing public key |
required | object Message header |
DisburseResponse (object) or EncryptedMessage (object) |
{- "signature": "Signature: namespace=\"g2p\", kidId=\"{sender_id}|{unique_key_id}|{algorithm}\", algorithm=\"ed25519\", created=\"1606970629\", expires=\"1607030629\", headers=\"(created) (expires) digest\", signature=\"Base64(signing content)",
- "header": {
- "version": "1.0.0",
- "message_id": "789",
- "message_ts": "",
- "action": "on-disburse",
- "status": "rcvd",
- "status_reason_code": "rjct.version.invalid",
- "status_reason_message": "string",
- "total_count": 21800,
- "completed_count": 50,
- "sender_id": "civilregistry.example.org",
- "receiver_id": "registry.example.org",
- "is_msg_encrypted": false,
- "meta": { }
}, - "message": {
- "transaction_id": 123456789,
- "disbursements_status": [
- {
- "reference_id": "12345678901234567890",
- "timestamp": "2022-12-04T17:20:07-04:00",
- "status": "rcvd",
- "status_reason_code": "rjct.reference_id.invalid",
- "status_reason_message": "string",
- "instruction": "string",
- "amount": "string",
- "payer_fa": "token:12345@gtbank",
- "payer_name": "Farmer draught relief scheme 2023",
- "payee_fa": "token:12345@gtbank",
- "payee_name": "Joe John",
- "currency_code": "SLL",
- "locale": "en"
}
]
}
}
{- "errors": [
- {
- "code": "string",
- "message": "string"
}
]
}
Search disbursement by searchable attributes
signature | string (MsgSignature) Signature of {header}+{message} body verified using sender's signing public key |
required | object Message header |
required | SearchRequest (object) or EncryptedMessage (object) |
{- "signature": "Signature: namespace=\"g2p\", kidId=\"{sender_id}|{unique_key_id}|{algorithm}\", algorithm=\"ed25519\", created=\"1606970629\", expires=\"1607030629\", headers=\"(created) (expires) digest\", signature=\"Base64(signing content)",
- "header": {
- "version": "1.0.0",
- "message_id": "123",
- "message_ts": "",
- "action": "search",
- "sender_id": "spp.example.org",
- "receiver_id": "pymts.example.org",
- "total_count": 21800,
- "is_msg_encrypted": false,
- "meta": { }
}, - "message": {
- "transaction_id": 123456789,
- "search_criteria": [
- {
- "reference_id": "12345678901234567890",
- "timestamp": "",
- "request_type": "disburse",
- "attribute_type": "payer_fa",
- "attribute_value": "token:12345@gtbank",
- "locale": "en"
}
]
}
}
{- "errors": [
- {
- "code": "string",
- "message": "string"
}
]
}
Disbrusement search results through callback
signature | string (MsgSignature) Signature of {header}+{message} body verified using sender's signing public key |
required | object Message header |
SearchResponse (object) or EncryptedMessage (object) |
{- "signature": "Signature: namespace=\"g2p\", kidId=\"{sender_id}|{unique_key_id}|{algorithm}\", algorithm=\"ed25519\", created=\"1606970629\", expires=\"1607030629\", headers=\"(created) (expires) digest\", signature=\"Base64(signing content)",
- "header": {
- "version": "1.0.0",
- "message_id": "789",
- "message_ts": "",
- "action": "on-search",
- "status": "rcvd",
- "status_reason_code": "rjct.version.invalid",
- "status_reason_message": "string",
- "total_count": 21800,
- "completed_count": 50,
- "sender_id": "civilregistry.example.org",
- "receiver_id": "registry.example.org",
- "is_msg_encrypted": false,
- "meta": { }
}, - "message": {
- "transaction_id": 123456789,
- "disbursements_status": [
- {
- "reference_id": "12345678901234567890",
- "timestamp": "",
- "status": "rcvd",
- "status_reason_code": "rjct.reference_id.invalid",
- "status_reason_message": "string",
- "locale": "en"
}
]
}
}
{- "errors": [
- {
- "code": "string",
- "message": "string"
}
]
}
Status check of previous disbursement transanctions using transaction_id and/or reference_id(s)
signature | string (MsgSignature) Signature of {header}+{message} body verified using sender's signing public key |
required | object Message header |
required | TxnStatusRequest (object) or EncryptedMessage (object) |
{- "signature": "Signature: namespace=\"g2p\", kidId=\"{sender_id}|{unique_key_id}|{algorithm}\", algorithm=\"ed25519\", created=\"1606970629\", expires=\"1607030629\", headers=\"(created) (expires) digest\", signature=\"Base64(signing content)",
- "header": {
- "version": "1.0.0",
- "message_id": "123",
- "message_ts": "",
- "action": "on-disburse",
- "sender_id": "spp.example.org",
- "receiver_id": "pymts.example.org",
- "total_count": 21800,
- "is_msg_encrypted": false,
- "meta": { }
}, - "message": {
- "transaction_id": 123456789,
- "txnstatus_request": {
- "reference_id": "12345678901234567890",
- "txn_type": "disburse",
- "attribute_type": "transaction_id",
- "attribute_value": 123456789,
- "locale": "en"
}
}
}
{- "errors": [
- {
- "code": "string",
- "message": "string"
}
]
}
Status check response through callback
signature | string (MsgSignature) Signature of {header}+{message} body verified using sender's signing public key |
required | object Message header |
TxnStatusResponse (object) or EncryptedMessage (object) |
{- "signature": "Signature: namespace=\"g2p\", kidId=\"{sender_id}|{unique_key_id}|{algorithm}\", algorithm=\"ed25519\", created=\"1606970629\", expires=\"1607030629\", headers=\"(created) (expires) digest\", signature=\"Base64(signing content)",
- "header": {
- "version": "1.0.0",
- "message_id": "789",
- "message_ts": "",
- "action": "on-disburse",
- "status": "rcvd",
- "status_reason_code": "rjct.version.invalid",
- "status_reason_message": "string",
- "total_count": 21800,
- "completed_count": 50,
- "sender_id": "civilregistry.example.org",
- "receiver_id": "registry.example.org",
- "is_msg_encrypted": false,
- "meta": { }
}, - "message": {
- "transaction_id": 123456789,
- "correlation_id": "9876543210",
- "txnstatus_response": {
- "type": "object",
- "description": "Disburse response",
- "properties": {
- "transaction_id": {
- "$ref": "#/components/schemas/TransactionId"
}, - "disbursements_status": {
- "type": "array",
- "items": {
- "type": "object",
- "description": "1. G2P Disbursement response i.e status of each disburemsent request for reconciliation by sender system\n",
- "properties": {
- "reference_id": {
- "$ref": "#/components/schemas/ReferenceId"
}, - "timestamp": {
- "description": "Disbursement response status datetime in RFC3339 format",
- "type": "string",
- "format": "date-time",
- "example": "2022-12-04T17:20:07-04:00"
}, - "status": {
- "$ref": "#/components/schemas/RequestStatus"
}, - "status_reason_code": {
- "$ref": "#/components/schemas/DisburseStatusReasonCode"
}, - "status_reason_message": {
- "description": "Status reason code message. Helps actionanble messaging for systems/end users",
- "type": "string",
- "maxLength": 999
}, - "instruction": {
- "description": "Additional systems instruction for interfacing systems/platforms to integrate, reconcile",
- "type": "string",
- "maxLength": 999
}, - "amount": {
- "$ref": "#/components/schemas/Amount"
}, - "payer_fa": {
- "$ref": "#/components/schemas/cdpi_FinancialAddress"
}, - "payer_name": {
- "description": "Payer account name for easy reference. Usually each scheme may have a seperate holding account.",
- "type": "string",
- "example": "Farmer draught relief scheme 2023"
}, - "payee_fa": {
- "$ref": "#/components/schemas/cdpi_FinancialAddress"
}, - "payee_name": {
- "description": "Payer name for easy reference. Usually beneficiary name as per scheme registration info",
- "type": "string",
- "example": "Joe John"
}, - "currency_code": {
- "$ref": "#/components/schemas/CurrencyCode"
}, - "locale": {
- "$ref": "#/components/schemas/LanguageCode"
}
}, - "required": [
- "reference_id",
- "timestamp",
- "status"
]
}
}
}, - "required": [
- "transaction_id",
- "disbursements_status"
]
}
}
}
{- "errors": [
- {
- "code": "string",
- "message": "string"
}
]
}
Initiate payment through disbursement instructions through sync call
signature | string (MsgSignature) Signature of {header}+{message} body verified using sender's signing public key |
required | object Message header |
required | DisburseRequest (object) or EncryptedMessage (object) The search data using which registry search to be performed |
{- "signature": "Signature: namespace=\"g2p\", kidId=\"{sender_id}|{unique_key_id}|{algorithm}\", algorithm=\"ed25519\", created=\"1606970629\", expires=\"1607030629\", headers=\"(created) (expires) digest\", signature=\"Base64(signing content)",
- "header": {
- "version": "1.0.0",
- "message_id": "123",
- "message_ts": "",
- "action": "search",
- "sender_id": "spp.example.org",
- "receiver_id": "pymts.example.org",
- "total_count": 21800,
- "is_msg_encrypted": false,
- "meta": { }
}, - "message": {
- "transaction_id": 123456789,
- "disbursements": [
- {
- "reference_id": "12345678901234567890",
- "payer_fa": "token:12345@gtbank",
- "payee_fa": "token:12345@gtbank",
- "amount": "string",
- "scheduled_timestamp": "",
- "payer_name": "Farmer draught relief scheme 2023",
- "payee_name": "Joe John",
- "note": "string",
- "purpose": "Farmer Relief 2023",
- "instruction": "string",
- "meta": { },
- "currency_code": "SLL",
- "locale": "en"
}
]
}
}
{- "errors": [
- {
- "code": "string",
- "message": "string"
}
]
}
signature | string (MsgSignature) Signature of {header}+{message} body verified using sender's signing public key |
required | object Message header |
required | SearchRequest (object) or EncryptedMessage (object) The search data using which registry search to be performed |
{- "signature": "Signature: namespace=\"g2p\", kidId=\"{sender_id}|{unique_key_id}|{algorithm}\", algorithm=\"ed25519\", created=\"1606970629\", expires=\"1607030629\", headers=\"(created) (expires) digest\", signature=\"Base64(signing content)",
- "header": {
- "version": "1.0.0",
- "message_id": "123",
- "message_ts": "",
- "action": "search",
- "sender_id": "spp.example.org",
- "receiver_id": "pymts.example.org",
- "total_count": 21800,
- "is_msg_encrypted": false,
- "meta": { }
}, - "message": {
- "transaction_id": 123456789,
- "search_criteria": [
- {
- "reference_id": "12345678901234567890",
- "timestamp": "",
- "request_type": "disburse",
- "attribute_type": "payer_fa",
- "attribute_value": "token:12345@gtbank",
- "locale": "en"
}
]
}
}
{- "errors": [
- {
- "code": "string",
- "message": "string"
}
]
}
Sync status check of disburse Async APIs
signature | string (MsgSignature) Signature of {header}+{message} body verified using sender's signing public key |
required | object Message header |
required | TxnStatusRequest (object) or EncryptedMessage (object) |
{- "signature": "Signature: namespace=\"g2p\", kidId=\"{sender_id}|{unique_key_id}|{algorithm}\", algorithm=\"ed25519\", created=\"1606970629\", expires=\"1607030629\", headers=\"(created) (expires) digest\", signature=\"Base64(signing content)",
- "header": {
- "version": "1.0.0",
- "message_id": "123",
- "message_ts": "",
- "action": "search",
- "sender_id": "spp.example.org",
- "receiver_id": "pymts.example.org",
- "total_count": 21800,
- "is_msg_encrypted": false,
- "meta": { }
}, - "message": {
- "transaction_id": 123456789,
- "txnstatus_request": {
- "reference_id": "12345678901234567890",
- "txn_type": "disburse",
- "attribute_type": "transaction_id",
- "attribute_value": 123456789,
- "locale": "en"
}
}
}
{- "errors": [
- {
- "code": "string",
- "message": "string"
}
]
}
transaction_id required | string (TransactionId) <= 99 characters
|
Array of objects |
{- "transaction_id": 123456789,
- "disbursements": [
- {
- "reference_id": "12345678901234567890",
- "payer_fa": "token:12345@gtbank",
- "payee_fa": "token:12345@gtbank",
- "amount": "string",
- "scheduled_timestamp": "",
- "payer_name": "Farmer draught relief scheme 2023",
- "payee_name": "Joe John",
- "note": "string",
- "purpose": "Farmer Relief 2023",
- "instruction": "string",
- "meta": { },
- "currency_code": "SLL",
- "locale": "en"
}
]
}
transaction_id required | string (TransactionId) <= 99 characters
|
required | Array of objects |
{- "transaction_id": 123456789,
- "disbursements_status": [
- {
- "reference_id": "12345678901234567890",
- "timestamp": "2022-12-04T17:20:07-04:00",
- "status": "rcvd",
- "status_reason_code": "rjct.reference_id.invalid",
- "status_reason_message": "string",
- "instruction": "string",
- "amount": "string",
- "payer_fa": "token:12345@gtbank",
- "payer_name": "Farmer draught relief scheme 2023",
- "payee_fa": "token:12345@gtbank",
- "payee_name": "Joe John",
- "currency_code": "SLL",
- "locale": "en"
}
]
}
transaction_id required | string (TransactionId) <= 99 characters
|
required | Array of objects |
{- "transaction_id": 123456789,
- "search_criteria": [
- {
- "reference_id": "12345678901234567890",
- "timestamp": "",
- "request_type": "disburse",
- "attribute_type": "payer_fa",
- "attribute_value": "token:12345@gtbank",
- "locale": "en"
}
]
}
transaction_id required | string (TransactionId) <= 99 characters
|
required | Array of objects |
{- "transaction_id": 123456789,
- "disbursements_status": [
- {
- "reference_id": "12345678901234567890",
- "timestamp": "",
- "status": "rcvd",
- "status_reason_code": "rjct.reference_id.invalid",
- "status_reason_message": "string",
- "locale": "en"
}
]
}
transaction_id required | string (TransactionId) <= 99 characters
|
required | object |
{- "transaction_id": 123456789,
- "txnstatus_request": {
- "reference_id": "12345678901234567890",
- "txn_type": "disburse",
- "attribute_type": "transaction_id",
- "attribute_value": 123456789,
- "locale": "en"
}
}
transaction_id required | string (TransactionId) <= 99 characters
|
correlation_id required | string <= 99 characters
|
required | object |
{- "transaction_id": 123456789,
- "correlation_id": "9876543210",
- "txnstatus_response": {
- "type": "object",
- "description": "Disburse response",
- "properties": {
- "transaction_id": {
- "$ref": "#/components/schemas/TransactionId"
}, - "disbursements_status": {
- "type": "array",
- "items": {
- "type": "object",
- "description": "1. G2P Disbursement response i.e status of each disburemsent request for reconciliation by sender system\n",
- "properties": {
- "reference_id": {
- "$ref": "#/components/schemas/ReferenceId"
}, - "timestamp": {
- "description": "Disbursement response status datetime in RFC3339 format",
- "type": "string",
- "format": "date-time",
- "example": "2022-12-04T17:20:07-04:00"
}, - "status": {
- "$ref": "#/components/schemas/RequestStatus"
}, - "status_reason_code": {
- "$ref": "#/components/schemas/DisburseStatusReasonCode"
}, - "status_reason_message": {
- "description": "Status reason code message. Helps actionanble messaging for systems/end users",
- "type": "string",
- "maxLength": 999
}, - "instruction": {
- "description": "Additional systems instruction for interfacing systems/platforms to integrate, reconcile",
- "type": "string",
- "maxLength": 999
}, - "amount": {
- "$ref": "#/components/schemas/Amount"
}, - "payer_fa": {
- "$ref": "#/components/schemas/cdpi_FinancialAddress"
}, - "payer_name": {
- "description": "Payer account name for easy reference. Usually each scheme may have a seperate holding account.",
- "type": "string",
- "example": "Farmer draught relief scheme 2023"
}, - "payee_fa": {
- "$ref": "#/components/schemas/cdpi_FinancialAddress"
}, - "payee_name": {
- "description": "Payer name for easy reference. Usually beneficiary name as per scheme registration info",
- "type": "string",
- "example": "Joe John"
}, - "currency_code": {
- "$ref": "#/components/schemas/CurrencyCode"
}, - "locale": {
- "$ref": "#/components/schemas/LanguageCode"
}
}, - "required": [
- "reference_id",
- "timestamp",
- "status"
]
}
}
}, - "required": [
- "transaction_id",
- "disbursements_status"
]
}
}
required | object |
ciphertext required | string This is the result of encrypting the plaintext using the CEK and the IV. It's Base64Url-encoded. |
encrypted_key required | string The base64-url encoded encrypted key |
tag required | string This is a Base64Url-encoded value that provides evidence of the integrity and authenticity of the ciphertext, Initialization Vector, and Additional Authenticated Data |
iv required | string This is a Base64Url-encoded random bit string to be used as the Initialization Vector (IV) when encrypting the plaintext to produce the ciphertext. The size of the IV depends on the encryption algorithm used. |
{- "header": {
- "alg": "string",
- "enc": "string",
- "kid": "string"
}, - "ciphertext": "string",
- "encrypted_key": "string",
- "tag": "string",
- "iv": "string"
}
Disbursement status reason codes
"rjct.reference_id.invalid"
Disbursement search reason codes
"rjct.reference_id.invalid"