Dokumentasi API Sahkan
Integrasikan tanda tangan digital dan e-Meterai ke dalam aplikasi Anda dengan REST API yang sederhana dan prediktif.
Pendahuluan
API Sahkan diorganisir seputar REST. Ia menggunakan URL yang prediktif, menerima body ber-format JSON, mengembalikan respons ber-format JSON, dan memakai kode status HTTP standar.
https://api.sahkan.co.id/v1Autentikasi
Autentikasi menggunakan API key. Sertakan key Anda pada header Authorization di setiap permintaan. Jaga kerahasiaan key Anda—jangan pernah membagikannya di sisi klien.
Authorization: Bearer sk_live_xxxxxxxxxxxxxxxx/documents/signBuat Permintaan Tanda Tangan
Kirim dokumen untuk ditandatangani oleh satu atau lebih penandatangan. Opsional membubuhkan e-Meterai secara otomatis.
Parameter
| Nama | Tipe | Keterangan |
|---|---|---|
document_urlwajib | string | URL dokumen PDF yang akan ditandatangani. |
signer.emailwajib | string | Email penandatangan. |
e_meterai | boolean | Bubuhkan e-Meterai resmi. Default: false. |
webhook | string | URL untuk menerima notifikasi peristiwa. |
1curl https://api.sahkan.co.id/v1/documents/sign \2 -H "Authorization: Bearer sk_live_..." \3 -H "Content-Type: application/json" \4 -d '{5 "document_url": "https://.../kontrak.pdf",6 "signer": { "email": "budi@company.id" },7 "e_meterai": true,8 "webhook": "https://app.company.id/hooks"9 }'1{2 "id": "doc_8a2f...",3 "status": "pending",4 "signing_url": "https://app.sahkan.co.id/s/8a2f",5 "e_meterai": true,6 "created_at": "2026-07-01T10:42:00Z"7}/documents/{id}Ambil Dokumen
Ambil status terkini sebuah dokumen beserta ringkasan audit trail.
Parameter
| Nama | Tipe | Keterangan |
|---|---|---|
idwajib | string | ID dokumen yang dikembalikan saat pembuatan. |
1curl https://api.sahkan.co.id/v1/documents/doc_8a2f \2 -H "Authorization: Bearer sk_live_..."1{2 "id": "doc_8a2f...",3 "status": "signed",4 "signer": { "email": "budi@company.id" },5 "signed_at": "2026-07-01T10:51:00Z",6 "audit_trail_url": "https://.../audit/8a2f"7}/e-meterai/purchaseBeli e-Meterai
Beli kuota e-Meterai resmi. Mendukung pembelian massal untuk kebutuhan volume tinggi.
Parameter
| Nama | Tipe | Keterangan |
|---|---|---|
quantitywajib | integer | Jumlah e-Meterai yang dibeli. |
1curl https://api.sahkan.co.id/v1/e-meterai/purchase \2 -H "Authorization: Bearer sk_live_..." \3 -H "Content-Type: application/json" \4 -d '{ "quantity": 100 }'1{2 "order_id": "ord_2c91...",3 "quantity": 100,4 "balance": 100,5 "status": "completed"6}/verify/{code}Verifikasi Dokumen
Periksa keaslian dan integritas dokumen menggunakan kode verifikasi atau ID dari QR.
Parameter
| Nama | Tipe | Keterangan |
|---|---|---|
codewajib | string | Kode verifikasi dokumen. |
1curl https://api.sahkan.co.id/v1/verify/IDM-2026-044311{2 "valid": true,3 "document": "Perjanjian Kerja Sama",4 "signer": "Adnan Wijaya",5 "e_meterai": "IDM-2026-04431",6 "verified_at": "2026-07-01T11:00:00Z"7}Webhook
Daftarkan URL webhook untuk menerima notifikasi real-time saat status dokumen berubah—misalnya saat dokumen dibuka, ditandatangani, atau selesai. Setiap event dikirim sebagai POST ber-format JSON.
1{2 "event": "document.signed",3 "document_id": "doc_8a2f...",4 "signed_at": "2026-07-01T10:51:00Z"5}Kode Error
Sahkan menggunakan kode status HTTP konvensional. Kode 2xx menandakan sukses, 4xx menandakan kesalahan dari permintaan, dan 5xx menandakan kesalahan server.
| 400 | bad_request | Parameter permintaan tidak valid atau kurang. |
| 401 | unauthorized | API key tidak ada atau tidak valid. |
| 402 | insufficient_meterai | Saldo e-Meterai tidak mencukupi. |
| 404 | not_found | Sumber daya yang diminta tidak ditemukan. |
| 429 | rate_limited | Terlalu banyak permintaan. Coba lagi nanti. |
| 500 | server_error | Terjadi kesalahan pada sisi server. |
Butuh API key?
Daftar untuk mendapatkan kredensial, atau bicarakan kebutuhan integrasi Anda dengan tim kami.