Reference

Bank Accounts

Manage customer bank account details including account numbers, branch codes, account types, and bank verification. Required for EFT Debit Orders, DebiCheck, and Registered Mandate payment processing.

Used to create, edit and archive bank accounts.

When creating payments you can either submit a payment record with the customer and bank accounts details or create a bank account here and then assign a customer_id and bank_account_id to a payment record.

Create

API call to create new bank accounts(s) as single or batch records.

WARNING

Company business bank accounts CAN NOT be processed via DebiCheck payment methods.

EFT Debit Order or Registered Mandate payment methods must be used for business bank accounts. At the moment only Registered Mandate (RM) payment methods with the provider bank as ABSA support company business bank accounts.

Path

POST /bank-accounts/create

Request Body

{
  "records": [{
    "customer_id": "cus_abc123...",
    "bank_account_holder_name": "J DOE",
    "bank_account_number": "10004291601",
    "bank_account_type": "CHEQUE_OR_CURRENT",
    "bank_name": "STANDARD_BANK_SA_LTD",
    "bank_branch_code": 051001,
    "bank_account_status": "ACTIVE",
  }]
}

Response Body

{
    "status": true,
    "results": [{
        "id": "ban_abc123...",
        "customer_id": "cus_abc123...",
        "bank_account_holder_name": "J DOE",
        "bank_account_number": "10004291601",
        "bank_account_type": "CHEQUE_OR_CURRENT",
        "bank_name": "STANDARD_BANK_SA_LTD",
        "bank_branch_code": 051001,
        "bank_account_status": "ACTIVE",
        "updated_at": null,
        "created_at": "2024-02-27 09:11:23"
    }, ...]
}

Parameters

Field
RequiredType
Description
Example
idn/aString(32)Record id returnedban_abc123...
customer_idYString(32)Customer IDcus_abc123...
bank_account_holder_nameYString(30)Bank account holder name for the bank account to be collected fromJ DOE
bank_account_numberYString(17)Bank account number to be collected from10004291601
bank_account_typeYENUM(CHEQUE_OR_CURRENT,SAVINGS,TRANSMISSION)CHEQUE_OR_CURRENT
bank_nameYENUMMake sure to check the available bank accounts for the selected payment method first (GET /lookups/bank_name/pam_123456abcd). (ABSA_BANK_LIMITED,ABSAITHALA,ACCESS_BANK,AFRICAN_BANK,AFRICAN_BANK_BUSINESS_GRINDROD,ALBARAKA_BANK,BANK_WINDHOEK_BEPERK,BANK_ZERO,BIDVEST_BANK,BIDVEST_BANK_LIMITED,BNP_PARIBAS,CAPITEC_BUSINESS,CAPITEC_PERSONAL,DISCOVERY_BANK_LTD,ENL_MUTUAL_BANK,FBC_FIDELITY_BANK_LTD,FINBOND_EPE,FINBOND_MUTUAL_BANK,FIRST_NATIONAL_BANK_LESOTHO,FIRST_NATIONAL_BANK_NAMIBIA,FIRST_NATIONAL_BANK_SWAZILAND,FIRSTRAND_BANK,FNB_FIRST_NATIONAL_BANK,HABIB_OVERSEAS_BANK_LIMITED,HSBC_BANK,INVESTEC_BANK_LIMITED,JP_MORGAN,NEDBANK,NEDBANK_LESOTHO_LIMITED,NEDBANK_NAMIBIA,NEDBANK_SWAZILAND_LIMITED,OLYMPUS_MOBILE,OM_BANK_LIMITED,PEOPLE_BANK_LTD_INC_PEP_BANK,PEOPLES_BANK_LTD_INC_NBS,PERMANENT_BANK,RMB_RAND_MERCHANT_BANK,SA_POST_BANK_POST_OFFICE,SOCIETE_GENERAL_JHB_BRANCH,STANDARD_BANK_NAMIBIA,STANDARD_BANK_SA_LTD,STANDARD_BANK_SWAZILAND,STANDARD_CHARTERED_BANK_SA,STANDARD_LESOTHO_BANK_LTD,SWAZILAND_DEV_AND_SAVINGS_BANK,TYME_BANK_LIMITED,UBANK_LTD,UNIBANK_LIMITED,VBS_MUTUAL_BANK)ABSA_BANK_LIMITED
bank_branch_codeYIntegerBank branch code for the account number632005
bank_account_statusn/aENUM(ACTIVE,ARCHIVED,DISABLED)ACTIVE
created_atn/aDatetimeDate and time record was created2024-02-27 09:11:23

Update

API call to update existing bank accounts(s) as single or batch records. Records can not be deleted, only archived.

Path

POST /bank-accounts/update

WARNING

When updating bank account details it will not update a DebiCheck mandate (nor Registered Mandate). To update banking details for these types of mandates check the mandates update section.

Likewise bank account updates will only update the connected payments if those payments are running EFT debit orders and not DebiCheck / Registered Mandates. For DebiCheck / RM it is best to pause the old payment and create a new payment once the mandate changes have been approved.

If you disable a bank account it will not cancel a DebiCheck mandate (nor Registered Mandate). You can not disable a bank account if there are connected payments that are currently running, you need to stop the payments first before disabling the bank account.

