Bank Transfer

This API is used to create a dynamic virtual account. It’s important to verify all transactions before updating your customer about the status of their payment to ensure accurate and timely information.

Request parameter

Request
curl --request GET \
  --url https://adapter.cepta.co/api/v1/pay/transfer \
  --header 'X-Access-Ts: <EPOCH Timestamp(seconds)>' \
  --header 'X-Access-Key: <PUBLIC_KEY>' \
  --header 'X-Access-Signature: <HMAC SHA256 signature>' \
  --header 'Content-Type: application/json' \
  -- data '
       {
          "transactionRef": "111111111111111349122",
          "customerEmail": "[email protected]",
          "amount": 100,
          "currency": "NGN"
        }
    '

To get started with the Bank Transfer API, initialize a transaction using the example request described above.

You are required to pass several parameters as part of the request. Required parameters include amount, transactionRef, currency, and customerEmail.

In the sandbox environment, the virtual account returned is static and will always respond with Bank Transfer Succeeded and a 200 status code.

In the production environment, a unique virtual account is generated for the customer to transfer funds into. If the payment has not yet been confirmed by the processor, calling the endpoint confirm-status?transactionRef=exampleRef will return a pending status.

To confirm bank transfer on sandbox, use this endpoint

https://adapter.cepta.co/api/v1/pay/simulate-notification?transactionRef=exampleRef. Use the confirm transaction in production.

Below is a list of request parameters accepted for the purchase API.

transactionRef
string
required

Unique reference for the transaction.

customerEmail
string
required

Email of the customer making the purchase.

amount
number
required

Amount to be charged

currency
string
required

Currency of the transaction (“NGN”).

Ensure secure handling of md (merchant data) and token to maintain transaction integrity.

Confirm transfer API Response

A sample response of what to expect when a call is made to confirm API status

Success response
{
    "status": true,
    "message": "Bank Transfer Succeeded",
    "data": {
        "transactionRef": "TW201321082886170_20290129012944",
        "virtualAccount": "1234567890",
        "virtualAccountName": "Cepta / TWDSL",
        "virtualBank": "Cepta",
        "accountExpiration": "01/29/2026 01:59:26",
        "transferAmount": 100.00,
        "responseCode": "00"
    }
}

Handling successful API response.

When a transaction has been initiated successfully, the API returns response data that can be used to update the customer about the current stage of their transaction.

Below is the list of responses you can expect and their usage:

status
boolean

Indicates if the request was successful.

message
string

Descriptive message about the result.

data
object

Contains detailed transaction status.

responseCode
string

Response code from the payment processor

accountExpiration
string (ISO 8601)

Expiry date of the Virtual Account

transactionReference
string

Reference of the queried transaction.

transactionRef
string

Reference of the validated transaction

amount
number

Transaction amount.

virtualAccount
number

Virtual account number

virtualAccountName
string

Name of the virtual account.

virtualBank
string

Bank involved in the transaction.

status
string

Status of the transaction

errors
array

Array of error objects, if any.

errorCode
string

Specific error code, if applicable.

message
string

Description of the error.