Skip to main content
Send money from your Glyde wallet to any Nigerian bank account. Transfers are processed instantly during banking hours and typically complete within seconds.

How Transfers Work

1

Verify the Recipient

Always verify the bank account before sending to confirm the account name matches your recipient.
2

Initiate the Transfer

Call the transfer API with the amount, bank details, and your unique reference.
3

Receive Confirmation

Glyde sends a transfer.success or transfer.failed webhook when the transfer completes.

Prerequisites

Before making transfers:
  • Fund your wallet — Your Glyde wallet must have sufficient balance (amount + fee)
  • Configure webhooks — Transfers require a webhook URL to be set in your dashboard
  • Get bank codes — Use the /v1/banks endpoint to get valid bank codes

Step 1: Verify the Account

Always verify bank accounts before transferring. This confirms the account exists and shows you the account holder’s name:
GET /v1/account-enquiry?account_number=0264341458&bank_code=058
{
  "status": "success",
  "data": {
    "bank_name": "GTBank",
    "account_name": "John Doe",
    "account_number": "0264341458"
  }
}
Display the account_name to your user for confirmation before proceeding. This prevents sending money to the wrong person.

Step 2: Initiate the Transfer

Once verified, send the transfer:
POST /v1/transfer/initiate
{
  "amount": 5000,
  "bank_code": "058",
  "account_number": "0264341458",
  "reference": "payout_abc123"
}
Key fields:
  • amount — Amount in kobo (5000 = ₦50)
  • bank_code — The recipient’s bank code (from /v1/banks)
  • account_number — 10-digit account number
  • reference — Your unique identifier for this transfer
The response confirms the transfer was initiated:
{
  "status": "success",
  "data": {
    "reference": "glyde_ref_550e8400",
    "merchant_reference": "payout_abc123",
    "amount": 5000,
    "status": "pending",
    "fee": 25
  }
}

Transfer Lifecycle

StatusMeaning
pendingTransfer is being processed
successfulFunds delivered to recipient
failedTransfer could not be completed
Most transfers complete within seconds, but some may take longer during bank maintenance windows or high-traffic periods.

Webhook Notification

When the transfer completes, you’ll receive a webhook:
{
  "event": "transfer.success",
  "data": {
    "reference": "glyde_ref_550e8400",
    "merchant_reference": "payout_abc123",
    "amount": 5000,
    "status": "successful",
    "fee": 25
  }
}
For failed transfers:
{
  "event": "transfer.failed",
  "data": {
    "reference": "glyde_ref_550e8400",
    "merchant_reference": "payout_abc123",
    "status": "failed",
    "failure_reason": "Account frozen"
  }
}

Common Errors

ErrorCauseSolution
Insufficient fundsWallet balance too lowFund your wallet before retrying
Duplicate referenceReference already usedGenerate a new unique reference
Invalid bank codeBank code not recognizedUse codes from /v1/banks
Account not foundAccount number invalidVerify the account first
Webhook not configuredNo webhook URL setConfigure webhooks in dashboard

Fees

Each transfer incurs a small fee deducted from your wallet. The fee is shown in the initiate response and webhook. Ensure your wallet balance covers both the transfer amount and the fee.

Best Practices

  1. Always verify first — Never skip account verification; it prevents costly mistakes
  2. Show confirmation UI — Display the verified account name and ask users to confirm before sending
  3. Use unique references — Generate references that help you trace transactions (e.g., payout_{user_id}_{timestamp})
  4. Handle failures gracefully — Not all transfers succeed; have a process for retrying or notifying affected users
  5. Monitor your balance — Set up alerts when your wallet balance gets low