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

# Impor dan Ekspor Bisnis: CSV Massal

> Muat entitas bisnis Didit (KYB) secara massal dari CSV dan ekspor seluruh tabel bisnis. Tersedia di Konsol Bisnis Didit. Penagihan per panggilan.



Prompt Impor / Ekspor Bisnis Massal
        Salin prompt ke papan klip



      
      

\<pre>

\````# Goal — bulk-load (or extract) Didit Business entities programmatically

CSV import / export is console-only. For programmatic bulk operations, loop `POST /v3/businesses/create/` for imports and paginate `GET /v3/businesses/` for exports.

\## Bulk import — loop the create endpoint

\```bash
\# businesses.json — array of records
\# [{"vendor_data":"biz-acme","display_name":"Acme Corp","country_code":"GBR"}, ...]

jq -c '.[]' businesses.json | while read biz; do
curl -X POST https://verification.didit.me/v3/businesses/create/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d "$biz"
sleep 0.1   # respect rate limits — see /integration/rate-limiting
done
\```

Record shape (matches `POST /v3/businesses/create/`):

\```json
\{
"vendor_data": "biz-acme",         // required, unique per app
"display_name": "Acme Corp",       // optional
"country_code": "GBR",             // ISO 3166-1 alpha-3, optional
"metadata": {"partner": "Acme Holdings"},
"tags": ["b2b-tier-1"]
}
\```

\`create` is **not** idempotent. Upsert pattern:

