South Africa

Sample structures of the BANK_DETAILS_CHECK API responses for South Africa Bank Account Verification (zaf_gov_bav).

The examples below illustrate responses returned by this API method.

GREEN

The following response examples represent successful checks.

{
  "checks": [
    {
      "answer": "GREEN",
      "checkType": "BANK_DETAILS_CHECK",
      "createdAt": "2026-06-03 04:45:05",
      "id": "bcc66d64-1697-4d7f-8e82-89eccf7b62de",
      "inputDoc": {
        "idDocType": "OTHER",
        "country": "ZAF",
        "lastName": "Doe",
        "bankAccount": {
          "accountDocType": "ID_CARD",
          "accountDocNumber": "9912306001080",
          "accountNumber": "1234567890",
          "bankName": "FNB"
        }
      },
      "extractedDoc": {
        "country": "ZAF",
        "idDocType": "ID_CARD",
        "number": "9912306001080",
        "lastName": "Doe"
      },
      "databasePersonCheckInfo": {},
      "ekycCheckInfo": {},
      "bankDetailsCheckInfo": {
        "accountDetails": {
          "personFullName": "Doe",
          "accountNumber": "1234567890",
          "accountStatus": "OPEN",
          "bankName": "FNB",
          "bankBranchCode": "250655",
          "country": "ZAF",
          "canAcceptCredit": true,
          "canAcceptDebit": true,
          "openAtLeast3Months": true
        }
      }
    }
  ]
}
{
  "checks": [
    {
      "answer": "GREEN",
      "checkType": "BANK_DETAILS_CHECK",
      "createdAt": "2026-06-03 04:45:05",
      "id": "bcc66d64-1697-4d7f-8e82-89eccf7b62de",
      "inputDoc": {
        "idDocType": "OTHER",
        "country": "ZAF",
        "lastName": "Doe",
        "bankAccount": {
          "accountDocType": "PASSPORT",
          "accountDocNumber": "567890123",
          "accountNumber": "1234567890",
          "bankName": "FNB"
        }
      },
      "extractedDoc": {
        "country": "ZAF",
        "idDocType": "PASSPORT",
        "number": "567890123",
        "lastName": "Doe"
      },
      "databasePersonCheckInfo": {},
      "ekycCheckInfo": {},
      "bankDetailsCheckInfo": {
        "accountDetails": {
          "personFullName": "Doe",
          "accountNumber": "1234567890",
          "accountStatus": "OPEN",
          "bankName": "FNB",
          "bankBranchCode": "250655",
          "country": "ZAF",
          "canAcceptCredit": true,
          "canAcceptDebit": true,
          "openAtLeast3Months": true
        }
      }
    }
  ]
}

RED

The following response examples represent rejection cases where the applicant failed Bank Account Verification due to a data mismatch or the absence of matching information in the database.

{
  "checks": [
    {
      "answer": "RED",
      "checkType": "BANK_DETAILS_CHECK",
      "createdAt": "2026-05-20 13:34:34",
      "id": "1f82adfd-a22d-4bab-9086-935828cdfb69",
      "inputDoc": {
        "idDocType": "OTHER",
        "country": "ZAF",
        "lastName": "Doe",
        "bankAccount": {
          "accountDocType": "ID_CARD",
          "accountDocNumber": "9912301230019",
          "foreignCitizen": false,
          "accountNumber": "123454321",
          "accountType": "CACC",
          "bankName": "FNB"
        }
      },
      "databasePersonCheckInfo": {},
      "ekycCheckInfo": {},
      "violations": [
        "ACCOUNT_NOT_FOUND"
      ]
    }
  ]
}
{
  "checks": [
    {
      "answer": "RED",
      "checkType": "BANK_DETAILS_CHECK",
      "createdAt": "2026-06-03 04:48:41",
      "id": "619c9137-6af2-49ba-941d-ff9f848c945c",
      "inputDoc": {
        "idDocType": "OTHER",
        "country": "ZAF",
        "lastName": "Doe",
        "bankAccount": {
          "accountDocType": "ID_CARD",
          "accountDocNumber": "9912301230020",
          "accountNumber": "123454321",
          "bankName": "FNB"
        }
      },
      "databasePersonCheckInfo": {},
      "ekycCheckInfo": {},
      "violations": [
        "ID_NUMBER_MISMATCH"
      ]
    }
  ]
}

Response explained

The response represents a singleton list of checks.

Root variables

The root variables are the core BANK_DETAILS_CHECK check result data items. Some of them may include nested attributes and element fields.

FieldTypeDescription
answerStringCheck answer:
  • GREEN — user verification is successfully completed.
  • RED — user has not passed verification and is rejected.
  • ERROR — user verification is not completed because the service is currently unavailable.
bankDetailsCheckInfoObjectIncludes BANK_DETAILS_CHECK check results.
checkTypeStringIndicates that it is a BANK_DETAILS_CHECK check type.
createdAtDateDate and time (UTC, format YYYY-DD-MM HH:MM:SS) of the latest BANK_DETAILS_CHECK check result.
extractedDocObjectExternal check source data. It may not be present if the data is not received.
idStringUnique identifier of the check.
inputDocObjectRepresents the data used for the BANK_DETAILS_CHECK check.
violationsArray of stringsIndicates violations that were found:
  • ACCOUNT_NOT_FOUND — provided account details were not found in the records.
  • ACCOUNT_NOT_OPEN — provided account is closed, dormant, or inactive.
  • ID_NUMBER_MISMATCH — provided identification number does not match the database record.
  • NAME_MISMATCH — provided full name does not match the database record.

inputDoc attributes

FieldTypeDescription
idDocTypeStringType of the data provided for verification (OTHER).
countryStringAlpha-3 country code (for example, DEU, GBR, ARG).
lastNameStringLast name provided by the applicant.
bankAccountObjectBank account details provided by the applicant.

bankAccount attributes

FieldTypeDescription
accountDocTypeStringType of the ID document or data provided for verification:
  • ID_CARD
  • PASSPORT
accountDocNumberStringIdentification number provided by the applicant.
accountNumberStringAccount number provided by the applicant.
bankNameStringBank name provided by the applicant.

extractedDoc attributes

FieldTypeDescription
countryStringAlpha-3 country code (for example, DEU, GBR, ARG).
idDocTypeStringType of the document linked to the bank account.
numberStringID document number.
lastNameStringApplicant last name.

bankDetailsCheckInfo attributes

FieldTypeDescription
accountDetailsObjectRepresents the data validated in the external source.

accountDetails attributes

FieldTypeDescription
personFullNameStringApplicant last name.
accountNumberStringApplicant account number.
accountStatusStringAccount status:
  • OPEN — account is open.
  • CLOSED — account is closed.
  • UNVERIFIED — account is not FICA verified.
bankNameStringBank name. Possible values:
  • ABSA
  • AFRICAN
  • CAPITEC
  • FNB
  • INVESTEC
  • NEDBANK
  • STANDARD
  • DISCOVERY
  • SASFIN
  • GRINDROD
  • TYME
  • FIRSTRAND
  • RANDMERCHANT
  • RMB
bankBranchCodeStringBank universal branch code.
countryStringBank country. Presented as an alpha-3 country code (for example, DEU, GBR, ARG).
canAcceptCreditBooleanIndicates whether the account can accept credits.
canAcceptDebitBooleanIndicates whether the account can accept debits.
openAtLeast3MonthsBooleanIndicates whether the account was open for at least 3 months.