> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# API Cek Rekening Bank: Verifikasi Rekening Penerima

> Cek apakah rekening bank milik orang atau perusahaan yang Anda sebutkan sebelum mengirim dana. Tanpa sesi dan tanpa login. Didit.

> [!NOTE]
>
> Dalam produksi, pemeriksaan rekening berjalan di Nigeria, Ghana, dan Kenya.
> Negara lain menghasilkan respons `404` dengan `code: country_not_covered`, dan tidak ditagih.
> Negara baru akan dibuka seiring waktu, dan [harga Bank Verification](https://docs.didit.me/id/getting-started/bank-verification-pricing.md) selalu menunjukkan apa yang ditawarkan setiap negara saat ini.

Backend Anda mengirim nama dan rekening, lalu membaca hasilnya. Ini adalah [pemeriksaan rekening](https://docs.didit.me/id/core-technology/bank-verification/account-check.md) pada langkah Bank Verification, tanpa melibatkan orang tersebut.

## Kirim rekening sesuai format penulisan negaranya

| Negara | `account` |
| - | - |
| Negara dengan IBAN | `{"iban": "..."}` |
| Inggris Raya | `{"sort_code": "...", "account_number": "..."}` |
| Amerika Serikat | `{"routing_number": "...", "account_number": "..."}` |
| Kanada | `{"transit_institution": "...", "account_number": "..."}` |
| Australia | `{"bsb": "...", "account_number": "..."}` |
| India | `{"ifsc": "...", "account_number": "..."}` |
| Nigeria | `{"bank_code": "...", "account_number": "..."}`, dengan kode NIP bank 6 digit (Access Bank adalah `000014`) dan NUBAN 10 digit |
| Ghana | `{"bank_code": "...", "account_number": "..."}`, dengan kode bank 3 huruf (GCB Bank adalah `GCB`) |
| Kenya | `{"bank_code": "...", "account_number": "..."}`, dengan kode bank 2 digit (KCB adalah `01`) |
| Meksiko | `{"clabe": "..."}` |
| Argentina | `{"cbu_cvu": "..."}` |

Beberapa negara juga meminta `bic`, dan untuk rekening bisnis meminta `registration_id`. Spasi, tanda hubung, dan titik diabaikan. Jika kunci yang dibutuhkan pemeriksaan negara tersebut tidak dikirim, responsnya adalah `400` yang menyebutkan kunci itu, misalnya `"field": "account.bank_code", "reason": "required"`.

Kirim `holder.full_name` untuk memeriksa rekening seseorang, atau `holder.business_name` untuk memeriksa rekening sebuah perusahaan.

## Kirim persetujuan pemegang rekening

Di beberapa negara, pemeriksaan rekening memerlukan persetujuan eksplisit dari pemegang rekening sebelum setiap pemeriksaan.
Mintalah persetujuan tersebut di produk Anda, lalu kirim `"consent": true`.
Tanpa itu, pemeriksaan di negara tersebut ditolak dengan `400` (`field: consent`, `reason: required`) dan tidak ditagih.
Di negara lain, `consent` bersifat opsional, dan jika Anda mengirimnya, Didit mencatatnya bersama biaya pemeriksaan.
Kunci sandbox meminta persetujuan di negara yang sama dengan kunci produksi.

## Baca hasilnya

| `result` | Artinya | Langkah berikutnya yang umum |
| - | - | - |
| `match` | Rekening tersebut terdaftar di bank atas nama yang Anda kirim. | Kirim uangnya. |
| `close_match` | Bank mencatat rekening tersebut atas nama yang mirip. `holder_name` adalah nama tersebut, jika bank mengembalikannya. | Bandingkan `holder_name`, atau minta orang tersebut mengonfirmasi. |
| `no_match` | Bank mencatat rekening tersebut atas nama lain, atau rekening tersebut tidak ada. | Jangan kirim uangnya. |
| `cannot_verify` | Bank menjawab tanpa membandingkan nama, misalnya untuk rekening yang diblokir atau ditutup. | Terapkan kebijakan Anda sendiri, misalnya minta rekening lain. |

## Penagihan dan coba lagi

Setiap pemeriksaan yang dijawab bank ditagih sekali dengan [harga Pemeriksaan rekening](https://docs.didit.me/id/getting-started/bank-verification-pricing.md) untuk negara asal rekening tersebut, apa pun hasilnya. Permintaan yang dijawab dengan kesalahan tidak pernah ditagih: isi permintaan yang ditolak (`400`), tidak ada kredit (`402`), rekening di negara yang belum dilayani pemeriksaan (`404`), atau bank yang tidak dapat menjawab (`503`).

Tidak ada kunci idempotensi dan tidak ada endpoint untuk membaca kembali pemeriksaan. Permintaan yang dicoba ulang akan menjalankan pemeriksaan baru, dengan `request_id` baru, dan ditagih lagi, jadi simpan responsnya. Didit hanya menyimpan biaya, dengan ID permintaan, negara, hasil, dan rekening yang disamarkan, tidak pernah nama atau nomor rekening lengkap.

## Uji di sandbox

Kunci API sandbox tidak memanggil bank dan tidak dikenakan biaya. 4 karakter terakhir IBAN, atau jika tidak ada, dari nomor rekening, menentukan jawabannya:

| Berakhir dengan | Jawaban |
| - | - |
| `0001` | `close_match`, dengan `holder_name` |
| `0002` | `close_match`, `holder_name: null` |
| `0003`, `0006` | `no_match` |
| `0004` | `cannot_verify` |
| `0005` | `503`, `account_check_unavailable` |
| `0009` | `400`, `reason: rejected` |
| Lainnya | `match` |

IBAN, CLABE, dan CBU memiliki digit pemeriksa: gunakan [nilai sandbox](https://docs.didit.me/id/core-technology/bank-verification/account-check.md#uji-di-sandbox) yang lolos semua pemeriksaan format.

## Akses

Autentikasi dengan `x-api-key` aplikasi Anda, atau dengan token bearer kredensial klien aplikasi Anda. Kunci API dengan cakupan terbatas memerlukan akses tulis ke sesi. Endpoint ini berbagi batas tulis 300 permintaan per menit per kunci API.


## OpenAPI

````yaml id/openapi-25.json POST /v3/bank/account-check/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API Verifikasi Identitas. Lakukan autentikasi dengan header x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/bank/account-check/:
    post:
      tags:
        - Standalone APIs
      summary: Periksa rekening bank
      description: >-
        Periksa bahwa rekening bank milik orang atau perusahaan yang Anda
        sebutkan, sebelum Anda mengirim uang ke rekening tersebut. Tanpa sesi
        dan tanpa masuk: kirim nama dan rekening, baca hasilnya. Ini adalah
        [pemeriksaan
        rekening](/id/core-technology/bank-verification/account-check) dari
        langkah Verifikasi Bank, yang dijalankan dari backend Anda.


        **Yang Anda kirimkan.** `country` rekening (ISO 3166-1 alpha-3),
        `account` sesuai penulisan di negara tersebut, dan nama `holder`:
        `full_name` untuk perorangan atau `business_name` untuk perusahaan. Nama
        bisnis digunakan untuk memeriksa rekening bisnis.


        **Yang Anda terima kembali.** `result` adalah `match`, `close_match`,
        `no_match`, atau `cannot_verify`. Pada `close_match`, `holder_name`
        adalah nama yang tercatat pada rekening di bank tersebut, jika bank
        mengembalikannya. `account` dikembalikan disamarkan dengan hanya
        menyisakan 4 karakter terakhirnya.


        **Penagihan.** Setiap pemeriksaan yang dijawab oleh bank ditagih satu
        kali sesuai harga pemeriksaan rekening dari negara rekening tersebut,
        apa pun hasilnya: `no_match`, rekening yang tidak ada, dan
        `cannot_verify` juga ditagih. Permintaan yang dijawab dengan kesalahan
        tidak pernah ditagih.


        **Setiap permintaan adalah pemeriksaan baru.** Tidak ada kunci
        idempotensi dan tidak ada endpoint untuk membaca kembali pemeriksaan,
        sehingga permintaan yang dicoba lagi akan kembali dijalankan dan
        ditagih. Simpan responsnya.


        **Sandbox.** Gunakan kunci API sandbox dengan detail rekening sampel.
        Kunci sandbox tidak memanggil bank mana pun dan tidak dikenai biaya. 4
        karakter terakhir dari IBAN, atau dari nomor rekening, menentukan
        jawabannya: `0001` menghasilkan `close_match` dengan `holder_name`,
        `0002` menghasilkan `close_match` tanpa nama, `0003` dan `0006`
        menghasilkan `no_match`, `0004` menghasilkan `cannot_verify`, `0005`
        menghasilkan `503`, dan `0009` menghasilkan `400`. Akhiran lainnya
        menghasilkan `match`.


        **Kunci API.** Kunci API dengan cakupan memerlukan akses tulis ke sesi.
      operationId: post_v3_bank_account_check
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankAccountCheckRequest'
            examples:
              Person, Nigeria:
                summary: Kode bank dan nomor rekening, diperiksa terhadap nama individu
                value:
                  country: NGA
                  account:
                    bank_code: '000014'
                    account_number: '0123450001'
                  holder:
                    full_name: Maria Oliveira
                  vendor_data: payout_20481
              Company, Nigeria:
                summary: >-
                  Kode bank dan nomor rekening, diperiksa terhadap nama
                  perusahaan
                value:
                  country: NGA
                  account:
                    bank_code: '000014'
                    account_number: '0123456789'
                  holder:
                    business_name: Northwind Trading Ltd
      responses:
        '200':
          description: >-
            Bank memberikan jawaban. Biaya pemeriksaan tetap dikenakan, apa pun
            hasilnya.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccountCheckResponse'
              examples:
                Close match:
                  summary: Bank memiliki rekening atas nama yang mirip
                  value:
                    request_id: c2f4a9e0-7b1d-4c3a-9e55-1d0a6b8f2a47
                    result: close_match
                    holder_name: MARIA R OLIVEIRA
                    account: '****0001'
                    vendor_data: payout_20481
                    created_at: '2026-10-21T14:32:08Z'
                Match:
                  summary: Bank memiliki rekening atas nama yang dikirimkan
                  value:
                    request_id: 5b0e2d7c-41a8-4f6e-9c3b-8e7d1a2f6c90
                    result: match
                    holder_name: null
                    account: '****6789'
                    vendor_data: null
                    created_at: '2026-10-21T14:35:41Z'
        '400':
          description: >-
            Ditolak seperti yang dikirim, dan tidak ditagih. `field` menyebutkan
            kolom body yang perlu diperbaiki dan `reason` menjelaskan alasannya,
            dengan alasan yang sama seperti yang ditampilkan pada formulir akun
            yang di-hosting. Hanya kolom pertama yang ditolak yang dilaporkan.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccountCheckError'
              examples:
                Missing field:
                  summary: Pemeriksaan di negara ini memerlukan kode bank
                  value:
                    detail: The bank code is not valid (required).
                    code: invalid_account_input
                    field: account.bank_code
                    reason: required
                Invalid IBAN:
                  summary: Panjang IBAN salah untuk negaranya
                  value:
                    detail: The iban is not valid (length).
                    code: invalid_account_input
                    field: account.iban
                    reason: length
                Refused by the bank:
                  summary: Bank menolak rekening seperti yang dikirim
                  value:
                    detail: The account was refused as typed (rejected).
                    code: invalid_account_input
                    field: account.account_number
                    reason: rejected
                No name:
                  summary: '`holder` tidak memiliki `full_name` maupun `business_name`'
                  value:
                    detail: >-
                      Send full_name for a person or business_name for a
                      company.
                    code: invalid_account_input
                    field: holder
                    reason: required
                Consent required:
                  summary: >-
                    Pemeriksaan akun di negara ini memerlukan persetujuan
                    pemilik akun
                  value:
                    detail: >-
                      Account checks in this country need the account holder's
                      explicit consent. Ask for it, then send `consent=true`.
                    code: invalid_account_input
                    field: consent
                    reason: required
        '401':
          description: Kunci API dengan cakupan terbatas telah kedaluwarsa.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccountCheckError'
              examples:
                Expired key:
                  summary: Tanggal kedaluwarsa kunci telah lewat
                  value:
                    detail: This API key has expired.
        '402':
          description: >-
            Pemeriksaan tidak dapat dibayar, sehingga tidak dijalankan. Isi
            saldo Anda, lalu kirimkan lagi.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccountCheckError'
              examples:
                Out of credit:
                  summary: Saldo Anda tidak mencukupi untuk satu pemeriksaan
                  value:
                    detail: >-
                      You don't have enough credits to perform this request.
                      Please top up at https://business.didit.me
                    code: insufficient_credits
                Not in your contract:
                  summary: Kontrak Anda tidak memiliki harga untuk API pemeriksaan Akun
                  value:
                    detail: >-
                      Your contract does not price the Account check API.
                      Contact your account manager.
                    code: contract_rate_missing
        '403':
          description: >-
            Header `x-api-key` atau token bearer tidak ada atau tidak valid,
            permintaan berasal dari alamat di luar daftar IP kunci, atau kunci
            dengan pembatasan cakupan tidak memiliki akses tulis ke sesi.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccountCheckError'
              examples:
                Missing or invalid credentials:
                  summary: Tidak ada kunci API atau token yang valid
                  value:
                    detail: You do not have permission to perform this action.
                No sessions write:
                  summary: >-
                    Kunci dengan cakupan akses terbatas tanpa akses tulis ke
                    sesi
                  value:
                    detail: This API key has no write access to sessions.
        '404':
          description: >-
            Belum ada pemeriksaan akun yang melayani akun ini, sehingga tidak
            ada yang diperiksa atau ditagih. `country_not_covered`: tidak ada
            yang mencakup negaranya atau jenis akunnya (individu atau bisnis) di
            sana. `bank_not_covered`: tidak ada yang mencakup banknya.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccountCheckError'
              examples:
                Country not covered:
                  summary: Tidak ada pemeriksaan akun yang mencakup negara tersebut
                  value:
                    detail: No account check serves this country yet.
                    code: country_not_covered
                Bank not covered:
                  summary: Tidak ada pemeriksaan akun yang mencakup bank akun tersebut
                  value:
                    detail: No account check serves this account's bank yet.
                    code: bank_not_covered
        '429':
          $ref: '#/components/responses/RateLimitedWrite'
        '503':
          description: >-
            Bank tidak dapat memberikan jawaban. Tidak ada yang diperiksa atau
            ditagih; kirim ulang pemeriksaan nanti.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccountCheckError'
              examples:
                Unavailable:
                  summary: Bank tidak memberikan jawaban
                  value:
                    detail: >-
                      The account check is temporarily unavailable and this
                      request was not charged. Please try again.
                    code: account_check_unavailable
      security:
        - ApiKeyAuth: []
        - BearerAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X POST https://verification.didit.me/v3/bank/account-check/ \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{
                "country": "NGA",
                "account": {"bank_code": "000014", "account_number": "0123450001"},
                "holder": {"full_name": "Maria Oliveira"},
                "vendor_data": "payout_20481"
              }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.bank.account_check(
                country="NGA",
                account={
                    "account_number": "0123450001",
                    "bank_code": "000014",
                },
                holder={
                    "full_name": "Maria Oliveira",
                },
                vendor_data="payout_20481",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            const result = await didit.bank.accountCheck({
              country: "NGA",
              account: {
                account_number: "0123450001",
                bank_code: "000014",
              },
              holder: {
                full_name: "Maria Oliveira",
              },
              vendor_data: "payout_20481",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Bank.AccountCheck(ctx, didit.BankAccountCheckRequest{\n\tCountry: \"NGA\",\n\tAccount: didit.BankAccountCheckRequestAccount{\n\t\tAccountNumber: didit.String(\"0123450001\"),\n\t\tBankCode:      didit.String(\"000014\"),\n\t},\n\tHolder: didit.BankAccountCheckHolder{\n\t\tFullName: didit.String(\"Maria Oliveira\"),\n\t},\n\tVendorData: didit.String(\"payout_20481\"),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;

            import me.didit.types.BankAccountCheckHolder;

            import me.didit.types.BankAccountCheckPersonHolder;

            import me.didit.types.BankAccountCheckRequest;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.bank().accountCheck(BankAccountCheckRequest.builder()
                    .country("NGA")
                    .account(BankAccountCheckRequest.Account.builder()
                            .accountNumber("0123450001")
                            .bankCode("000014")
                            .build())
                    .holder(BankAccountCheckHolder.ofBankAccountCheckPersonHolder(BankAccountCheckPersonHolder.builder()
                            .fullName("Maria Oliveira")
                            .build()))
                    .vendorData("payout_20481")
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            $result = $didit->bank->accountCheck([
                'country' => 'NGA',
                'account' => [
                    'account_number' => '0123450001',
                    'bank_code' => '000014',
                ],
                'holder' => [
                    'full_name' => 'Maria Oliveira',
                ],
                'vendor_data' => 'payout_20481',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.bank.account_check(
              country: "NGA",
              account: {
                account_number: "0123450001",
                bank_code: "000014",
              },
              holder: {
                full_name: "Maria Oliveira",
              },
              vendor_data: "payout_20481"
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await client.Bank.AccountCheckAsync(new
            BankAccountCheckRequest

            {
                Country = "NGA",
                Account = new()
                {
                    AccountNumber = "0123450001",
                    BankCode = "000014",
                },
                Holder = new()
                {
                    FullName = "Maria Oliveira",
                },
                VendorData = "payout_20481",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    BankAccountCheckRequest:
      type: object
      required:
        - country
        - account
        - holder
      properties:
        country:
          type: string
          minLength: 3
          maxLength: 3
          description: >-
            Negara akun, sebagai kode ISO 3166-1 alpha-3, misalnya `NGA`. Huruf
            kecil diterima.
          example: NGA
        account:
          type: object
          description: >-
            Akun sesuai format penulisan di negaranya: sebuah `iban`, atau
            sebuah `account_number` dengan kode bank atau cabang yang dibutuhkan
            negara tersebut (`sort_code`, `routing_number`,
            `transit_institution`, `bsb`, `ifsc`, `bank_code`, atau `bic`).
            Meksiko menerima `clabe` dan Argentina menerima `cbu_cvu`, yang
            sudah mencakup nama bank. Akun bisnis menambahkan `registration_id`
            jika negara tersebut memintanya. Spasi, tanda hubung, dan titik
            diabaikan. Kunci yang tidak digunakan oleh pemeriksaan negara
            tersebut akan diabaikan; kunci yang dibutuhkan tetapi tidak
            diberikan akan menghasilkan `400` yang menyebutkan kuncinya.
          properties:
            iban:
              type: string
              maxLength: 64
              description: >-
                IBAN, di negara yang menggunakan IBAN. IBAN harus berasal dari
                `country`.
            account_number:
              type: string
              maxLength: 64
              description: >-
                Nomor akun, di negara yang menulis akun dengan kode bank atau
                cabang terpisah.
            sort_code:
              type: string
              maxLength: 64
              description: 'Inggris Raya: sort code 6 digit.'
            routing_number:
              type: string
              maxLength: 64
              description: 'Amerika Serikat: nomor perutean ABA 9 digit.'
            transit_institution:
              type: string
              maxLength: 64
              description: 'Kanada: 8 digit nomor transit dan institusi.'
            bsb:
              type: string
              maxLength: 64
              description: 'Australia: 6 digit BSB.'
            ifsc:
              type: string
              maxLength: 64
              description: 'India: 11 karakter IFSC.'
            bank_code:
              type: string
              maxLength: 64
              description: Kode bank, jika negara memerlukannya, misalnya di Nigeria.
            bic:
              type: string
              maxLength: 64
              description: BIC bank, jika pemeriksaan di negara tersebut memerlukannya.
            clabe:
              type: string
              maxLength: 64
              description: 'Meksiko: 18 digit CLABE. Nomor ini sudah mencantumkan nama bank.'
            cbu_cvu:
              type: string
              maxLength: 64
              description: 'Argentina: 22 digit CBU atau CVU. Ini sudah mencakup nama bank.'
            registration_id:
              type: string
              maxLength: 64
              description: Nomor registrasi akun bisnis, jika negara memintanya.
          additionalProperties:
            type: string
            maxLength: 64
          example:
            bank_code: '000014'
            account_number: '0123450001'
        holder:
          $ref: '#/components/schemas/BankAccountCheckHolder'
        vendor_data:
          type: string
          nullable: true
          description: >-
            Referensi Anda sendiri untuk pemeriksaan ini, dikembalikan tanpa
            perubahan.
          example: payout_20481
        consent:
          type: boolean
          default: false
          description: >-
            Atur ke `true` jika pemegang akun telah memberikan persetujuan
            secara eksplisit untuk pemeriksaan ini. Diperlukan di negara-negara
            yang pemeriksaan akunnya membutuhkan persetujuan tersebut: tanpanya,
            pemeriksaan ditolak dengan `400` yang memiliki `field` bernilai
            `consent` dan `reason` bernilai `required`, serta tidak ada tagihan
            yang dikenakan. Di tempat lain, ini bersifat opsional, dan Didit
            mencatatnya bersama biaya pemeriksaan saat Anda mengirimkannya.
          example: true
    BankAccountCheckResponse:
      type: object
      required:
        - request_id
        - result
        - holder_name
        - account
        - vendor_data
        - created_at
      properties:
        request_id:
          type: string
          format: uuid
          description: ID pemeriksaan ini.
        result:
          type: string
          enum:
            - match
            - close_match
            - no_match
            - cannot_verify
          description: >-
            `match`: bank menyimpan rekening dengan nama yang Anda kirimkan.
            `close_match`: dengan nama yang mirip, misalnya nama tengah yang
            hilang atau salah ketik. `no_match`: dengan nama lain, atau rekening
            tersebut tidak ada. `cannot_verify`: bank menjawab tanpa
            membandingkan nama, misalnya untuk rekening yang diblokir atau
            ditutup.
        holder_name:
          type: string
          nullable: true
          description: >-
            Hanya pada `close_match`, dan hanya saat bank mengembalikannya: nama
            pada akun, sebagaimana yang tercatat di bank. Jika tidak, `null`.
        account:
          type: string
          description: Akun, dimasker hingga 4 karakter terakhirnya.
        vendor_data:
          type: string
          nullable: true
          description: Referensi Anda sendiri, persis seperti yang Anda kirimkan.
        created_at:
          type: string
          format: date-time
          description: Waktu ketika pemeriksaan dijalankan, dalam UTC.
    BankAccountCheckError:
      type: object
      required:
        - detail
      properties:
        detail:
          type: string
          description: Apa yang salah, dalam bahasa Inggris.
        code:
          type: string
          description: >-
            Kode stabil untuk percabangan logika. Tidak ada pada `401` dan
            `403`.
        field:
          type: string
          description: >-
            Hanya `400`: kolom body yang perlu diperbaiki, sebagai jalur
            bertitik, misalnya `account.sort_code`.
        reason:
          type: string
          enum:
            - required
            - length
            - format
            - checksum
            - country_mismatch
            - rejected
          description: >-
            Hanya `400`: alasan kolom ditolak. `required`, `length`, `format`,
            `checksum`, dan `country_mismatch` (IBAN dari negara lain) adalah
            pemeriksaan Didit sendiri; `rejected` berarti bank menolak akun
            tersebut seperti yang dikirim.
    BankAccountCheckHolder:
      description: >-
        Nama yang digunakan untuk memeriksa akun. Kirim tepat salah satu dari
        `full_name` dan `business_name`.
      oneOf:
        - $ref: '#/components/schemas/BankAccountCheckPersonHolder'
        - $ref: '#/components/schemas/BankAccountCheckBusinessHolder'
    BankAccountCheckPersonHolder:
      type: object
      description: Orang yang seharusnya memegang akun tersebut.
      required:
        - full_name
      properties:
        full_name:
          type: string
          maxLength: 255
          description: Nama lengkap orang yang seharusnya memegang akun tersebut.
          example: Maria Oliveira
    BankAccountCheckBusinessHolder:
      type: object
      description: Perusahaan yang seharusnya memegang akun. Memeriksa akun bisnis.
      required:
        - business_name
      properties:
        business_name:
          type: string
          maxLength: 255
          description: >-
            Nama perusahaan yang harus memiliki akun tersebut. Memeriksa akun
            bisnis.
  responses:
    RateLimitedWrite:
      description: >-
        Batas tulis bersama sebesar 300 permintaan per menit per kunci API telah
        terlampaui. Patuhi `Retry-After` sebelum mencoba lagi.
      content:
        application/json:
          schema:
            type: object
            required:
              - detail
            properties:
              detail:
                type: string
          example:
            detail: >-
              Write request rate limit exceeded. You can make up to 300 requests
              per minute.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Kunci API aplikasi Anda, dari Developers -> API keys di Business
        Console. Kunci utama memiliki akses penuh. Kunci bernama dapat diberi
        cakupan: none, read, atau write per sumber daya, dibatasi pada beberapa
        alur kerja atau pada sesi yang disetujui, pada daftar alamat IP, dan
        pada tanggal kedaluwarsa. 401 berarti kuncinya salah, dicabut, atau
        kedaluwarsa; 403 berarti tidak ada kunci yang dikirimkan, kunci tidak
        memiliki akses ke sumber daya atau tindakan ini, atau permintaan datang
        dari alamat di luar daftar IP-nya; 404 pada rute sesi berarti sesi
        berada di luar alur kerja atau status kunci tersebut. Kunci tanpa akses
        media menerima URL gambar, video, dan PDF sebagai null, dan kunci tanpa
        izin tulis sesi menerima tautan sesi dan token sebagai null. Lihat
        https://docs.didit.me/console/api-keys.
    BearerAuth:
      type: http
      scheme: bearer
      description: Token akses client-credentials milik aplikasi.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.