Skip to main content

Transaction Types

This reference covers all transaction types, transfer types, statuses, payment channels, and data models used across the CBA API.

Transaction Types​

TypeDescriptionEndpoint
TRANSFERFund transfer between accountsPOST /api/v1/transfers/*
DEPOSITCash or electronic depositPOST /api/v1/deposits
WITHDRAWALCash or electronic withdrawalPOST /api/v1/withdrawals
PAYMENTBill or merchant payment—
FEEService fee chargeAutomatic
INTERESTInterest postingAutomatic
REVERSALReverse a previous transactionPOST /api/v1/transactions/:id/reverse
ADJUSTMENTManual balance adjustmentAdmin only

Transfer Types​

TypeDescriptionSettlement
INTERNALSame-bank transferInstant
INTERBANKDifferent bank (general)Minutes
NIPNIBSS Instant PaymentSeconds to minutes
INTERNATIONALCross-border / SWIFT1–3 business days

Transaction Statuses​

StatusDescriptionTerminal?
PENDINGCreated, awaiting processingNo
PROCESSINGSubmitted to providerNo
COMPLETEDFunds deliveredYes
FAILEDProcessing failedYes
REVERSEDReversed after completionYes
CANCELLEDCancelled before processingYes
PENDING ──▶ PROCESSING ──▶ COMPLETED
│ │
▼ ▼
FAILED REVERSED

PENDING ──▶ CANCELLED

Payment Channels​

ChannelDescription
MOBILEMobile banking app
WEBWeb banking portal
USSDUSSD banking service
ATMATM withdrawal/transfer
POSPoint of sale terminal
BRANCHBranch teller
APIThird-party API integration

Data Models​

Transaction Response​

{
"id": "uuid",
"tenant_id": "uuid",
"transaction_ref": "TRN20260228001234",
"transaction_type": "TRANSFER",
"status": "COMPLETED",
"source_account_id": "uuid",
"source_account_num": "1001234567",
"source_bank_code": "string (for interbank)",
"dest_account_id": "uuid",
"dest_account_num": "1001234568",
"dest_bank_code": "string (for interbank)",
"dest_account_name": "John Doe",
"amount": 100000.00,
"currency": "NGN",
"fee": 500.00,
"vat": 50.00,
"total_amount": 100550.00,
"transfer_type": "INTERNAL",
"channel": "API",
"narration": "Payment for invoice",
"description": "string (optional)",
"initiated_by": "uuid",
"approved_by": "uuid (if approval required)",
"processed_at": "ISO 8601",
"completed_at": "ISO 8601",
"failure_reason": "string (if failed)",
"external_ref": "string (provider reference)",
"session_id": "string",
"reversed_txn_id": "uuid (if reversal)",
"reversal_reason": "string (if reversal)",
"metadata": {}
}

Cross-Currency Response (additional fields)​

{
"source_currency": "NGN",
"target_currency": "USD",
"exchange_rate": 1580.50,
"converted_amount": 1000.00,
"corridor_id": "uuid"
}

Internal Transfer Request​

{
"source_account_id": "uuid (required)",
"destination_account_id": "uuid (required)",
"destination_account_name": "string (required)",
"amount": "number > 0 (required)",
"currency": "string ISO 4217 (required)",
"channel": "string (required)",
"narration": "string max 100 chars (required)",
"initiated_by": "uuid (required)"
}

Interbank Transfer Request​

{
"source_account_id": "uuid (required)",
"destination_account_num": "string 10 digits (required)",
"destination_bank_code": "string CBN code (required)",
"destination_account_name": "string (required)",
"amount": "number > 0 (required)",
"currency": "string ISO 4217 (required)",
"channel": "string (required)",
"narration": "string max 100 chars (required)",
"initiated_by": "uuid (required)"
}

Deposit / Withdrawal Request​

{
"account_id": "uuid (required)",
"amount": "number > 0 (required)",
"channel": "string (required)",
"narration": "string (required)",
"initiated_by": "uuid (required)"
}

Fee Configuration​

{
"transaction_type": "TRANSFER",
"transfer_type": "INTERBANK",
"min_amount": 0.00,
"max_amount": 999999999.00,
"fee_type": "FLAT | PERCENTAGE",
"fee_value": 500.00,
"min_fee": 100.00,
"max_fee": 5000.00,
"vat_rate": 10.0
}

Transaction Limits​

{
"account_type": "SAVINGS",
"transaction_type": "TRANSFER",
"transfer_type": "INTERBANK",
"single_limit": 500000.00,
"daily_limit": 2000000.00,
"weekly_limit": 5000000.00,
"monthly_limit": 10000000.00
}

Journal Model (GL)​

{
"id": "uuid",
"journal_number": "JNL2602281",
"journal_type": "string",
"description": "string",
"fiscal_period_id": "uuid",
"transaction_date": "YYYY-MM-DD",
"effective_date": "YYYY-MM-DD",
"status": "PENDING | APPROVED | POSTED | REJECTED | REVERSED",
"source_system": "string",
"source_reference": "string",
"source_transaction_id": "uuid (optional)",
"requires_approval": true,
"is_reversal": false,
"is_memo": false,
"entries": [
{
"id": "uuid",
"line_number": 1,
"account_id": "uuid",
"amount": 100000.00,
"entry_type": "debit | credit",
"currency_code": "NGN",
"exchange_rate": 1.0,
"base_currency_amount": 100000.00,
"description": "string"
}
]
}

Reference Formats​

FieldFormatExample
Transaction refTRN{YYYYMMDD}{SEQ}TRN20260228001234
Journal numberJNL{YYMMDD}{SEQ}JNL2602281
Account number10 digits (per-tenant seq)1001234567
Bank codeCBN institution code058

Next Steps​