Pay by 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 Initiate Payment Endpoint
Title: Initiate Payment
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",
"userInformation": {
"firstName": "Dave",
"lastName": "MC",
"emailAddress": "mcdave@test.com",
"phone": "0901 010 1010"
},
"metaData": {
}
}
Element | Description | Type | Example | Required |
| An array of payment channels to control what channels you want to make available to the user to make a payment with. In this case, you will use PayByTransfer as Channel Value | String | ENUM | PayByTransfer | Yes |
| Transaction Amount to be sent | Float | Integer,
Must be greater or equal to 1.00, 2 Decimal places | 100, 100.20 | Yes |
| This is your unique transaction ID. If you do not pass your reference, the system will generate one for you | String max length: 20 characters | JBL450696789 | No |
| Currency Code for the transaction which is NGN | String, 3 digits | NGN | Yes |
| Description for transaction, which user will see | String, max length: 100 characters | “Payment for lunch” | No |
| This is the first Name of the Customer | String | Long | Yes |
| This is the Last Name of the Customer | String | Island | Yes |
| This is the email address of the customer | String |
| Yes |
| This is phone number of the Customer | String | 08123456789 | Yes |
| An object containing any extra information you'd like to store alongside the transaction |
|
"metaData": {
} | Yes |
{
"value": {
"paymentStatus": "INITIATED",
"requiresAction": true
"message": "Payment Initiated",
"bankAuthURL": null,
"paymentItem": {
"channel": "PayByTransfer",
"message": "Payment Initiated",
"totalAmount": 100,
"amount": 100,
"fees": 0,
"reference": "TVI1HLDDNATWSPG",
"paymentReference": "TVI1HLDDNATWSPG",
"metaData": {
"transfer-info": {
"note": "NILL",
"bank": "Globus",
"account_number": "9934812967",
"account_name": "Palonetic Inc",
"expiration": "2023-03-31T11:20:46.7104568Z",
"mode": "banktransfer"
}
}
}
},
"isSuccess": true,
}
Step 2: 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 content
Leatherback 2024