> ## 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.

# Operasi Bisnis: CRUD KYB Vendor via API Didit

> CRUD penuh entitas Bisnis (KYB) Didit melalui Management API: buat, daftar, ambil, perbarui, ubah status, hapus. KYB bayar per panggilan.



Prompt Operasi Bisnis
        Salin prompt ke papan klip



      
      

\<pre>

\````# Goal — full CRUD over Didit Business (KYB) entities

All operations sit under `https://verification.didit.me/v3/businesses/` authenticated with `x-api-key: $DIDIT_API_KEY`. Each Business is keyed by `vendor_data` (case-sensitive, unique per application).

\## Endpoint catalog

\| Action | Method + path |
\|---|---|
\| List businesses | `GET /v3/businesses/` |
\| Get one business | `GET /v3/businesses/{vendor_data}/` |
\| Create business | `POST /v3/businesses/create/` |
\| Update profile | `PATCH /v3/businesses/{vendor_data}/` |
\| Change status | `PATCH /v3/businesses/{vendor_data}/update-status/` |
\| Batch delete | `POST /v3/businesses/delete/` |

\## List (with filters)

\```bash
curl -G https://verification.didit.me/v3/businesses/ \
-H "x-api-key: $DIDIT_API_KEY" \
\--data-urlencode "status=ACTIVE" \
\--data-urlencode "country_code=GBR" \
\--data-urlencode "page_size=50"
\```

\## Get one business

\```bash
curl https://verification.didit.me/v3/businesses/biz-acme/ \
-H "x-api-key: $DIDIT_API_KEY"
\```

\## Create

\```bash
curl -X POST https://verification.didit.me/v3/businesses/create/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"vendor_data": "biz-acme",
"display_name": "Acme Corp",
"country_code": "GBR",
"metadata": {"partner": "Acme Holdings"}
}'
\```

Not idempotent — a duplicate `vendor_data` returns conflict. `GET` first or PATCH.

\## Update profile

\```bash
curl -X PATCH https://verification.didit.me/v3/businesses/biz-acme/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"metadata": {"tier": "enterprise"}}'
\```

Mutable: `display_name`, `metadata`, `tags`. Read-only (registry-derived after a KYB session): `legal_name`, `registration_number`, `country_code`, all aggregate counters, `features` map.

\## Change status

\```bash
curl -X PATCH https://verification.didit.me/v3/businesses/biz-acme/update-status/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"status": "BLOCKED", "reason": "Sanctioned subsidiary detected"}'
\```

Valid statuses: `ACTIVE`, `FLAGGED`, `BLOCKED`. `BLOCKED` businesses have new KYB sessions and transactions auto-declined.

\## Batch delete

\```bash
curl -X POST https://verification.didit.me/v3/businesses/delete/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"vendor_data": ["biz-acme", "biz-alpha", "biz-beta"]}'
\```

Idempotent. The business records are removed permanently. Verification sessions are not covered by this endpoint; delete those with the session delete endpoints.

\## Webhooks fired

\| Operation | Event |
\|---|---|
\| create | `business.data.updated` |
\| update (PATCH) | `business.data.updated` with `changed_fields` |
\| update-status | `business.status.updated` |
\| delete | `business.data.updated` with `deleted_at` set |

\## Running a KYB session against an existing Business

KYB sessions use the same `POST /v3/session/` endpoint as KYC — the workflow's `workflow_type: "kyb"` switches the session into business mode:

\```bash
curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"workflow_id": "$KYB_WORKFLOW_ID", "vendor_data": "biz-acme"}'
\```

\## Failure modes

\- `401` — missing / invalid `x-api-key`.
\- `403` — role lacks the permission (DEVELOPER can't PATCH; see /console/roles-permissions).
\- `409` on create — `vendor_data` exists; PATCH instead.
\- `404` — wrong `vendor_data` casing.
\- `429` — rate-limited; back off with `Retry-After`.

\## Response shape

See /reference/data-models and /entities/businesses/data-model for the full Business schema.

\## Sources of truth

\- /management-api/businesses/list, /management-api/businesses/get, /management-api/businesses/create — per-endpoint reference
\- /entities/businesses/data-model — field-by-field
\- /business-verification/integration-guide — KYB session flow
\- /integration/integration-prompt — canonical end-to-end prompt````

\</pre>



      
      

Tempel ke

Seluruh pengelolaan entitas Bisnis dilakukan melalui enam endpoint publik di bawah `/v3/businesses/`. Halaman ini memberikan gambaran konseptual. Lihat [Referensi API](https://docs.didit.me/id/management-api/businesses/list.md) untuk skema permintaan dan respons lengkap.## Daftar bisnis**`GET /v3/businesses/`**Daftar bisnis berhalaman untuk aplikasi Anda, dengan filter status, pencarian, negara, dan rentang tanggal.```bash theme={null}
curl -G https://verification.didit.me/v3/businesses/ \
  -H "x-api-key: YOUR_API_KEY" \
  --data-urlencode "status=ACTIVE" \
  --data-urlencode "country_code=GBR" \
  --data-urlencode "page_size=50"
