Skip to main content

Transfer API Documentation

Overview

The Transfer API provides endpoints for managing various types of transfers in the wallet service, including intra-wallet transfers, deposits, interbank transfers, and withdrawals.

Base URL

/api/v1/transfers

Authentication

All endpoints require authentication using an API key in the request headers:
  • X-API-KEY: Your API key
  • X-Tenant-ID: Tenant identifier

Endpoints

Intra-Wallet Transfer

Transfer funds between accounts within the same wallet. Endpoint: POST /intra Headers:
  • X-API-KEY (optional): API key for authentication
  • X-Tenant-ID: Tenant identifier
Request Body:
Response:

Deposit

Deposit funds into a wallet account. Endpoint: POST /deposit Headers:
  • X-API-KEY (optional): API key for authentication
  • X-Tenant-ID: Tenant identifier
Request Body:
Response:

Interbank Transfer

Transfer funds from a wallet account to an external bank account. Endpoint: POST /inter Headers:
  • X-API-KEY (optional): API key for authentication
  • X-Tenant-ID: Tenant identifier
Request Body:
Response:

Withdrawal

Withdraw funds from a wallet account to a settlement bank account. Endpoint: POST /withdrawal Headers:
  • X-API-KEY (optional): API key for authentication
  • X-Tenant-ID: Tenant identifier
Request Body:
Response:

Error Responses

All endpoints may return the following error responses: 401 Unauthorized
404 Not Found
409 Conflict
422 Unprocessable Entity

Notes

  • All timestamps are in ISO-8601 format
  • Transfer types:
    • Intra-wallet: Transfer between accounts in the same wallet
    • Deposit: Funds coming into the wallet
    • Interbank: Transfer to external bank accounts
    • Withdrawal: Transfer to settlement bank accounts
  • Transfer requirements:
    • Minimum transfer amount is 100
    • Accounts must be active
    • Source account must have sufficient balance
    • Currencies must match for intra-wallet transfers
    • Bank codes must be valid and supported
  • Transfer processing:
    • All transfers are processed asynchronously
    • Response includes a request ID for tracking
    • Status updates are sent via notifications
    • Failed transfers can be retried
  • Security measures:
    • All transfers require authentication
    • User must own the source account
    • Platform admins cannot perform transfers
    • Duplicate request IDs are rejected
  • Transfer limits:
    • Subject to account tier limits
    • Subject to daily and monthly limits
    • Subject to bank-specific limits
  • Transfer notifications:
    • Users are notified of transfer status changes
    • Notifications include transfer details
    • Failed transfers include reason for failure
  • Transfer tracking:
    • All transfers are logged
    • Transfer history is maintained
    • Transfer status can be queried
  • Transfer fees:
    • Fees are calculated based on transfer type
    • Fees are included in the transfer amount
    • Fee formulas are configurable
  • Transfer validation:
    • Account numbers are validated
    • Bank codes are validated
    • Amounts are validated
    • Currencies are validated
  • Transfer settlement:
    • Interbank transfers are settled via NIBSS
    • Withdrawals are settled to settlement accounts
    • Settlement status is tracked
    • Settlement failures are handled