Skip to main content

Transaction Types

This reference covers every transfer type, transaction status, and the data models used across the API.

Transfer Types

TypeEndpointSettlementFees
InternalPOST /api/v1/transfers/internalInstantFree
External (NIBSS)POST /api/v1/transfers/externalMinutes₦100 per transfer
International (SWIFT)POST /api/v1/transfers/international1–3 business daysVaries by corridor
BulkPOST /api/v1/bulk-transfersVariesPer-item fees apply
Bill PaymentPOST /api/v1/bill-payment/payInstant to minutes₦50–₦100
AirtimePOST /api/v1/mobile-money/airtimeInstantFree
DataPOST /api/v1/mobile-money/dataInstantFree

Transaction Statuses

StatusDescriptionTerminal?
pendingCreated, awaiting processingNo
processingSubmitted to provider (NIBSS/Interswitch)No
completedFunds delivered successfullyYes
failedProcessing failed — see error fieldYes
reversedTransaction was reversed after completionYes
cancelledCancelled before processingYes
pending ──▶ processing ──▶ completed
│ │
▼ ▼
failed reversed

pending ──▶ cancelled

Transfer Request Model

Internal Transfer

{
"sourceWalletId": "uuid",
"recipientAccountNumber": "string (10 digits)",
"amount": "number (> 0)",
"narration": "string (max 100 chars)"
}

External Transfer (NIBSS)

{
"sourceWalletId": "uuid",
"recipientAccountNumber": "string (10 digits)",
"recipientBankCode": "string (6 digits)",
"recipientName": "string",
"amount": "number (> 0)",
"narration": "string (max 100 chars)",
"description": "string (optional)",
"saveBeneficiary": "boolean (optional, default false)",
"beneficiaryNickname": "string (optional)"
}

International Transfer (SWIFT)

{
"sourceWalletId": "uuid",
"recipientName": "string",
"recipientAccountNumber": "string (IBAN)",
"recipientBankSwiftCode": "string (8 or 11 chars)",
"recipientBankName": "string",
"recipientCountry": "string (ISO 3166-1 alpha-2)",
"amount": "number (> 0)",
"sourceCurrency": "string (ISO 4217)",
"destinationCurrency": "string (ISO 4217)",
"narration": "string (max 100 chars)"
}

Transfer Response Model

{
"id": "uuid",
"transactionId": "uuid",
"reference": "string (e.g. FMFB20260227001234)",
"status": "pending | processing | completed | failed",
"fromAccountNumber": "string",
"fromAccountName": "string",
"toAccountNumber": "string",
"toAccountName": "string",
"amount": "number",
"fees": "number",
"totalAmount": "number",
"narration": "string",
"timestamp": "ISO 8601",
"estimatedArrival": "ISO 8601 (external/international only)"
}

Transaction History Model

GET /api/v1/transactions

Each transaction in the history list includes:

{
"id": "uuid",
"type": "internal_transfer | external_transfer | international_transfer | bill_payment | airtime | data | loan_disbursement | loan_repayment | savings_deposit | savings_withdrawal",
"direction": "debit | credit",
"amount": "number",
"fees": "number",
"balance": "number (balance after transaction)",
"reference": "string",
"narration": "string",
"counterparty": {
"accountNumber": "string",
"accountName": "string",
"bankName": "string (for external)"
},
"status": "pending | processing | completed | failed",
"timestamp": "ISO 8601"
}

Bill Payment Model

Request

{
"billerId": "uuid",
"customerReference": "string",
"amount": "number (> 0)",
"description": "string (optional)"
}

Response

{
"paymentId": "uuid",
"reference": "string (e.g. BP20260227001234)",
"billerReference": "string (provider reference)",
"status": "completed | pending | failed",
"amount": "number",
"fees": "number",
"totalAmount": "number",
"customerName": "string",
"timestamp": "ISO 8601"
}

Loan Models

Application Request

{
"productType": "quick_cash | personal | salary_advance | mortgage | asset_finance | business",
"requestedAmount": "number",
"tenureMonths": "number",
"loanPurpose": "string",
"employmentStatus": "employed | self_employed | unemployed",
"employerName": "string (optional)",
"monthlyIncome": "number",
"collateral": "string (optional)"
}

Application Response

{
"applicationId": "uuid",
"applicationNumber": "string (e.g. LN20260227001)",
"status": "submitted | under_review | approved | rejected | disbursed",
"approvalStatus": "pending | level1_approved | level2_approved",
"requestedAmount": "number",
"approvedAmount": "number | null",
"tenure": "number",
"interestRate": "number | null",
"approvalLevel": "loan_officer | senior_loan_officer | branch_manager | regional_manager | credit_committee | board",
"nextReviewDate": "ISO 8601"
}

Savings Models

Request (Target Savings)

{
"productType": "flexible | target | locked | group | sayt",
"targetAmount": "number",
"targetName": "string",
"targetDate": "ISO 8601 date",
"monthlyContribution": "number"
}

Response

{
"accountId": "uuid",
"productType": "string",
"balance": "number",
"targetAmount": "number (target only)",
"progressPercentage": "number (target only)",
"interestRate": "number",
"status": "active | matured | closed",
"createdAt": "ISO 8601"
}

Reference Formats

FieldFormatExample
Transfer reference{TENANT}{DATE}{SEQ}FMFB20260227001234
Bill payment referenceBP{DATE}{SEQ}BP20260227001234
Loan application numberLN{DATE}{SEQ}LN20260227001
Account number10 digits0000123456
Bank code6 digits (CBN)090575
SWIFT code8 or 11 charsWESTGB2L

Next Steps