📘 Public beta · Endpoints are stable; OpenAPI specs and SDKs ship monthly. See changelog →
Products
Document Intelligence
Document types

Document types

The canonical registry of document types Document Intelligence understands. Each has a fixed field schema we extract; for documents that don't fit, use generic_ocr or define a Template.

Indonesian regulatory IDs

ktp — KTP (Kartu Tanda Penduduk)

The national ID card. For identity verification use Identity Platform; for OCR-only use this.

FieldTypeNotes
nikstring(16)Validated against structural rules
fullNamestring
placeOfBirthstring
dateOfBirthdateCross-checked with NIK
genderenumLAKI-LAKI · PEREMPUAN
bloodTypeenumA · B · AB · O · - (with +/- modifier)
addressstring
rtRwstringFormat NNN/NNN
kelurahanstring
kecamatanstring
religionenumISLAM · KRISTEN · KATOLIK · …
maritalStatusenumBELUM KAWIN · KAWIN · CERAI HIDUP · CERAI MATI
occupationstring
nationalityenumWNI · WNA
validUntilstringDate or literal SEUMUR HIDUP
issueDatedate

npwp — Tax card

FieldTypeNotes
npwp_numberstring(20)Formatted XX.XXX.XXX.X-XXX.XXX
namestring
addressstring
registered_atdate
kpp_codestringKantor Pelayanan Pajak code

kartu_keluarga — Family card

Header fields + a members[] array (each with NIK, name, relationship, gender, DOB, religion, education, occupation, citizenship, parental NIKs).

sim — Driver's license

Front + back. Fields: name, NIK, address, license class (A/A Umum/B I/B I Umum/…), issue date, expiry, photo bounding box.

passport — Indonesian passport

MRZ-extracted: passport number, name, sex, nationality, DOB, expiry, issuing country, plus MRZ checksum validation.

nib — Business registration

nib_number, business name, KBLI codes (multi-value), registered address, owner name + NIK, registration date.

bpkb — Vehicle ownership

Plate number, brand, model, year, engine number, chassis number, color, fuel type, owner name + NIK.

Civil registry

akta_lahir — Birth certificate

Child name, place + date of birth, parents' names + NIKs, witness names, registry number, issuing kelurahan.

surat_nikah — Marriage certificate

Both parties' names + NIKs + DOBs, marriage date, registering KUA, witness names.

Commercial / operations

invoice

invoice_number, issue date, due date, vendor (name + NPWP + address), customer (name + NPWP + address), line_items[] (description, qty, unit, unit_price, total), subtotal, tax, total, payment terms.

purchase_order

Same shape as invoice but with po_number instead of invoice_number, plus delivery_date, delivery_address.

delivery_note

Recipient, items delivered (line items with descriptions + qtys), signatures (yes/no flags).

receipt

Date, merchant, total, payment method, item lines (best-effort).

faktur_pajak — VAT invoice

faktur_number, seller NPWP, buyer NPWP, taxable amount, tax amount (PPN), total, code/branch.

slip_gaji — Pay slip

Period, employee name + NIK, position, gross salary, allowances (array), deductions (array), PPh21 tax withheld, net pay.

contract

Highly variable structure. Extracts: party names + NIKs, effective date, expiry, agreement type heuristic, key terms (notice period, jurisdiction, governing law). Falls back to generic_ocr if the contract is too non-standard.

Financial

rekening_koran — Bank statement

Account holder, account number, bank, statement period, opening balance, closing balance, transaction array (date, description, debit, credit, running balance).

Use Bank Statement Platform for the heavy lifting

Document Intelligence's rekening_koran handles ad-hoc one-off parses. For multi-statement loan underwriting (BCA, Mandiri, BRI, BNI, Permata, Danamon, BTN, OCBC native parsers + consolidation), use Bank Statement Platform. Same data shapes, much richer ledger analytics.

financial_statement

PSAK-aligned financial statement structure: balance sheet (assets, liabilities, equity), income statement (revenue, COGS, opex, EBITDA, net income), cash flow.

Fallback

generic_ocr

Pure OCR: returns rawText (full document text) + keyValuePairs[] (best-effort field extraction). No schema validation.

other

Stored but not extracted. Use when you only need archival + audit.

Defining your own types

Use Templates → to define schemas for documents not in this list. Common ones our customers have built:

  • Bank-internal loan application forms
  • Custom NPF (Notice of Payment Failure) letters
  • Per-bank corporate-onboarding checklists
  • Custom invoice templates for specific suppliers