Pay with Bank Transfer (Nigeria)

This allows your customer to pay via a NIP (NIBBS Instant Payment) transfer.

View the Pay with Bank Transfer (Nigeria) page to get started on Bank transfers.

Step 1: Send payment object to the charge endpoint.

You would need to encrypt your request using our Rave Encryption methods.

See a sample of the payment object to encrypt and the encrypted request to send.

The endpoint to call: https://api.ravepay.co/flwv3-pug/getpaidx/api/charge

{
    "amount": 100,
    "PBFPubKey": "FLWPUBK-4e581ebf0928384743227e2e3b8-X",
    "currency": "NGN",
    "country": "NG",
    "email": "[email protected]",
    "txRef": "bank-transfer-1561058350398",
    "meta": [{"metaname": "test", "metavalue": "12383"}],
    "payment_type": "banktransfer",
    "ip": "123.0.1.3",
    "is_bank_transfer": true,
    "firstname": "Flutterwave",
    "lastname": "Tester"
}
{
	"PBFPubKey": "FLWPUBK-4e581ebf028747393389222e2e3b8-X",
	"client": "ABLv62BJ94gnkdrD+MMILlg5nggLD4sSGmRzc3NrOxLCY+jSvHl1HBHRy1xcCMeVd8UMBjnzjvjnzh/d21mZX+ZFt54vRsdzVSL5moJMRKEQLTkBTxJgwbazoqRzqLvhIof23LlYEOpGXY4CyQt/srGyxIjgHTlKt5pVhaSkdBluPA74gKDvo+nB+3Zc+M2nljRPWJocTCkl2iamkT/z0vQWFU02c5d8vbdtSvg0M1Q8YvqhF5sKFMOChh7Sq9WIuNGmoBS9u2hlwPHdy5ABNfOWfo+yTav3e7D3SX+0leyWNE9YmhxMKQM2Ud1UyRP8LE3sm4IYLdNjqdTLktx3AL3S4UNnSao7HFhzX3J3AblFeFTOBV6gzsKABSD3LFxydoSwA5EOFA1ccZQzp2/2DMemFOQ/Fr76DZJbvUdZxkta+75RweYIPqhpnH0hpC4L",
	"alg": "3DES-24"
}
{
    "amount": 100,
    "PBFPubKey": "FLWPUBK-4e581ebf0928384743227e2e3b8-X",
    "currency": "NGN",
    "country": "NG",
    "email": "[email protected]",
    "txRef": "bank-transfer-1561058350398",
    "meta": [{"metaname": "test", "metavalue": "12383"}],
    "payment_type": "banktransfer",
    "ip": "123.0.1.3",
    "is_bank_transfer": true,
    "frequency": 3,
    "duration": 4,
    "firstname": "Flutterwave",
    "lastname": "Tester"
}
{
    "PBFPubKey": "FLWPUBK-4e581ebf0928384743227e2e3b8-X",
    "currency": "NGN",
    "country": "NG",
    "email": "[email protected]",
    "txRef": "bank-transfer-1561058350398",
    "meta": [{"metaname": "test", "metavalue": "12383"}],
    "payment_type": "banktransfer",
    "ip": "123.0.1.3",
    "is_bank_transfer": true,
    "is_permanent": true,
    "firstname": "Flutterwave",
    "lastname": "Tester"
}

Request Parameter Definition

ParameterRequiredDescription
PBFPubKeytrue
(String)
This is a unique key generated for each button created on Rave’s dashboard. It starts with a prefix FLWPUBK and ends with suffix X.
currencyfalse
defaults to NGN
(String)
This is the specified currency to charge the card in. With Rave you can charge cards in more than 90 currencies, all you need to do is pass the specified currency you would like to charge the in.
countryfalse
defaults to NG
(String)
This is the pair country for the transaction with respect to the currency. See a list of Multicurrency support here Multicurrency Payments ]
amounttrue
(String)
This is the amount to be charged from card it is passed as - (“amount”:10).
emailtrue
(String)
This is the email address of the customer.
phonenumberfalse
(String)
This is the phone number of the customer.
firstnamefalse
(String)
This is the first name of the card holder or the customer.
lastnamefalse
(String)
This is the last name of the card holder or the customer.
IPfalse
(String)
IP - Internet Protocol. This represents the current IP address of the customer carrying out the transaction.
txReftrue
(String)
This is the unique reference, unique to the particular transaction being carried out. It is generated by the merchant for every transaction
metafalse
(hash)
Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. E.g. [{metaname:‘flightid’,metavalue:‘93849-MK5000’}]
subaccountsfalse
(hash)
This is an array of objects containing the subaccount IDs to split the payment into. E.g. "subaccounts": [ { "id": "RS_D87A9EE339AE28BFA2AE86041C6DE70E" } ]
is_bank_transfertrue
(boolean)
boolean flag to indicate the payment type.
frequencyfalse
(Int)
This is the number of times a generated account number can receive payments. Represented as an Integer e.g. "frequency": 10 means the account can receive payments up to 10 times before expiring.
durationfalse
(Int)
This is represented in days e.g. passing 2 means 2 days. It is the expiry date for the account number. Setting to 2 would mean you want the account number to exist for 2 days before expiring.
narrationfalse
(String)
This allows the developer set the name that is shown to the customer when the account is resolved to a name. It also displays in the debit narration.
is_permanentfalse
(Int)
This allows you create a static account number i.e. the account number doesn't change and customers can pay into the account number multiple times.

🚧

Maximum Duration

The maximum duration for an account number is 6 months.

Frequency

If the total order amount is paid before the frequency is maxed out, the transaction would be closed.

Sample response returned

🚧

Amount displayed to customer

Display the amount returned in the response below as the amount to be paid by the customer, not your product amount.

{
  "status": "success",
  "message": "V-COMP",
  "data": {
    "response_code": "02",
    "response_message": "Transaction in progress",
    "flw_reference": "FLW-7e23acf6e8544c4eb8c956d0925df40d",
    "accountnumber": "1355776525",
    "bankname": "Highstreet MFB",
    "created_on": "09:26:18 AM",
    "expiry_date": "10:26:18 AM",
    "note": "Please make a bank transfer to Hamza Inc",
    "amount": "23.00"
  }
}