Debit a Customer's Account (Variable Authorizations Only)

Variable authorizations don't have a preset debit timeline, so each debit and amount must be triggered manually via the API. You can call this endpoint as soon as you receive the direct_debit.auth webhook with status: "success" — there is no waiting period.

Endpoint

POST /api/v1/direct-debit/authorizations/{authorizationCode}/debits

Path Parameters

PARAMETERTYPEREQUIREDDESCRIPTION
authorizationCodestringYesThe authorization_code returned at creation (e.g. KPY-AUTH-7d2f9c0e).

Request Parameters

PARAMETERTYPEREQUIREDDESCRIPTION
amountnumberYesAmount to debit. Positive, max 2 decimal places. Must respect the merchant's transaction limits and (where set) the authorization ceiling.
narrationstringYesFree‑text description shown to the customer / on statements.
currencystringYesCurrently only NGN is supported.

Sample Request

{
    "reference: "test-reference
    "amount": 50000,
    "currency": "NGN",
    "narration": "April subscription"
  }

Sample Success Response (debit accepted for processing)

{
  "status": true,
  "message": "success",
  "data": {
    "transaction_reference": "KPY-DD-TXN-1c92ff70",
    "authorization_code": "KPY-AUTH-7d2f9c0e",
    "status": "processing",
    "amount": 50000,
    "fee": 50,
    "vat": 3.75,
    "currency": "NGN",
    "nibss_transaction_id": "100008250419103245001",
    "processed_at": "2026-04-19T10:32:45.000Z"
  }
}

You can get the details of Direct Debit Payment by making a GET request to the Charge Query API endpoint using the reference used to make the debit.

Endpoint

https://api.korapay.com/merchant/api/v1/charges/:reference

And here's what the response looks like:

{
    "status": true,
    "message": "Charge retrieved successfully",
    "data": {
        "reference": "KPY-PAY-hna5DqhZDqByCcx",
        "status": "success",
        "amount": "100.00",
        "amount_paid": "100.00",
        "fee": 12.69,
        "currency": "NGN",
        "description": "Direct Debit: test",
        "customer": {
            "name": "vee Test",
            "email": "[email protected]"
        }
    }
}

List of supported banks

BANKSBANK CODESTATUS
ACCESS BANK PLC044✅ Supported
ECO BANK PLC050✅ Supported
FIDELITY BANK PLC070✅ Supported
FIRST BANK OF NIGERIA011✅ Supported
FIRST CITY MONUMENT BANK214✅ Supported
GLOBUS BANK LTD103✅ Supported
GUARANTY TRUST BANK PLC058✅ Supported
JAIZ BANK301✅ Supported
KEYSTONE BANK082✅ Supported
KUDA MICROFINANCE BANK50211✅ Supported
LOTUS BANK303✅ Supported
NOVA MERCHANT Bank637✅ Supported
OPTIMUS BANK LIMITED000036✅ Supported
PARALLEX BANK526✅ Supported
POLARIS BANK076✅ Supported
PREMIUM TRUST BANK LIMITED105✅ Supported
PROVIDUS BANK101✅ Supported
STANBIC IBTC221✅ Supported
STANDARD CHARTERED BANK PLC068✅ Supported
STERLING BANK PLC232✅ Supported
SUN TRUST BANK100✅ Supported
TAJBANK LTD302✅ Supported
TITAN TRUST BANK102✅ Supported
UNITED BANK FOR AFRICA033✅ Supported
UNION BANK OF NIGERIA PLC032✅ Supported
UNITY BANK PLC215✅ Supported
WEMA BANK035✅ Supported
ZENITH INTERNATIONAL BANK057✅ Supported