Bank Transfer
Direct Integrations via bank transfer channels give you the opportunity to generate account details (account number and bank details) to receive payments from customers via bank transfer.
Leatherback currently support only NGN transactions through this payment channel.
Bank Transfer Process
The Steps below can be executed to Collect payments via bank transfer integration:
You call the Initiate Payment Endpoint to generate account/Bank details for the customer to pay into
The customer transfers to the generated account
Leatherback sends you a webhook notifying you that we've received the payment (if you have Webhooks enabled, we'll call your webhook URL with the transfer details when the transfer is completed or fails).
You Finalize the payment and complete the customer's request
Get Transaction Status (Optional)
Step 1: Call Validate Payment Endpoint
Title: Validate Payment
First, you need to gather and Pass on the details below.
{
"amount": {
"currencyCode": "NGN",
"amount": 5000
},
"channels": [
"string"
]
}
amount
: The amount to charge the customer (Required)currency Code
: A three-letter ISO code for the currency in which you want to accept the payment. A unique code that represents a defined business currency. E.g NGN=Nigerian Naira, GBP =Great Britain Pounds (Required)
{
"value": {
"isValid": true,
"channels": [
{
"id": "4f737265-27cb-40fd-84a6-f41d999a39d1",
"name": "PayByTransfer",
"alias": "PayByTransfer",
"description": null
},
{
"id": "2d60ca92-8f2f-486a-aa21-35cc9434898f",
"name": "Card",
"alias": "Card",
"description": null
}
]
},
"isSuccess": true,
"error": "",
"message": "Request Successful",
"type": null,
"title": null,
"status": null,
"detail": null,
"instance": null
}
Step 2: Call Initiate Payment Endpoint
First, you need to gather the transaction and Customer details as shown below: In this scenario, you will pass PayByTransfer as Channel Value
{
"currencyCode": "NGN",
"amount": 100,
"channel": "PayByTransfer",
"currency": "NGN",
"linkAlias": "0-k2tmbuy",
"link": {
"alias": "0-k2tmbuy"
},
"userInformation": {
"firstName": "Dave",
"lastName": "MC",
"emailAddress": "mcdave@test.com",
"phone": "0901 010 1010"
}
}
Channel:
An array of payment channels to control what channels you want to make available to the user to make a payment with. Available channels include: ["Card", "PayByTransfer", "pay with account" ]. In this case, you will Card as Channel Valueamount
: The amount to charge the customer for the card transaction (Required)currency Code
: A three-letter ISO code for the currency in which you want to accept the payment. A unique code that represents a defined business currency. E.g NGN=Nigerian Naira, GBP =Great Britain Pounds, etc (Required)narration:
This is usually a description of items being purchased by a customeralias:
An alias allows users to access a page (node) or file at an alternative path. A redirect is moving a user to the correct file or page (node) because it no longer exists at a previous path. Alias lets you choose a nickname for your page, meaning a new URL that points to the content the same way the original URL does (This is only Mandatory when initiating a Payment Link transaction)firstName:
This is the first Name of the Customer (Required)lastName:
This is the Last Name of the Customer (Required)phone:
This is the phone number of the Customer (Required)emailAddress
: This is the email address of the customer (Required)metadata
: An object containing any extra information you'd like to store alongside the transaction: Pass The URL we redirect to after the customer completes payment. For 3DSecure payments, we'll append thetx_ref
to the URL as query parameters (Optional)
Step 3: Call GET Transaction Status
Pass the Reference ID: “TUBJRGMSDFT9DPG“ from the response gotten from the Initiate Payment End point above
If you have Webhooks enabled on the Dev Dashboard, we'll call your webhook URL with the transfer details when the transfer is completed or fails
Related articles
Leatherback 2024