UK Account payments

This describes how to accept payments directly from customers bank accounts in the UK

Flutterwave allows UK merchants to charge customers bank accounts as an additional payment method. This makes it possible for customers to make payments on your website through a direct bank account debit.

We'll show you how to add this payment method to your website in the steps below:

Pre-requisites for accepting bank account payments in the UK.

  1. Sign-up for an account here .

  2. Set up a webhook to get notified on payments, to see more on webhooks visit our Webhook section

  3. When trying to accept payment on a website you can use our Flutterwave inline method and pass type as debit_uk_account and currency as GBP, once you do this, the payment options for bank account will be enabled on your checkout model.

  4. If you would prefer to accept payments using our APIs please see how to accept UK bank account payments via APIs.

  5. After getting a response for the transaction, call the Verify transaction endpoint to confirm the final status of the transaction.

Step 1 - Initiate payment

Send your payload to our charge endpoint: https://api.flutterwave.com/v3/charges?type=debit_uk_account

Method: POST

{
  "tx_ref": "MC-1585230ew9v5050e8",
  "amount": "100",
  "account_bank": "044",
  "account_number": "0690000037",
  "currency": "GBP",
  "email": "[email protected]",
  "phone_number": "0902620185",
  "fullname": "Yemi Desola",
}

Parameter Definition

ParameterRequiredDescription
tx_refTrueThis is a transaction reference you supply to identify different transactions on your account. It is important to ensure that you pass unique references for every transaction.
amountTrueThis is the amount to be charged. It is passed in GBP - ('amount':'100').
currencyTrueThis is the specified currency to charge in. (expected value: GBP)
account_bankTrueThis represents the bank to be debited. You can get the bank code from our bank list endpoint.
account_numberTrueThis is the account number of the customer associated with a valid bank account.
emailTrueThis is the email address of the customer.
phone_numberFalseThis is the phone number linked to the customer's mobile money account.
client_ipFalseInternet Protocol. This represents the current IP address of the customer carrying out the transaction.
device_fingerprintFalseThis is the fingerprint for the device being used. It can be generated using a library on whatever platform is being used.
metaFalseThis is an object you can use to include any additional payment information you would like to associate with this charge
fullnameFalseShould include the first and last name of the customer

Payment Response

When you send your payload to our charge endpoint to make a payment, you'll get a successful response if it all goes well.

{
        "status": "success",
        "message": "Charge initiated",
        "data": {
            "amount": "100.00",
            "type": "paymentcode",
            "redirect": false,
            "created_at": "2020-03-27T11:20:00.777",
            "order_ref": "URF_1585304398140_8642835",
            "flw_ref": "ACH378551585304400779",
            "redirect_url": null,
            "payment_code": "GBPBEDF2CC",
            "type_data": "GBPBEDF2CC",
            "meta": {
                "authorization": {
                    "account_number": "43271228",
                    "sort_code": "040053"
                }
            }
        }
    }

Verify payment

After charging a customer successfully, you need to verify that the payment was successful with Flutterwave before giving value to your customer on your website.

Check our Transaction verification section for implementation instructions