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