/
Pay by Transfer

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

Channel

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

amount

Transaction Amount to be sent

Float | Integer,

 

Must be greater or equal to 1.00,

2 Decimal places

100, 100.20

Yes

reference

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

currencyCode

Currency Code for the transaction which is NGN

String, 3 digits

NGN

Yes

narration

Description for transaction, which user will see

String,

max length: 100 characters

“Payment for lunch”

No

firstName

This is the first Name of the Customer

String

 Long

Yes

lastName

This is the Last Name of the Customer

String

 Island

Yes

emailAddress

This is the email address of the customer

String

 

Yes

phone

This is phone number of the Customer

String

 08123456789

Yes

metadata

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

Pay by Account/Open Banking
Pay by Account/Open Banking
More like this
Pay by Card
More like this
Pay by Card (NGN)
Pay by Card (NGN)
More like this
Leatherback Payment Link Integration
Leatherback Payment Link Integration
More like this
Pay by Interac (CAD)
Pay by Interac (CAD)
More like this
Payment Links
Payment Links
More like this

Leatherback 2024