---
updatedAt: 2026-08-12T11:58:20.000Z
agentTools:
  projectIndex: https://docs.sumsub.com/llms.txt
---

# 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](https://docs.sumsub.com/sumsub/reference/south-africa-bank-check-details#response-explained) returned by [this API method](https://docs.sumsub.com/sumsub/reference/get-bank-check-details-for-action).

# GREEN

The following response examples represent successful checks.

```json Bank account details with ID card linked
{
  "checks": [
    {
      "answer": "GREEN",
      "checkType": "BANK_DETAILS_CHECK",
      "createdAt": "2026-06-03 04:45:05",
      "id": "bcc66d64-1697-4d7f-8e82-89eccf7b62de",
      "sourceInfo": {
        "id": "zaf_gov_bav"
      },
      "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
        }
      }
    }
  ]
}
```
```json Bank account details with Passport linked
{
  "checks": [
    {
      "answer": "GREEN",
      "checkType": "BANK_DETAILS_CHECK",
      "createdAt": "2026-06-03 04:45:05",
      "id": "bcc66d64-1697-4d7f-8e82-89eccf7b62de",
      "sourceInfo": {
        "id": "zaf_gov_bav"
      },
      "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.

```json Account not found
{
  "checks": [
    {
      "answer": "RED",
      "checkType": "BANK_DETAILS_CHECK",
      "createdAt": "2026-05-20 13:34:34",
      "id": "1f82adfd-a22d-4bab-9086-935828cdfb69",
      "sourceInfo": {
        "id": "zaf_gov_bav"
      },
      "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"
      ]
    }
  ]
}
```
```json Data mismatch
{
  "checks": [
    {
      "answer": "RED",
      "checkType": "BANK_DETAILS_CHECK",
      "createdAt": "2026-06-03 04:48:41",
      "id": "619c9137-6af2-49ba-941d-ff9f848c945c",
      "sourceInfo": {
        "id": "zaf_gov_bav"
      },
      "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.

<Table align={["left","left","left"]}>
  <thead>
    <tr>
      <th>
        Field
      </th>

      <th>
        Type
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `answer`
      </td>

      <td>
        String
      </td>

      <td>
        Check answer:<ul><li><code>GREEN</code> — user verification is successfully completed.</li><li><code>RED</code> — user has not passed verification and is rejected.</li><li><code>ERROR</code> — user verification is not completed because the service is currently unavailable.</li></ul>
      </td>
    </tr>

    <tr>
      <td>
        `bankDetailsCheckInfo`
      </td>

      <td>
        [Object](#bankdetailscheckinfo-attributes)
      </td>

      <td>
        Includes `BANK_DETAILS_CHECK` check results.
      </td>
    </tr>

    <tr>
      <td>
        `checkType`
      </td>

      <td>
        String
      </td>

      <td>
        Indicates that it is a `BANK_DETAILS_CHECK` check type.
      </td>
    </tr>

    <tr>
      <td>
        `createdAt`
      </td>

      <td>
        Date
      </td>

      <td>
        Date and time (UTC, format `YYYY-DD-MM HH:MM:SS`) of the latest `BANK_DETAILS_CHECK` check result.
      </td>
    </tr>

    <tr>
      <td>
        `extractedDoc`
      </td>

      <td>
        [Object](#extracteddoc-attributes)
      </td>

      <td>
        External check source data. It may not be present if the data is not received.
      </td>
    </tr>

    <tr>
      <td>
        `id`
      </td>

      <td>
        String
      </td>

      <td>
        Unique identifier of the check.
      </td>
    </tr>

    <tr>
      <td>
        `sourceInfo.id`
      </td>

      <td>
        String
      </td>

      <td>
        Unique ID of the Database Solution (`zaf_gov_bav`).
      </td>
    </tr>

    <tr>
      <td>
        `inputDoc`
      </td>

      <td>
        [Object](#inputdoc-attributes)
      </td>

      <td>
        Represents the data used for the `BANK_DETAILS_CHECK` check.
      </td>
    </tr>

    <tr>
      <td>
        `violations`
      </td>

      <td>
        Array of strings
      </td>

      <td>
        Indicates 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.
      </td>
    </tr>
  </tbody>
</Table>

## `inputDoc` attributes

| Field         | Type   | Description                                              |
| ------------- | ------ | -------------------------------------------------------- |
| `idDocType`   | String | Type of the data provided for verification (`OTHER`).    |
| `country`     | String | Alpha-3 country code (for example, `DEU`, `GBR`, `ARG`). |
| `lastName`    | String | Last name provided by the applicant.                     |
| `bankAccount` | Object | Bank account details provided by the applicant.          |

## `bankAccount` attributes

<Table>
  <thead>
    <tr>
      <th>
        Field
      </th>

      <th>
        Type
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `accountDocType`
      </td>

      <td>
        String
      </td>

      <td>
        Type of the ID document or data provided for verification:

        - `ID_CARD`
        - `PASSPORT`
      </td>
    </tr>

    <tr>
      <td>
        `accountDocNumber`
      </td>

      <td>
        String
      </td>

      <td>
        Identification number provided by the applicant.
      </td>
    </tr>

    <tr>
      <td>
        `accountNumber`
      </td>

      <td>
        String
      </td>

      <td>
        Account number provided by the applicant.
      </td>
    </tr>

    <tr>
      <td>
        `bankName`
      </td>

      <td>
        String
      </td>

      <td>
        Bank name provided by the applicant.
      </td>
    </tr>
  </tbody>
</Table>

## `extractedDoc` attributes

| Field       | Type   | Description                                              |
| ----------- | ------ | -------------------------------------------------------- |
| `country`   | String | Alpha-3 country code (for example, `DEU`, `GBR`, `ARG`). |
| `idDocType` | String | Type of the document linked to the bank account.         |
| `number`    | String | ID document number.                                      |
| `lastName`  | String | Applicant last name.                                     |

## `bankDetailsCheckInfo` attributes

| Field            | Type   | Description                                           |
| ---------------- | ------ | ----------------------------------------------------- |
| `accountDetails` | Object | Represents the data validated in the external source. |

## `accountDetails` attributes

<Table>
  <thead>
    <tr>
      <th>
        Field
      </th>

      <th>
        Type
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `personFullName`
      </td>

      <td>
        String
      </td>

      <td>
        Applicant last name.
      </td>
    </tr>

    <tr>
      <td>
        `accountNumber`
      </td>

      <td>
        String
      </td>

      <td>
        Applicant account number.
      </td>
    </tr>

    <tr>
      <td>
        `accountStatus`
      </td>

      <td>
        String
      </td>

      <td>
        Account status:

        - `OPEN` — account is open.
        - `CLOSED` — account is closed.
        - `UNVERIFIED` — account is not FICA verified.
      </td>
    </tr>

    <tr>
      <td>
        `bankName`
      </td>

      <td>
        String
      </td>

      <td>
        Bank name. Possible values:

        - `ABSA`
        - `AFRICAN`
        - `CAPITEC`
        - `FNB`
        - `INVESTEC`
        - `NEDBANK`
        - `STANDARD`
        - `DISCOVERY`
        - `SASFIN`
        - `GRINDROD`
        - `TYME`
        - `FIRSTRAND`
        - `RANDMERCHANT`
        - `RMB`
      </td>
    </tr>

    <tr>
      <td>
        `bankBranchCode`
      </td>

      <td>
        String
      </td>

      <td>
        Bank universal branch code.
      </td>
    </tr>

    <tr>
      <td>
        `country`
      </td>

      <td>
        String
      </td>

      <td>
        Bank country. Presented as an alpha-3 country code (for example, `DEU`, `GBR`, `ARG`).
      </td>
    </tr>

    <tr>
      <td>
        `canAcceptCredit`
      </td>

      <td>
        Boolean
      </td>

      <td>
        Indicates whether the account can accept credits.
      </td>
    </tr>

    <tr>
      <td>
        `canAcceptDebit`
      </td>

      <td>
        Boolean
      </td>

      <td>
        Indicates whether the account can accept debits.
      </td>
    </tr>

    <tr>
      <td>
        `openAtLeast3Months`
      </td>

      <td>
        Boolean
      </td>

      <td>
        Indicates whether the account was open for at least 3 months.
      </td>
    </tr>
  </tbody>
</Table>