Skip to main content

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

ItemStandard
ProtocolHTTPS (TLS 1.2+)
API StyleREST (JSON)
Date/TimeISO 8601 (YYYY-MM-DDThh:mm:ss)
CurrencyISO 4217
Country CodeISO 3166-1 Alpha-2
Amount FormatString, 2 decimal places
Character EncodingUTF-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

POST {base_url}/api/v1/auth/token
curl `${base_url}/api/v1/auth/token`
-H "Content-type: application/json"
-X POST
-d '{
"username": "bank_api_user",
"password": "********"
}

Sample Response

POST {base_url}/api/v1/auth/token
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
"expiresIn": 3600,
"tokenType": "Bearer"
}