```## Ambil bisnis**`GET /v3/businesses/{vendor_data}/`**Ambil satu bisnis berdasarkan `vendor_data`.```bash theme={null}
curl https://verification.didit.me/v3/businesses/biz-acme/ \
  -H "x-api-key: YOUR_API_KEY"
```## Buat bisnis**`POST /v3/businesses/create/`**Buat Bisnis terlebih dahulu sebelum sesi Verifikasi Bisnis (KYB) berjalan:```bash theme={null}
curl -X POST https://verification.didit.me/v3/businesses/create/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "vendor_data": "biz-acme",
    "display_name": "Acme Corp",
    "country_code": "GBR",
    "metadata": { "partner": "Acme Holdings" }
  }'
```Mengembalikan error konflik jika bisnis dengan `vendor_data` tersebut sudah ada. Gunakan `PATCH` untuk memperbarui bisnis yang sudah ada.## Perbarui bisnis**`PATCH /v3/businesses/{vendor_data}/`**Perbarui kolom profil yang dapat diubah. Kolom yang berasal dari pencarian registri (`legal_name`, `registration_number`, `country_code`) hanya dapat dibaca setelah verifikasi, tetapi dapat ditimpa. Penimpaan ditandai di log audit.**Kolom yang dapat diubah:** `display_name`, `metadata`, `tags`.
**Hanya dibaca setelah verifikasi:** semua kolom turunan registri, penghitung agregat, peta `features`.```bash theme={null}
curl -X PATCH https://verification.didit.me/v3/businesses/biz-acme/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "metadata": { "tier": "enterprise" } }'
```Menghasilkan event webhook `business.data.updated`.## Ubah status**`PATCH /v3/businesses/{vendor_data}/update-status/`**Pindahkan bisnis di antara `ACTIVE`, `FLAGGED`, dan `BLOCKED`.```bash theme={null}
curl -X PATCH https://verification.didit.me/v3/businesses/biz-acme/update-status/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "BLOCKED",
    "reason": "Sanctioned subsidiary detected in ownership chain"
  }'
```| Dari → ke | Pemicu umum |
| - | - |
| `ACTIVE` → `FLAGGED` | Sesi Verifikasi Bisnis (KYB) berpindah ke `In Review`, kecocokan AML pada Pemantauan AML Berkelanjutan, aturan transaksi |
| `ACTIVE` → `BLOCKED` | Entitas yang terkonfirmasi masuk daftar sanksi, entri daftar blokir manual |
| `FLAGGED` → `ACTIVE` | Analis menyelesaikan peninjauan |
| `BLOCKED` → `ACTIVE` | Pembukaan blokir manual setelah remediasi |Menghasilkan event webhook `business.status.updated`.## Hapus bisnis (batch)**`POST /v3/businesses/delete/`**Hapus satu atau beberapa bisnis. Catatan bisnis dihapus secara permanen. Sesi verifikasinya tidak tercakup oleh endpoint ini dan tetap ada, dengan tautannya ke bisnis tersebut dikosongkan. Hapus sesi tersebut dengan [Hapus Sesi](https://docs.didit.me/id/sessions-api/delete-session.md). Transaksi juga tidak tercakup. Hapus transaksi tersebut dari Console.```bash theme={null}
curl -X POST https://verification.didit.me/v3/businesses/delete/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "vendor_data": ["biz-acme", "biz-alpha", "biz-beta"] }'
```Idempoten: menghapus bisnis yang sudah dihapus tidak memberikan efek apa pun.## Model izinSemua endpoint `/v3/businesses/*` dibatasi oleh resource izin `businesses`:| Peran | list | get | create | update | update-status | delete |
| - | :-: | :-: | :-: | :-: | :-: | :-: |
| OWNER | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ADMIN | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| COMPLIANCE\_OFFICER | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ |
| DEVELOPER | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| READER | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |Lihat [Peran & izin](https://docs.didit.me/id/console/roles-permissions.md).## Webhook yang dipicu oleh operasi ini| Operasi | Webhook |
| - | - |
| `create` | `business.data.updated` |
| `update` | `business.data.updated` dengan `changed_fields` |
| `update-status` | `business.status.updated` |
| `delete` | `business.data.updated` dengan `deleted_at` terisi |## Langkah selanjutnya> [card] [Model data](https://docs.didit.me/id/entities/businesses/data-model.md)
>
> Referensi kolom lengkap.> [card] [API daftar](https://docs.didit.me/id/management-api/businesses/list.md)
>
> Skema GET /v3/businesses/.> [card] [API buat](https://docs.didit.me/id/management-api/businesses/create.md)
>
> Skema POST /v3/businesses/create/.


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