Introduction
Overview
This document defines a recommended, standardized REST-based transaction processing specification to be adopted by participating Banks for seamless integration with the Switch.
The objective of this specification is to:
- Promote uniformity across banks
- Reduce integration complexity
- Ensure interoperability, auditability, and regulatory readiness
- Provide a single contract for Balance Enquiry, Funds Transfer, and Reversal processing
All participating Banks are expected to expose and consume APIs using this specification without proprietary deviations.
This specification represents a recommended industry-standard interface for transaction processing. Participating Banks are strongly encouraged to adopt this specification without deviation to ensure consistency, scalability, and interoperability across the switching ecosystem.
The Switch will rely on this contract as the single source of truth for transaction routing, validation, reconciliation, and dispute handling.
GENERAL STANDARDS
| Item | Standard |
|---|---|
| Protocol | HTTPS (TLS 1.2+) |
| API Style | REST (JSON) |
| Date/Time | ISO 8601 (YYYY-MM-DDThh:mm:ss) |
| Currency | ISO 4217 |
| Country Code | ISO 3166-1 Alpha-2 |
| Amount Format | String, 2 decimal places |
| Character Encoding | UTF-8 |
AUTHENTICATION & AUTHORIZATION
The API uses OAuth 2.0 Bearer Token authentication. Participating banks must first exchange their credentials for a temporary access token.
Token Generation
Banks shall authenticate using username and password to generate a Bearer Token.
Token Endpoint (Example):
- Method: POST
- Endpoint: /api/v1/auth/token
The generated token must be included in the Authorization Header for all subsequent transaction requests except Credit Transfer.
Sample Request
curl `${base_url}/api/v1/auth/token`
-H "Content-type: application/json"
-X POST
-d '{
"username": "bank_api_user",
"password": "********"
}
Sample Response
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
"expiresIn": 3600,
"tokenType": "Bearer"
}