Request Body

Only include fields you wish to change (besides id used to find the record).

{
  "records": [{
    "id": "ban_abc123...",
    "bank_account_holder_name": "J DOE",
    "bank_account_number": "10004291601",
    "bank_account_type": "CHEQUE_OR_CURRENT",
    "bank_name": "STANDARD_BANK_SA_LTD",
    "bank_branch_code": 051001,
    "bank_account_status": "ACTIVE",
  }]
}

Response Body

{
    "status": true,
    "results": [{
        "id": "ban_abc123...",
        "customer_id": "cus_abs123...",
        "bank_account_holder_name": "J DOE",
        "bank_account_number": "10004291601",
        "bank_account_type": "CHEQUE_OR_CURRENT",
        "bank_name": "STANDARD_BANK_SA_LTD",
        "bank_branch_code": 051001,
        "bank_account_status": "ACTIVE",
        "updated_at": "2024-03-17 12:35:24",
        "created_at": "2024-02-27 09:11:23"
    }, ...]
}

Parameters

Field
RequiredType
Description
Example
idn/aString(32)Record id to updateban_abc123...
customer_idn/aString(32)Customer IDcus_abc123...
bank_account_holder_nameYString(30)Bank account holder name for the bank account to be collected fromJ DOE
bank_account_numberYString(17)Bank account number to be collected from10004291601
bank_account_typeYENUM(CHEQUE_OR_CURRENT,SAVINGS,TRANSMISSION)CHEQUE_OR_CURRENT
bank_nameYENUMMake sure to check the available bank accounts for the selected payment method first (GET /lookups/bank_name/pam_123456abcd). (ABSA_BANK_LIMITED,ABSAITHALA,ACCESS_BANK,AFRICAN_BANK,AFRICAN_BANK_BUSINESS_GRINDROD,ALBARAKA_BANK,BANK_WINDHOEK_BEPERK,BANK_ZERO,BIDVEST_BANK,BIDVEST_BANK_LIMITED,BNP_PARIBAS,CAPITEC_BUSINESS,CAPITEC_PERSONAL,DISCOVERY_BANK_LTD,ENL_MUTUAL_BANK,FBC_FIDELITY_BANK_LTD,FINBOND_EPE,FINBOND_MUTUAL_BANK,FIRST_NATIONAL_BANK_LESOTHO,FIRST_NATIONAL_BANK_NAMIBIA,FIRST_NATIONAL_BANK_SWAZILAND,FIRSTRAND_BANK,FNB_FIRST_NATIONAL_BANK,HABIB_OVERSEAS_BANK_LIMITED,HSBC_BANK,INVESTEC_BANK_LIMITED,JP_MORGAN,NEDBANK,NEDBANK_LESOTHO_LIMITED,NEDBANK_NAMIBIA,NEDBANK_SWAZILAND_LIMITED,OLYMPUS_MOBILE,OM_BANK_LIMITED,PEOPLE_BANK_LTD_INC_PEP_BANK,PEOPLES_BANK_LTD_INC_NBS,PERMANENT_BANK,RMB_RAND_MERCHANT_BANK,SA_POST_BANK_POST_OFFICE,SOCIETE_GENERAL_JHB_BRANCH,STANDARD_BANK_NAMIBIA,STANDARD_BANK_SA_LTD,STANDARD_BANK_SWAZILAND,STANDARD_CHARTERED_BANK_SA,STANDARD_LESOTHO_BANK_LTD,SWAZILAND_DEV_AND_SAVINGS_BANK,TYME_BANK_LIMITED,UBANK_LTD,UNIBANK_LIMITED,VBS_MUTUAL_BANK)ABSA_BANK_LIMITED
bank_branch_codeYIntegerBank branch code for the account number632005
bank_account_statusn/aENUM(ACTIVE,ARCHIVED,DISABLED)ACTIVE
created_atn/aDatetimeDate and time record was created2024-02-27 09:11:23

List

List bank accounts loaded on the platform.

Path

GET /bank-accounts/list?{params}

Query Parameters

Field
Type
RequiredDescription
Example
bank_account_statusString(32)NFilter for a specific bank account status. (ACTIVE,ARCHIVED,DISABLED)ACTIVE
customer_idString(32)NFilter for a specific customer id.cus_abc123...
date_startDate(YYYY-MM-DD)NFilter for records that have a created date after this date specified.2024-09-13
date_endDate(YYYY-MM-DD)NFilter for records that have an created date before this specified date2025-04-24

Response Body

{
  "status": true,
  "results": [{
    "id": "ban_abc123...",
    "customer_id": "cus_abs123...",
    "bank_account_holder_name": "J DOE",
    "bank_account_number": "10004291601",
    "bank_account_type": "CHEQUE_OR_CURRENT",
    "bank_name": "STANDARD_BANK_SA_LTD",
    "bank_branch_code": 051001,
    "bank_account_status": "ACTIVE",
    "updated_at": "2024-03-17 12:35:24",
    "created_at": "2024-02-27 09:11:23",
  }, ...]
}

Copyright © 2025 Kwik