\```bash
if curl -s -o /dev/null -w "%{http_code}" \
 https://verification.didit.me/v3/businesses/$VD/ \
 -H "x-api-key: $DIDIT_API_KEY" | grep -q 200; then
curl -X PATCH https://verification.didit.me/v3/businesses/$VD/ \
-H "x-api-key: $DIDIT_API_KEY" -H "Content-Type: application/json" \
-d "$BODY"
else
curl -X POST https://verification.didit.me/v3/businesses/create/ \
-H "x-api-key: $DIDIT_API_KEY" -H "Content-Type: application/json" \
-d "$BODY"
fi
\```

\## Bulk export — paginate the list endpoint

\```bash
PAGE=1
while :; do
RESP=$(curl -sG https://verification.didit.me/v3/businesses/ \
-H "x-api-key: $DIDIT_API_KEY" \
\--data-urlencode "page=$PAGE" \
\--data-urlencode "page_size=100")
echo "$RESP" | jq -c '.results[]' >> businesses.ndjson
HAS_NEXT=$(echo "$RESP" | jq -r '.next // empty')
\[ -z "$HAS_NEXT" ] && break
PAGE=$((PAGE+1))
done
\```

Filter with `status`, `country_code`, `search`, date ranges (see /management-api/businesses/list).

\## What survives on update vs what stays

\| Field | Behaviour |
\|---|---|
\| `display_name`, `metadata`, `tags` | Overwritten by PATCH |
\| `legal_name`, `registration_number`, `country_code` | Read-only after a verified KYB session (overrides logged in audit log) |
\| Aggregate counters, `features` map | Computed by Didit — never accept writes |

\## Failure modes

\- `409` on create — `vendor_data` exists; use PATCH.
\- `429` — rate limit; back off using `Retry-After`. Insert 100ms+ between calls for large batches.
\- `400` — bad country code or bad JSON. Log and continue.

\## Console fallback

The Business Console (Businesses → Import / Export) handles up to 100K rows for imports and 1M rows for exports with chunked async processing and an emailed signed download link.

\## Sources of truth

\- /management-api/businesses/create — POST /v3/businesses/create/ schema
\- /management-api/businesses/list — GET /v3/businesses/ pagination
\- /entities/businesses/data-model — mutable vs read-only fields
\- /integration/rate-limiting — rate limits
\- /integration/integration-prompt — canonical end-to-end prompt````

\</pre>



      
      

Tempel ke

Business Console mendukung impor dan ekspor massal entitas bisnis. Alurnya sama dengan yang tersedia untuk pengguna, dengan penyesuaian untuk kolom bisnis.> [!NOTE]
>
> Impor dan ekspor massal di sini hanya membuat atau memperbarui profil bisnis. Fitur ini tidak membuat ulang sesi KYB historis, laporan registri, pengurus, pemilik manfaat, atau keputusan penyedia. Untuk migrasi KYB penuh dari penyedia lain atau ekspor registri, lihat [Impor Data dari Penyedia Lain](https://docs.didit.me/id/sessions-api/import-verifications.md).## Impor bisnis dari CSV### Kapan digunakan- **Migrasi** dari vendor KYB lain.
- **Onboarding mitra**: memuat daftar pelanggan mitra.
- **Pengisian metadata**: memperbarui tag, tingkat, atau kolom kustom untuk banyak bisnis sekaligus.### Kolom templatUnduh templat dari *Businesses → Import → Download template*:| Kolom | Wajib | Deskripsi |
| - | - | - |
| `vendor_data` | Ya | Pengidentifikasi Anda untuk bisnis ini. Unik per aplikasi. |
| `display_name` | Tidak | Nama yang mudah dibaca. |
| `legal_name` | Tidak | Nama badan hukum perusahaan. Akan ditimpa oleh data registri terverifikasi. |
| `registration_number` | Tidak | Nomor registrasi perusahaan. Akan ditimpa oleh data registri terverifikasi. |
| `country_code` | Tidak | Kode ISO 3166-1 alpha-3. Memicu pemeriksaan negara berisiko. |
| `status` | Tidak | `ACTIVE`, `FLAGGED`, atau `BLOCKED`. Nilai default adalah `ACTIVE`. |
| `tags` | Tidak | Tag dipisahkan koma. |
| `metadata_json` | Tidak | JSON yang diubah menjadi string untuk metadata kustom. |### Menjalankan impor**1. Unggah CSV***Businesses → Import → Upload CSV*.**2. Tinjau pratinjau**Baris yang tidak valid disorot. Duplikat (`vendor_data` yang sudah ada) ditandai sebagai pembaruan.**3. Mulai impor**Didit memproses baris secara asinkron. Progres dilacak di *Businesses → Import history*.**4. Tinjau hasil**Unduh laporan kesalahan untuk baris yang dilewati.### Pembaruan vs pembuatan- `vendor_data` baru akan membuat bisnis baru.
- `vendor_data` yang sudah ada akan memperbarui kolom dan metadata bisnis yang dapat diubah.
- Kolom yang berasal dari registri (`legal_name`, `registration_number`, `country_code`) **tidak** ditimpa oleh impor setelah sesi Verifikasi Bisnis (KYB) mengisinya.## Ekspor bisnis ke CSV### Kapan digunakan- **Audit kepatuhan** dan permintaan regulator.
- **Sinkronisasi data warehouse** untuk BI.
- **Pelaporan mitra**: tampilan bisnis yang difilter berdasarkan negara, tingkat, atau tag.### Menjalankan ekspor1) Buka *Businesses → Export*.
2) Terapkan filter (status, negara, rentang tanggal, pencarian, tag).
3) Pilih kolom.
4) Kirim. Didit membuat ekspor secara asinkron dan mengirimkan tautan unduh bertanda tangan melalui email.Pembatasan peran berlaku. Lihat [peran dan izin](https://docs.didit.me/id/console/roles-permissions.md).## Jejak auditSemua impor dan ekspor dicatat beserta operator, jumlah baris, dan stempel waktu. Lihat [log audit](https://docs.didit.me/id/console/audit-logs.md).## Langkah selanjutnya> [card] [API pembuatan bisnis](https://docs.didit.me/id/management-api/businesses/create.md)
>
> Pembuatan massal secara terprogram.> [card] [Retensi data](https://docs.didit.me/id/console/data-retention.md)
>
> Berapa lama data yang diimpor disimpan.> [card] [Log audit](https://docs.didit.me/id/console/audit-logs.md)
>
> Tinjau riwayat impor dan ekspor.


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