EndpointAll 12 endpoints
Base URL https://erp.contoh.co.id/api/v1. Generated from openapi.yaml at build time.
Jurnal
General ledger journals and SAP/Accurate export batches (Sawitara Finance). Abilities jurnal:baca and batch:konfirmasi.
GET /api/v1/jurnal Available
List POSTED journals with their export status. One journal = one two-line document (debit D and credit K) with equal amounts. Requires periode, or dari and sampai. Ordered by date then id.
Token ability: jurnal:baca
| Parameter | In | Type | Description |
periode | query | string | Month YYYY-MM. Required when dari/sampai are not given. pattern ^\d{4}-(0[1-9]|1[0-2])$ |
|---|
dari | query | string (date) | Start date YYYY-MM-DD (together with sampai). |
|---|
sampai | query | string (date) | End date YYYY-MM-DD, on or after dari. |
|---|
status | query | string | Journal export status.
semua belum diekspor diterima · default semua |
|---|
unit | query | string | Unit code within the token's scope (including child units). Outside the scope returns 403. max 20 chars |
|---|
sistem | query | string | Fill akun_eksternal from this system's account mapping (null when unmapped).
SAP ACCURATE |
|---|
per_halaman | query | integer | Rows per page. min 1 · max 500 · default 100 |
|---|
page | query | integer | Page number, starting at 1. min 1 · default 1 |
|---|
Responses: 200 401 403 422 429
Response fields (200), 35 fields
| Field | Type |
data | array<object> |
data[].id | integer |
data[].nojurnal | string |
data[].tanggal | string (date) |
data[].periode | string |
data[].periode_ditutup | boolean |
data[].unit | string | null |
data[].keterangan | string | null |
data[].nominal | number |
data[].baris | array<object> |
data[].baris[].nomor_baris | integer
1 2 |
data[].baris[].sisi | string
D K |
data[].baris[].akun | string | null |
data[].baris[].akun_eksternal | string | null |
data[].baris[].jumlah | number |
data[].ekspor | object | null |
data[].ekspor.batch_id | integer |
data[].ekspor.nobatch | string |
data[].ekspor.sistem | string
SAP ACCURATE |
data[].ekspor.status | string
DIEKSPOR DITERIMA |
data[].ekspor.diekspor_at | string (date-time) | null |
data[].ekspor.diekspor_oleh | string | null |
data[].ekspor.diterima_at | string (date-time) | null |
meta | object |
meta.halaman | integer |
meta.per_halaman | integer |
meta.total | integer |
meta.halaman_terakhir | integer |
meta.berikutnya | string (uri) | null |
filter | object |
filter.dari | string (date) |
filter.sampai | string (date) |
filter.status | string
semua belum diekspor diterima |
filter.unit | string | null |
filter.sistem | string | null
SAP ACCURATE |
GET /api/v1/batch Available
List journal export batches, newest first. 50 batches per page. Batches outside the token's unit scope are excluded.
Token ability: jurnal:baca
| Parameter | In | Type | Description |
status | query | string | Batch status.
DIEKSPOR DITERIMA DIBATALKAN |
|---|
sistem | query | string | Target system of the batch.
SAP ACCURATE |
|---|
page | query | integer | Page number, starting at 1. min 1 · default 1 |
|---|
Responses: 200 401 403 422 429
Response fields (200), 22 fields
| Field | Type |
data | array<object> |
data[].id | integer |
data[].nobatch | string |
data[].sistem | string
SAP ACCURATE |
data[].status | string
DIEKSPOR DITERIMA DIBATALKAN |
data[].format | string
CSV XLSX |
data[].tanggal_dari | string (date) |
data[].tanggal_sampai | string (date) |
data[].unit | string | null |
data[].jumlah_jurnal | integer |
data[].total_nominal | number |
data[].periode_belum_ditutup | array<string> |
data[].dibuat_at | string (date-time) | null |
data[].dibuat_oleh | string | null |
data[].diterima_at | string (date-time) | null |
data[].diterima_oleh | string | null |
data[].referensi_penerima | string | null |
meta | object |
meta.halaman | integer |
meta.total | integer |
meta.halaman_terakhir | integer |
meta.berikutnya | string (uri) | null |
GET /api/v1/batch/{id} Available
Export batch contents (snapshot taken when the batch was created). Documents and lines exactly as when the batch was created; later mapping changes do not alter them. cost_center is only filled on expense account lines.
Token ability: jurnal:baca
| Parameter | In | Type | Description |
id | path | integer required | Batch id from GET /batch. Batches outside the token's unit scope return 404. min 1 |
|---|
Responses: 200 401 403 404 429
Response fields (200), 36 fields
| Field | Type |
data | object |
data.id | integer |
data.nobatch | string |
data.sistem | string
SAP ACCURATE |
data.status | string
DIEKSPOR DITERIMA DIBATALKAN |
data.format | string
CSV XLSX |
data.tanggal_dari | string (date) |
data.tanggal_sampai | string (date) |
data.unit | string | null |
data.jumlah_jurnal | integer |
data.total_nominal | number |
data.periode_belum_ditutup | array<string> |
data.dibuat_at | string (date-time) | null |
data.dibuat_oleh | string | null |
data.diterima_at | string (date-time) | null |
data.diterima_oleh | string | null |
data.referensi_penerima | string | null |
data.profil | string | null |
data.dokumen | array<object> |
data.dokumen[].jurnal_id | integer |
data.dokumen[].referensi | string |
data.dokumen[].baris | array<object> |
data.dokumen[].baris[].nomor_baris | integer |
data.dokumen[].baris[].sisi | string
D K |
data.dokumen[].baris[].tanggal | string (date) |
data.dokumen[].baris[].referensi | string |
data.dokumen[].baris[].teks | string |
data.dokumen[].baris[].unit | string | null |
data.dokumen[].baris[].akun_internal | string | null |
data.dokumen[].baris[].akun | string | null |
data.dokumen[].baris[].jumlah | number |
data.dokumen[].baris[].kode_perusahaan | string | null |
data.dokumen[].baris[].profit_center | string | null |
data.dokumen[].baris[].cost_center | string | null |
data.dokumen[].baris[].departemen | string | null |
data.dokumen[].baris[].proyek | string | null |
POST /api/v1/batch/{id}/diterima Available
Mark a batch as received by the target system. Idempotent: a batch that is already DITERIMA is left unchanged. A DIBATALKAN batch returns 409. Recorded in the audit trail with the token name and owner.
Token ability: batch:konfirmasi
| Parameter | In | Type | Description |
id | path | integer required | Batch id from GET /batch. Batches outside the token's unit scope return 404. min 1 |
|---|
Optional JSON body: referensi (string | null, max 100).
Responses: 200 401 403 404 409 422 429
Response fields (200), 17 fields
| Field | Type |
data | object |
data.id | integer |
data.nobatch | string |
data.sistem | string
SAP ACCURATE |
data.status | string
DIEKSPOR DITERIMA DIBATALKAN |
data.format | string
CSV XLSX |
data.tanggal_dari | string (date) |
data.tanggal_sampai | string (date) |
data.unit | string | null |
data.jumlah_jurnal | integer |
data.total_nominal | number |
data.periode_belum_ditutup | array<string> |
data.dibuat_at | string (date-time) | null |
data.dibuat_oleh | string | null |
data.diterima_at | string (date-time) | null |
data.diterima_oleh | string | null |
data.referensi_penerima | string | null |
Ketertelusuran
Supplier plots, EUDR readiness, TTP, DDS data packs, EUDR screening reference layers and results, and DDS GeoJSON for the EUDR Information System (Sawitara Trace). Abilities trace:baca and trace:data-pribadi.
GET /api/v1/ketertelusuran/plot Available
Supplier plots with geolocation, STDB, legality and EUDR checklist. Owner NIK (national ID) is masked (1401********0001) unless the token also has trace:data-pribadi. Phone numbers, bank accounts, addresses and file paths are never sent. ringkasan covers all filtered results, not just this page.
Token ability: trace:baca
| Parameter | In | Type | Description |
unit | query | string | Unit code within the token's scope (including child units). Outside the scope returns 403. max 20 chars |
|---|
jenis | query | string | Plot type. Independent smallholders = PIHAK3 linked to a SWADAYA supplier.
INTI PLASMA PIHAK3 |
|---|
saringan | query | string | Only plots that do not yet meet a given checklist item.
tanpa_stdb belum_terverifikasi geolokasi_belum_lengkap belum_siap |
|---|
pemasok | query | string | Supplier key (pemasok.kunci from this endpoint or pemasok_kunci from /ketertelusuran/kesiapan). max 200 chars |
|---|
per_halaman | query | integer | Rows per page. min 1 · max 500 · default 100 |
|---|
page | query | integer | Page number, starting at 1. min 1 · default 1 |
|---|
Responses: 200 401 403 422 429
Response fields (200), 85 fields
| Field | Type |
data | array<object> |
data[].kode_plot | string |
data[].jenis | string
INTI PLASMA PIHAK3 |
data[].unit | string | null |
data[].luas_ha | number |
data[].tanggal_tanam | string (date) | null |
data[].pemasok | object |
data[].pemasok.kunci | string |
data[].pemasok.nama | string | null |
data[].pemasok.jenis | string
INTI KOPERASI PIHAK3 SWADAYA |
data[].pemilik | object | null |
data[].pemilik.nama | string | null |
data[].pemilik.nik | string | null |
data[].geolokasi | object |
data[].geolokasi.tipe | string | null
Point Polygon |
data[].geolokasi.wajib_poligon | boolean |
data[].geolokasi.lengkap | boolean |
data[].geolokasi.galat | array<string> |
data[].geolokasi.geometri | GeoJSON Point | Polygon | null |
data[].stdb | object |
data[].stdb.status | string
ADA BELUM TIDAK_BERLAKU |
data[].stdb.nomor | string | null |
data[].stdb.tanggal_terbit | string (date) | null |
data[].stdb.penerbit | string | null |
data[].stdb.ada_berkas | boolean |
data[].legalitas | object |
data[].legalitas.status_dokumen | string | null
LENGKAP DALAM_PROSES BELUM_LENGKAP |
data[].legalitas.alas_hak | object |
data[].legalitas.alas_hak.jenis | string | null
SHM SKT HGU LAINNYA |
data[].legalitas.alas_hak.nomor | string | null |
data[].legalitas.alas_hak.keterangan | string | null |
data[].legalitas.alas_hak.berlaku_sampai | string (date) | null |
data[].legalitas.alas_hak.kedaluwarsa | boolean |
data[].legalitas.alas_hak.ada_berkas | boolean |
data[].legalitas.verifikasi | object |
data[].legalitas.verifikasi.status | string
BELUM TERVERIFIKASI DITOLAK |
data[].legalitas.verifikasi.alasan | string | null |
data[].legalitas.verifikasi.oleh | string | null |
data[].legalitas.verifikasi.pada | string (date-time) | null |
data[].sertifikasi | object |
data[].sertifikasi.skema | string | null
ISPO RSPO TIDAK_ADA |
data[].sertifikasi.nomor | string | null |
data[].sertifikasi.berlaku_sampai | string (date) | null |
data[].skrining_deforestasi | object |
data[].skrining_deforestasi.hasil | string | null
BELUM LOLOS TIDAK_LOLOS |
data[].skrining_deforestasi.tanggal | string (date) | null |
data[].skrining_deforestasi.sumber | string | null
MANUAL LAPISAN |
data[].skrining_deforestasi.indikasi | string | null
TIDAK_TERINDIKASI PERLU_DITINJAU TERINDIKASI |
data[].skrining_deforestasi.tinjauan | string | null
BELUM DITERIMA DITOLAK |
data[].checklist | object |
data[].checklist.geolokasi_lengkap | boolean |
data[].checklist.stdb | boolean |
data[].checklist.legalitas_terverifikasi | boolean |
data[].checklist.skrining_lolos | boolean |
data[].siap_eudr | boolean |
meta | object |
meta.halaman | integer |
meta.per_halaman | integer |
meta.total | integer |
meta.halaman_terakhir | integer |
meta.berikutnya | string (uri) | null |
meta.nik | string
utuh disamarkan |
ringkasan | object |
ringkasan.jumlah_plot | integer |
ringkasan.luas_ha | number |
ringkasan.plot_wajib_stdb | integer |
ringkasan.plot_ber_stdb | integer |
ringkasan.persen_stdb | number | null |
ringkasan.plot_terverifikasi | integer |
ringkasan.persen_terverifikasi | number | null |
ringkasan.plot_wajib_poligon | integer |
ringkasan.persen_poligon_wajib | number | null |
ringkasan.persen_poligon | number | null |
ringkasan.persen_geolokasi_lengkap | number | null |
ringkasan.plot_siap | integer |
ringkasan.persen_siap | number | null |
ringkasan.plot_tidak_terindikasi | integer |
ringkasan.plot_perlu_ditinjau | integer |
ringkasan.plot_terindikasi | integer |
ringkasan.plot_belum_diskrining | integer |
filter | object |
filter.unit | string | null |
filter.jenis | string | null |
filter.saringan | string | null |
filter.pemasok | string | null |
GET /api/v1/ketertelusuran/kesiapan Available
EUDR readiness checklist per supplier or cooperative. Groups: plasma plots per cooperative (KOPERASI:), third-party plots per supplier master (PEMASOK:) or reference name (REF:), nucleus plots per division (INTI:). A null percentage means the denominator is zero, not 0% or 100%.
Token ability: trace:baca
| Parameter | In | Type | Description |
unit | query | string | Unit code within the token's scope (including child units). Outside the scope returns 403. max 20 chars |
|---|
Responses: 200 401 403 422 429
Response fields (200), 41 fields
| Field | Type |
data | array<object> |
data[].jumlah_plot | integer |
data[].luas_ha | number |
data[].plot_wajib_stdb | integer |
data[].plot_ber_stdb | integer |
data[].persen_stdb | number | null |
data[].plot_terverifikasi | integer |
data[].persen_terverifikasi | number | null |
data[].plot_wajib_poligon | integer |
data[].persen_poligon_wajib | number | null |
data[].persen_poligon | number | null |
data[].persen_geolokasi_lengkap | number | null |
data[].plot_siap | integer |
data[].persen_siap | number | null |
data[].plot_tidak_terindikasi | integer |
data[].plot_perlu_ditinjau | integer |
data[].plot_terindikasi | integer |
data[].plot_belum_diskrining | integer |
data[].pemasok_kunci | string |
data[].pemasok_nama | string | null |
data[].pemasok_jenis | string
INTI KOPERASI PIHAK3 SWADAYA |
total | object |
total.jumlah_plot | integer |
total.luas_ha | number |
total.plot_wajib_stdb | integer |
total.plot_ber_stdb | integer |
total.persen_stdb | number | null |
total.plot_terverifikasi | integer |
total.persen_terverifikasi | number | null |
total.plot_wajib_poligon | integer |
total.persen_poligon_wajib | number | null |
total.persen_poligon | number | null |
total.persen_geolokasi_lengkap | number | null |
total.plot_siap | integer |
total.persen_siap | number | null |
total.plot_tidak_terindikasi | integer |
total.plot_perlu_ditinjau | integer |
total.plot_terindikasi | integer |
total.plot_belum_diskrining | integer |
filter | object |
filter.unit | string | null |
GET /api/v1/ketertelusuran/ttp Available
Monthly TTP (traceability to plantation) summary. TTP = kg of FFB from completed weighbridge tickets linked to plots with screening LOLOS (passed), divided by all FFB kg in the period. Requires periode, or dari and sampai (at most 12 months).
Token ability: trace:baca
| Parameter | In | Type | Description |
periode | query | string | A single month YYYY-MM. pattern ^\d{4}-(0[1-9]|1[0-2])$ |
|---|
dari | query | string | First month YYYY-MM (together with sampai). pattern ^\d{4}-(0[1-9]|1[0-2])$ |
|---|
sampai | query | string | Last month YYYY-MM, at most 11 months after dari. pattern ^\d{4}-(0[1-9]|1[0-2])$ |
|---|
unit | query | string | Unit code within the token's scope (including child units). Outside the scope returns 403. max 20 chars |
|---|
Responses: 200 401 403 422 429
Response fields (200), 43 fields
| Field | Type |
data | array<object> |
data[].jumlah_tiket | integer |
data[].total_kg | number |
data[].terhubung_plot_kg | number |
data[].lolos_kg | number |
data[].persen_ttp | number | null |
data[].periode | string |
data[].per_kelompok | object |
data[].per_kelompok.INTI | object |
data[].per_kelompok.INTI.jumlah_tiket | integer |
data[].per_kelompok.INTI.total_kg | number |
data[].per_kelompok.INTI.terhubung_plot_kg | number |
data[].per_kelompok.INTI.lolos_kg | number |
data[].per_kelompok.INTI.persen_ttp | number | null |
data[].per_kelompok.PLASMA | object |
data[].per_kelompok.PLASMA.jumlah_tiket | integer |
data[].per_kelompok.PLASMA.total_kg | number |
data[].per_kelompok.PLASMA.terhubung_plot_kg | number |
data[].per_kelompok.PLASMA.lolos_kg | number |
data[].per_kelompok.PLASMA.persen_ttp | number | null |
data[].per_kelompok.PIHAK3 | object |
data[].per_kelompok.PIHAK3.jumlah_tiket | integer |
data[].per_kelompok.PIHAK3.total_kg | number |
data[].per_kelompok.PIHAK3.terhubung_plot_kg | number |
data[].per_kelompok.PIHAK3.lolos_kg | number |
data[].per_kelompok.PIHAK3.persen_ttp | number | null |
data[].per_kelompok.TIDAK_DIKETAHUI | object |
data[].per_kelompok.TIDAK_DIKETAHUI.jumlah_tiket | integer |
data[].per_kelompok.TIDAK_DIKETAHUI.total_kg | number |
data[].per_kelompok.TIDAK_DIKETAHUI.terhubung_plot_kg | number |
data[].per_kelompok.TIDAK_DIKETAHUI.lolos_kg | number |
data[].per_kelompok.TIDAK_DIKETAHUI.persen_ttp | number | null |
data[].stdb | object |
data[].stdb.plot_wajib_stdb | integer |
data[].stdb.plot_ber_stdb | integer |
data[].stdb.persen_plot_ber_stdb | number | null |
data[].stdb.kg_wajib_stdb | number |
data[].stdb.kg_ber_stdb | number |
data[].stdb.persen_kg_ber_stdb | number | null |
filter | object |
filter.dari | string |
filter.sampai | string |
filter.unit | string | null |
GET /api/v1/ketertelusuran/dds Preview
Due diligence (DDS) data pack per delivery order or contract. Preview: it contains the plots that supplied FFB to the mill during the production period (from weighbridge tickets), not physical segregation per shipment. Production period: the periode parameter; otherwise active mass-balance claim periods; otherwise the DO loading month or contract date. Requires nodo or nokontrak. For each plot's share and allocation within one shipment, use GET /ketertelusuran/dds-pengiriman.
Token ability: trace:baca
| Parameter | In | Type | Description |
nodo | query | string | Shipping DO number. Required when nokontrak is not given. max 35 chars |
|---|
nokontrak | query | string | Sales contract number (used when nodo is empty). max 35 chars |
|---|
periode | query | string | Force the production period YYYY-MM. pattern ^\d{4}-(0[1-9]|1[0-2])$ |
|---|
unit | query | string | Unit code within the token's scope (including child units). Outside the scope returns 403. max 20 chars |
|---|
Responses: 200 401 403 404 422 429
Response fields (200), 88 fields
| Field | Type |
data | object |
data.dokumen | object |
data.dokumen.jenis | string
DO KONTRAK |
data.dokumen.nodo | string | null |
data.dokumen.nokontrak | string |
data.dokumen.pembeli | string | null |
data.dokumen.komoditas | string | null |
data.dokumen.kode_hs | string | null
1511.10 1207.10 |
data.dokumen.negara_produksi | string = ID |
data.dokumen.kuantum_kg | number |
data.dokumen.tanggal_muat | string (date) | null |
data.dokumen.pelabuhan_muat | string | null |
data.dokumen.pelabuhan_bongkar | string | null |
data.dokumen.status | string | null |
data.periode_produksi | array<string> |
data.dasar_periode | string
parameter klaim_mass_balance tanggal_muat tanggal_kontrak |
data.catatan | string |
data.klaim_mass_balance | array<object> |
data.klaim_mass_balance[].tanggal | string (date) | null |
data.klaim_mass_balance[].periode | string |
data.klaim_mass_balance[].skema | string | null |
data.klaim_mass_balance[].produk | string | null |
data.klaim_mass_balance[].kg | number |
data.ttp | array<object> |
data.ttp[].jumlah_tiket | integer |
data.ttp[].total_kg | number |
data.ttp[].terhubung_plot_kg | number |
data.ttp[].lolos_kg | number |
data.ttp[].persen_ttp | number | null |
data.ttp[].periode | string |
data.ttp[].per_kelompok | object |
data.ttp[].per_kelompok.INTI | object |
data.ttp[].per_kelompok.INTI.jumlah_tiket | integer |
data.ttp[].per_kelompok.INTI.total_kg | number |
data.ttp[].per_kelompok.INTI.terhubung_plot_kg | number |
data.ttp[].per_kelompok.INTI.lolos_kg | number |
data.ttp[].per_kelompok.INTI.persen_ttp | number | null |
data.ttp[].per_kelompok.PLASMA | object |
data.ttp[].per_kelompok.PLASMA.jumlah_tiket | integer |
data.ttp[].per_kelompok.PLASMA.total_kg | number |
data.ttp[].per_kelompok.PLASMA.terhubung_plot_kg | number |
data.ttp[].per_kelompok.PLASMA.lolos_kg | number |
data.ttp[].per_kelompok.PLASMA.persen_ttp | number | null |
data.ttp[].per_kelompok.PIHAK3 | object |
data.ttp[].per_kelompok.PIHAK3.jumlah_tiket | integer |
data.ttp[].per_kelompok.PIHAK3.total_kg | number |
data.ttp[].per_kelompok.PIHAK3.terhubung_plot_kg | number |
data.ttp[].per_kelompok.PIHAK3.lolos_kg | number |
data.ttp[].per_kelompok.PIHAK3.persen_ttp | number | null |
data.ttp[].per_kelompok.TIDAK_DIKETAHUI | object |
data.ttp[].per_kelompok.TIDAK_DIKETAHUI.jumlah_tiket | integer |
data.ttp[].per_kelompok.TIDAK_DIKETAHUI.total_kg | number |
data.ttp[].per_kelompok.TIDAK_DIKETAHUI.terhubung_plot_kg | number |
data.ttp[].per_kelompok.TIDAK_DIKETAHUI.lolos_kg | number |
data.ttp[].per_kelompok.TIDAK_DIKETAHUI.persen_ttp | number | null |
data.ttp[].stdb | object |
data.ttp[].stdb.plot_wajib_stdb | integer |
data.ttp[].stdb.plot_ber_stdb | integer |
data.ttp[].stdb.persen_plot_ber_stdb | number | null |
data.ttp[].stdb.kg_wajib_stdb | number |
data.ttp[].stdb.kg_ber_stdb | number |
data.ttp[].stdb.persen_kg_ber_stdb | number | null |
data.plot | object |
data.plot.type | string = FeatureCollection |
data.plot.features | array<object> |
data.plot.features[].type | string = Feature |
data.plot.features[].geometry | GeoJSON Point | Polygon | null |
data.plot.features[].properties | object |
data.plot.features[].properties.kode_plot | string |
data.plot.features[].properties.jenis | string
INTI PLASMA PIHAK3 |
data.plot.features[].properties.luas_ha | number |
data.plot.features[].properties.tanggal_tanam | string (date) | null |
data.plot.features[].properties.status_legalitas | string | null |
data.plot.features[].properties.no_stdb | string | null |
data.plot.features[].properties.jenis_alas_hak | string | null |
data.plot.features[].properties.status_verifikasi_legalitas | string | null |
data.plot.features[].properties.sertifikasi | string | null |
data.plot.features[].properties.nomor_sertifikat | string | null |
data.plot.features[].properties.hasil_skrining_deforestasi | string | null |
data.plot.features[].properties.tanggal_skrining | string (date) | null |
data.plot.features[].properties.produksi_tbs_kg | number |
data.plot.features[].properties.periode | array<string> |
data.plot.features[].properties.status_stdb | string | null
ADA BELUM TIDAK_BERLAKU |
data.plot.features[].properties.geolokasi_lengkap | boolean | null |
data.plot.features[].properties.legalitas_terverifikasi | boolean | null |
data.plot.features[].properties.siap_eudr | boolean | null |
filter | object |
filter.unit | string | null |
GET /api/v1/ketertelusuran/dds-pengiriman Preview
Per-shipment DDS pack with a mass balance allocation. Preview, mass balance (not physical segregation). For one CPO or palm kernel DO: the lot's production window (dari/sampai parameters; otherwise the DO's active mass-balance claim periods; otherwise the shipping mill's latest LHP production days up to the loading date that cover the shipment volume; if the LHP is insufficient, TRACE_JENDELA_PRODUKSI_HARI days up to the loading date), then each plot's share = FFB kg of that plot from completed weighbridge tickets in the window divided by all FFB kg in the window. Product allocated to a plot = share x shipment volume; FFB allocated = allocated product / window extraction rate. Readiness is SIAP (ready) only if all FFB kg in the window came from EUDR-ready plots. DOs other than CPO/PALM_KERNEL return 422; a DO whose shipping mill is outside the token's scope returns 404.
Token ability: trace:baca
| Parameter | In | Type | Description |
nodo | query | string required | Shipping DO number for CPO or palm kernel. max 35 chars |
|---|
dari | query | string (date) | Force the start of the production window YYYY-MM-DD (together with sampai, at most 92 days). |
|---|
sampai | query | string (date) | Force the end of the production window YYYY-MM-DD. |
|---|
unit | query | string | Unit code within the token's scope (including child units). Outside the scope returns 403. max 20 chars |
|---|
Responses: 200 401 403 404 422 429
Response fields (200), 93 fields
| Field | Type |
data | object |
data.pengiriman | object |
data.pengiriman.nodo | string |
data.pengiriman.nokontrak | string |
data.pengiriman.pembeli | string | null |
data.pengiriman.komoditas | string
CPO PALM_KERNEL |
data.pengiriman.produk | string
CPO PK |
data.pengiriman.kode_hs | string
1511.10 1207.10 |
data.pengiriman.negara_produksi | string = ID |
data.pengiriman.pks | object | null |
data.pengiriman.pks.kode | string |
data.pengiriman.pks.nama | string | null |
data.pengiriman.volume_kg | number |
data.pengiriman.basis_volume | string
REALISASI TARGET |
data.pengiriman.tanggal_muat | string (date) |
data.pengiriman.pelabuhan_muat | string | null |
data.pengiriman.pelabuhan_bongkar | string | null |
data.pengiriman.status | string | null |
data.metode | object |
data.metode.model | string = MASS_BALANCE |
data.metode.alokasi | string = PROPORSIONAL_JENDELA_PRODUKSI |
data.metode.segregasi_fisik | boolean = false |
data.metode.status | string = PRATINJAU |
data.metode.catatan | string |
data.jendela_produksi | object |
data.jendela_produksi.dari | string (date) |
data.jendela_produksi.sampai | string (date) |
data.jendela_produksi.hari | integer |
data.jendela_produksi.dasar | string
parameter klaim_mass_balance produksi_lhp jendela_hari |
data.jendela_produksi.produksi_produk_kg | number | null |
data.jendela_produksi.tbs_diolah_kg | number | null |
data.jendela_produksi.rendemen_persen | number | null |
data.jendela_produksi.sumber_rendemen | string | null
LHP KONFIGURASI |
data.jendela_produksi.cakupan_volume_persen | number | null |
data.input_tbs | object |
data.input_tbs.jumlah_tiket | integer |
data.input_tbs.total_kg | number |
data.input_tbs.terhubung_plot_kg | number |
data.input_tbs.lolos_kg | number |
data.input_tbs.siap_eudr_kg | number |
data.input_tbs.persen_tertelusur_plot | number | null |
data.input_tbs.persen_ttp | number | null |
data.input_tbs.persen_siap_eudr | number | null |
data.alokasi | object |
data.alokasi.tertelusur_plot_kg | number | null |
data.alokasi.tidak_tertelusur_kg | number | null |
data.alokasi.siap_eudr_kg | number | null |
data.kesiapan_eudr | object |
data.kesiapan_eudr.status | string
SIAP BELUM_SIAP TIDAK_ADA_DATA |
data.kesiapan_eudr.plot_kontributor | integer |
data.kesiapan_eudr.plot_siap | integer |
data.kesiapan_eudr.alasan | array<string> |
data.klaim_mass_balance | array<object> |
data.klaim_mass_balance[].tanggal | string (date) | null |
data.klaim_mass_balance[].periode | string |
data.klaim_mass_balance[].skema | string | null |
data.klaim_mass_balance[].produk | string | null |
data.klaim_mass_balance[].kg | number |
data.verifikasi | object | null |
data.verifikasi.kode | string |
data.verifikasi.url | string (uri) |
data.plot | object |
data.plot.type | string = FeatureCollection |
data.plot.features | array<object> |
data.plot.features[].type | string = Feature |
data.plot.features[].geometry | GeoJSON Point | Polygon | null |
data.plot.features[].properties | object |
data.plot.features[].properties.kode_plot | string |
data.plot.features[].properties.jenis | string
INTI PLASMA PIHAK3 |
data.plot.features[].properties.luas_ha | number |
data.plot.features[].properties.tanggal_tanam | string (date) | null |
data.plot.features[].properties.status_legalitas | string | null |
data.plot.features[].properties.no_stdb | string | null |
data.plot.features[].properties.jenis_alas_hak | string | null |
data.plot.features[].properties.status_verifikasi_legalitas | string | null |
data.plot.features[].properties.sertifikasi | string | null |
data.plot.features[].properties.nomor_sertifikat | string | null |
data.plot.features[].properties.hasil_skrining_deforestasi | string | null |
data.plot.features[].properties.tanggal_skrining | string (date) | null |
data.plot.features[].properties.sumber_skrining | string | null
MANUAL LAPISAN |
data.plot.features[].properties.indikasi_skrining | string | null
TIDAK_TERINDIKASI PERLU_DITINJAU TERINDIKASI |
data.plot.features[].properties.tbs_jendela_kg | number |
data.plot.features[].properties.porsi_persen | number |
data.plot.features[].properties.alokasi_produk_kg | number |
data.plot.features[].properties.alokasi_tbs_kg | number | null |
data.plot.features[].properties.status_stdb | string | null
ADA BELUM TIDAK_BERLAKU |
data.plot.features[].properties.geolokasi_lengkap | boolean | null |
data.plot.features[].properties.legalitas_terverifikasi | boolean | null |
data.plot.features[].properties.siap_eudr | boolean | null |
filter | object |
filter.unit | string | null |
filter.dari | string (date) | null |
filter.sampai | string (date) | null |
GET /api/v1/ketertelusuran/lapisan Preview
EUDR screening reference layers (metadata). Preview. Layers uploaded by staff for EUDR screening: forest cover as of 31 Dec 2020, forest/protected areas, and peat, with source, licence, reference date, version, SHA-256 of the original file, and vertex counts before/after simplification. Geometry is not returned. Only active layers by default; semua=1 includes archived versions.
Token ability: trace:baca
| Parameter | In | Type | Description |
unit | query | string | Unit code within the token's scope (including child units). Outside the scope returns 403. max 20 chars |
|---|
semua | query | boolean | 1 = include archived layers (old versions). |
|---|
Responses: 200 401 403 422 429
Response fields (200), 22 fields
| Field | Type |
data | array<object> |
data[].id | integer |
data[].jenis | string
HUTAN_2020 KAWASAN_HUTAN GAMBUT |
data[].nama | string |
data[].sumber | string |
data[].lisensi | string | null |
data[].tanggal_data | string (date) | null |
data[].seri | string | null |
data[].versi | integer |
data[].aktif | boolean |
data[].unit | string | null |
data[].format | string | null
GEOJSON KML SHP |
data[].sha256 | string | null |
data[].jumlah_poligon | integer |
data[].jumlah_titik | integer | null |
data[].jumlah_titik_asal | integer | null |
data[].toleransi_m | number | null |
data[].luas_ha | number | null |
data[].diunggah_pada | string (date-time) | null |
filter | object |
filter.unit | string | null |
filter.semua | boolean |
GET /api/v1/ketertelusuran/skrining Preview
Latest EUDR screening result per plot. Preview. Overlap of each plot with every active reference layer (area, percent of plot area, nearest distance to the layer boundary), indication status (TIDAK_TERINDIKASI = no indication, PERLU_DITINJAU = needs review, TERINDIKASI = overlap indicated, by threshold), layer versions used, screening time, and staff review. This is an INDICATION based on uploaded layers, not a deforestation-free statement. Unscreened plots appear with skrining null.
Token ability: trace:baca
| Parameter | In | Type | Description |
unit | query | string | Unit code within the token's scope (including child units). Outside the scope returns 403. max 20 chars |
|---|
status | query | string | TIDAK_TERINDIKASI, PERLU_DITINJAU, TERINDIKASI, or BELUM_DISKRINING (not screened).
TIDAK_TERINDIKASI PERLU_DITINJAU TERINDIKASI BELUM_DISKRINING |
|---|
tinjauan | query | string | BELUM (not reviewed), DITERIMA (accepted), or DITOLAK (rejected).
BELUM DITERIMA DITOLAK |
|---|
per_halaman | query | integer | Rows per page. min 1 · max 500 · default 100 |
|---|
page | query | integer | Page number, starting at 1. min 1 · default 1 |
|---|
Responses: 200 401 403 422 429
Response fields (200), 51 fields
| Field | Type |
data | array<object> |
data[].kode_plot | string |
data[].jenis | string
INTI PLASMA PIHAK3 |
data[].unit | string | null |
data[].luas_ha | number |
data[].hasil_skrining | string | null
BELUM LOLOS TIDAK_LOLOS |
data[].sumber_skrining | string | null
MANUAL LAPISAN |
data[].skrining | object | null |
data[].skrining.id | integer |
data[].skrining.status | string
TIDAK_TERINDIKASI PERLU_DITINJAU TERINDIKASI |
data[].skrining.tinjauan | string
BELUM DITERIMA DITOLAK |
data[].skrining.hasil_efektif | string
LOLOS TIDAK_LOLOS BELUM |
data[].skrining.metode | string
POLIGON TITIK_RADIUS |
data[].skrining.dijalankan_pada | string (date-time) | null |
data[].skrining.ditinjau_pada | string (date-time) | null |
data[].skrining.kedaluwarsa | boolean |
data[].skrining.catatan | array<string> |
data[].skrining.lapisan | array<object> |
data[].skrining.lapisan[].lapisan_id | integer |
data[].skrining.lapisan[].jenis | string |
data[].skrining.lapisan[].nama | string |
data[].skrining.lapisan[].versi | integer |
data[].skrining.lapisan[].luas_tumpang_ha | number |
data[].skrining.lapisan[].persen | number |
data[].skrining.lapisan[].jarak_m | number | null |
data[].skrining.lapisan[].status | string
TIDAK_TERINDIKASI PERLU_DITINJAU TERINDIKASI |
data[].skrining.radius_m | number | null |
data[].skrining.luas_plot_ha | number |
data[].skrining.alasan_tinjauan | string | null |
data[].skrining.ada_bukti | boolean |
meta | object |
meta.halaman | integer |
meta.per_halaman | integer |
meta.total | integer |
meta.halaman_terakhir | integer |
meta.berikutnya | string (uri) | null |
ringkasan | object |
ringkasan.TIDAK_TERINDIKASI | integer |
ringkasan.PERLU_DITINJAU | integer |
ringkasan.TERINDIKASI | integer |
ringkasan.BELUM_DISKRINING | integer |
ambang | object |
ambang.persen | number |
ambang.ha | number |
ambang.jarak_m | number |
ambang.radius_titik_m | number | null |
ambang.jarak_cari_m | number |
filter | object |
filter.unit | string | null |
filter.status | string | null |
filter.tinjauan | string | null |
GET /api/v1/ketertelusuran/dds-pengiriman/eudr Preview
Per-shipment DDS GeoJSON for the EUDR Information System, with a validation report. Preview. One CPO or palm kernel DO becomes one FeatureCollection (one commodity/HS) per the EUDR GeoJSON File Description: one Feature per contributing plot (from the mass balance allocation of GET /ketertelusuran/dds-pengiriman), properties ProducerCountry "ID", ProductionPlace (plot code), Area (ha), and ProducerName (supplier name; tanpa_nama=1 to omit it). Plots <= 4 ha may be Points, > 4 ha must be Polygons. Validation: geometry type, closed ring, no self-intersection, no holes, no coinciding vertices after truncation to 6 decimals, polygon area matching the recorded area (EUDR_TOLERANSI_LUAS_PERSEN tolerance), all window FFB linked to plots, size <= 25 MB. geojson is null when validation fails. The official specification is listed in ringkasan.spesifikasi; test an upload to the EUDR Information System before relying on it.
Token ability: trace:baca
| Parameter | In | Type | Description |
nodo | query | string required | Shipping DO number for CPO or palm kernel. max 35 chars |
|---|
tanpa_nama | query | boolean | 1 = omit ProducerName (smallholder personal data). |
|---|
unit | query | string | Unit code within the token's scope (including child units). Outside the scope returns 403. max 20 chars |
|---|
Responses: 200 401 403 404 422 429
Response fields (200), 40 fields
| Field | Type |
data | object |
data.ringkasan | object |
data.ringkasan.nodo | string |
data.ringkasan.komoditas | string |
data.ringkasan.kode_hs | string |
data.ringkasan.negara_produksi | string = ID |
data.ringkasan.volume_kg | number |
data.ringkasan.tanggal_muat | string (date) |
data.ringkasan.pks | string | null |
data.ringkasan.jendela_produksi | object |
data.ringkasan.persen_tertelusur_plot | number | null |
data.ringkasan.persen_siap_eudr | number | null |
data.ringkasan.jumlah_fitur | integer |
data.ringkasan.jumlah_plot | integer |
data.ringkasan.indikasi | object |
data.ringkasan.lapisan | array<string> |
data.ringkasan.ukuran_bita | integer |
data.ringkasan.status | string = PRATINJAU |
data.ringkasan.catatan | string |
data.ringkasan.spesifikasi | array<object> |
data.ringkasan.spesifikasi[].judul | string |
data.ringkasan.spesifikasi[].url | string (uri) |
data.validasi | object |
data.validasi.lolos | boolean |
data.validasi.galat | array<string> |
data.validasi.peringatan | array<string> |
data.validasi.galat_plot | integer |
data.geojson | object | null |
data.geojson.type | string = FeatureCollection |
data.geojson.features | array<object> |
data.geojson.features[].type | string = Feature |
data.geojson.features[].properties | object |
data.geojson.features[].properties.ProducerName | string |
data.geojson.features[].properties.ProducerCountry | string = ID |
data.geojson.features[].properties.ProductionPlace | string |
data.geojson.features[].properties.Area | number |
data.geojson.features[].geometry | GeoJSON Point | Polygon |
filter | object |
filter.unit | string | null |
filter.tanpa_nama | boolean |