RESTful API Tanda Tangan Elektronik
Dokumentasi lengkap untuk RESTful API Tanda Tangan Elektronik dari Optima Solution. API ini menyediakan layanan untuk autentikasi, manajemen profil, enkripsi/dekripsi data, dan generasi QR Code.
Base URL
API Information
- Version 2.1.0
- Contact [email protected]
- License Apache 2.0
- Terms of Service https://optimasolution.co.id/terms
đ Security Requirements
Sebagian besar endpoint memerlukan autentikasi menggunakan Bearer Token dan X-Secret-Key header untuk validasi enkripsi.
Authentication
API ini menggunakan dua jenis autentikasi untuk keamanan maksimal:
Bearer Token Authentication
JWT token yang diperoleh setelah login berhasil
Secret Key Authentication
Secret key untuk validasi enkripsi
â ī¸ Important Security Note
Kedua header autentikasi diperlukan untuk mengakses endpoint yang dilindungi. Pastikan untuk menjaga kerahasiaan token dan secret key Anda.
đ Enkripsi Data Dokumen
Gambaran Umum
Enkripsi ini digunakan untuk mengamankan data dokumen (seperti slip gaji, nomor dokumen, nilai amount, dll) sebelum dikirim atau digunakan oleh client. Sistem menggunakan algoritma AES-256-CBC dan menghasilkan output dalam format Base64.
Alur Kerja Enkripsi
encrypt() melakukan proses enkripsi:Parameter yang Diperlukan
Fungsi enkripsi memerlukan 2 parameter utama:
1. Secret Key
- key String - Secret key unik milik setiap user, digunakan sebagai basis untuk menghasilkan encryption key dan IV
2. Data
Object/Array yang berisi informasi dokumen yang akan dienkripsi:
- name String - Nama penerima/pemilik dokumen
- document_name String - Nama/jenis dokumen (contoh: "SLIP GAJI BULAN JANUARI")
- document_number String - Nomor unik dokumen (contoh: "0123/I/2025")
- document_date String - Tanggal dokumen (format: "DD-MM-YYYY")
- amount Integer - Nilai nominal/jumlah dalam dokumen
Contoh Data:
âšī¸ Catatan Penting
âĸ IV (Initialization Vector) dibuat dari 16 byte pertama hasil hash SHA-256 dari secret key
âĸ Setiap user memiliki secret key yang berbeda, sehingga hasil enkripsi akan berbeda
âĸ Data dikonversi ke JSON sebelum dienkripsi untuk memastikan format yang konsisten
Implementasi Fungsi encrypt()
Berikut adalah contoh implementasi fungsi enkripsi dalam berbagai bahasa pemrograman:
Alur endpoint testEncrypt
Implementasi Endpoint testEncrypt()
Endpoint ini digunakan untuk testing enkripsi dengan data sampel atau data yang dikirim oleh client: