Ghana

Transfer funds to Ghanaian bank accounts.

Send GHS directly to bank accounts in Ghana. This guide walks you through the steps required to initiate and verify a transfer.

Prerequisites

  1. Complete KYC and ensure your account is approved for transactions.
  2. Whitelist your server IP addresses. See this guide for more information.
  3. Enable Transfers via API. See this guide for more information.
  4. Ensure your balance has sufficient funds. If needed, you can debit an alternate balance. See supported currencies for GHS transfers.

Payout Flow

Follow these steps to send money to a bank account in Ghana.

  1. Collect the beneficiary details
    Gather the beneficiary's name, bank, branch, and account number.

See the table below for the required and optional parameters.

ParameterDescriptionFormatExampleIsrequired
account_bankThe beneficiary's bank code. Use the Get Banks endpoint to retrieve the bank code.String"GH130100"Yes
account_numberThe beneficiary's account number.String"1441001954710"Yes
beneficiary_nameThe beneficiary's full name.String"Godwin Duah"Yes
amountThe amount to send.Integer350Yes
currencyThe transfer currency. Must be GHS.String"GHS"Yes
destination_branch_codeThe beneficiary bank's branch code. Use the Get Branches endpoint to retrieve the branch code.String"GH130998"Yes
debit_currencyThe wallet currency to debit for the transfer.String"XAF"No
narrationA description for the transfer.String"Ghana Withdrawal"No
referenceUnique reference to identify the transfer.String"Your-Unique-Reference"No
  1. Initiate the transfer
    Send a POST request to the transfer endpoint with the beneficiary and transfer details.
curl --request POST \
  --url https://api.flutterwave.com/v3/transfers \
  --header 'Authorization: Bearer {{YOUR_SECRET_KEY}}' \
  --header 'Content-Type: application/json' \
  --data '{
          "amount": 1000,
          "account_bank": "GH130100",
          "account_number": "1441001954710",
          "destination_branch_code": "GH130998",  
          "currency": "GHS",
          "beneficiary_name": "Godwin Duah",
          "debit_currency": "XAF",
          "narration": "Ghana Withdrawal",      
          "reference": "STkKF_k5kdkY3_PMCKDU_1"			
  }'
{
    "status": "success",
    "message": "Transfer Queued Successfully",
    "data": {
        "id": 2241863,
        "account_number": "1441001954710",
        "bank_code": "GH130100",
        "full_name": "Godwin Duah",
        "created_at": "2026-09-18T13:56:59.000Z",
        "currency": "GHS",
        "debit_currency": "XAF",
        "amount": 1000,
        "fee": 10,
        "status": "NEW",
        "reference": "STkKF_k5kdkY3_PMCKDU_1",
        "meta": [
            {
                "MerchantName": "Dotuns Fashion Limited"
            }
        ],
        "narration": "Ghana Withdrawal",
        "complete_message": "",
        "requires_approval": 0,
        "is_approved": 1,
        "bank_name": "Ecobank Ghana (GH130100)"
    }
}
  1. Verify the transfer status
    There are two ways to verify the transfer status:
curl --request GET \
  --location 'https://api.flutterwave.com/v3/transfers/2241863' \
  --header 'Authorization: Bearer {{YOUR_SECRET_KEY}}'
{
    "status": "success",
    "message": "Transfer fetched",
    "data": {
        "id": 2241863,
        "account_number": "1441001954710",
        "bank_code": "GH130100",
        "full_name": "Godwin Duah",
        "created_at": "2026-09-18T13:56:59.000Z",
        "currency": "GHS",
        "debit_currency": "XAF",
        "amount": 1000,
        "fee": 10,
        "status": "SUCCESSFUL",
        "reference": "STkKF_k5kdkY3_PMCKDU_1",
        "meta": [
            {}
        ],
        "narration": "Ghana Withdrawal",
        "approver": null,
        "complete_message": "Successful",
        "requires_approval": 0,
        "is_approved": 1,
        "bank_name": "Ecobank Ghana (GH130100)"
    }
}
  • Listen for webhooks. Configure your webhook URL on the Flutterwave Dashboard to receive real-time transfer updates. See the webhooks guide for more information.
{
  "event": "transfer.completed",
  "event.type": "Transfer",
  "data": {
    "id": 2241863,
    "account_number": "1441001954710",
    "bank_name": "FA-BANK",
    "bank_code": "GH130100",
    "fullname": "Godwin Duah",
    "created_at": "2026-09-18T13:46:18.000Z",
    "currency": "GHS",
    "debit_currency": "XAF",
    "amount": 1000,
    "fee": 10,
    "status": "SUCCESSFUL",
    "reference": "STkKF_k5kdkY3_PMCKDU_1",
    "meta": [
      {
        "MerchantName": "Dotuns Fashion Limited"
      }
    ],
    "narration": "From Dotuns Fashion Limited",
    "approver": null,
    "complete_message": "Successful",
    "requires_approval": 0,
    "is_approved": 1
  }
}

Testing Transfers

Check the testing guide for mocking transfers in the test environment.


Did this page help you?