API Envelopes
API envelopes mengirim dokumen untuk ditandatangani dari sistem Anda sendiri. Envelope adalah yang di aplikasi disebut permintaan tanda tangan: hal yang sama, dengan nama API-nya. Satu permintaan tanda tangan memuat hingga 10 dokumen, orang yang menandatangani atau menerimanya, dan kolom yang diisi setiap penanda tangan.
AutomaDoc Sign mencatat tanda tangan elektronik sederhana dengan jejak audit: siapa yang menandatangani, kapan, dari mana, dan sidik jari (SHA-256) setiap file. Ini bukan tanda tangan digital berbasis sertifikat. Beberapa dokumen (surat wasiat, urusan keluarga, berkas pengadilan) dan beberapa sistem resmi memerlukan bentuk tanda tangan lain, jadi periksa apa yang dibutuhkan dokumen Anda.
Autentikasi
Section titled “Autentikasi”Setiap route memerlukan kunci API perusahaan (diawali amk_), di salah satu header berikut:
X-Webhook-API-Key: amk_…Authorization: Bearer amk_…Admin membuat kunci API perusahaan di Portal Perusahaan, pada Perusahaan → Kunci API (lihat panduan memulai API). Kunci milik sebuah template hanya membuka template itu, bukan permintaan tanda tangan perusahaan Anda: kunci itu ditolak dengan API_KEY_INVALID. Sebuah kunci dapat melihat setiap permintaan tanda tangan milik perusahaannya, baik yang dibuat lewat API maupun di portal, dan tidak dapat melihat apa pun milik perusahaan lain (ENVELOPE_NOT_FOUND).
Ada dua batas laju:
- 60 request per menit per kunci, untuk semua route envelope.
- 600 dokumen per menit per perusahaan, dipakai bersama dengan API dokumen dan HTTP Trigger. Setiap pembuatan dihitung satu per dokumen di dalamnya.
Jika salah satunya terlampaui, jawabannya 429 dengan RATE_LIMITED.
Cara permintaan tanda tangan dikirim
Section titled “Cara permintaan tanda tangan dikirim”POST /api/v1/envelopesmenyimpan dokumen Anda dan langsung menjawab201, dengan permintaan tanda tangan yang masih berstatusdraftdan setiap dokumenprepareState: "pending".- AutomaDoc menyiapkan setiap dokumen: file Word, Excel, dan PowerPoint menjadi PDF, dan teksnya dicari untuk menemukan anchor dan tag
[[…]]Anda. Dokumen yang masih tertunda setelah 30 menit gagal dengantimeout. - Setelah dokumen terakhir siap, kolom dari anchor dan tag ditempatkan, dan dengan
send: true, permintaan tanda tangan dikirim. Penerima email yang sedang mendapat giliran menerima undangannya. - Baca
GET /api/v1/envelopes/:iduntuk memantaunya. Jika tidak dapat dikirim, statusnya tetapdraftdansendErrormenjelaskan alasannya.
API publik tidak memiliki panggilan kirim yang terpisah: permintaan tanda tangan yang dibuat tanpa send: true tetap menjadi draf. Draf yang gagal dikirim juga tidak dapat dicoba ulang lewat API; buat permintaan tanda tangan baru. Draf yang tidak diubah siapa pun selama 30 hari dihapus.
Membuat permintaan tanda tangan
Section titled “Membuat permintaan tanda tangan”POST https://api.automadoc.cc/api/v1/envelopesKirim body sebagai JSON (Content-Type: application/json, paling besar 14 MB), atau sebagai multipart/form-data dengan bagian envelope yang berisi JSON yang sama ditambah satu bagian untuk setiap file (paling besar 26 MB untuk seluruh request).
| Field | Wajib | Fungsinya |
|---|---|---|
title |
ya | Ditampilkan kepada penanda tangan dan di email. Hingga 200 karakter. |
message |
tidak | Catatan untuk penerima, hingga 1.000 karakter. |
documents |
ya | 1 sampai 10 dokumen, berurutan (lihat di bawah). |
recipients |
ya | 1 sampai 20 penerima (lihat di bawah). |
fields |
tidak | Kolom yang ditempatkan berdasarkan koordinat (lihat di bawah). Paling banyak 500. |
anchors |
tidak | Kolom yang ditempatkan relatif terhadap teks di dokumen (lihat di bawah). Paling banyak 50. |
autoTags |
tidak | true menempatkan kolom dari tag [[…]] yang ditulis di dokumen (lihat di bawah). |
send |
tidak | true mengirim permintaan tanda tangan begitu dokumen sudah disiapkan dan kolom ditempatkan. Jika tidak, statusnya tetap draf. |
locale |
tidak | Bahasa email dan halaman tanda tangan: en, zh, id, es, vi, th, atau ja. Nilai lain diabaikan. |
timezone |
tidak | Zona waktu IANA (Asia/Jakarta) untuk tanggal yang ditulis di dokumen dan sertifikat. Bawaan UTC. |
expiryDays |
tidak | Jumlah hari sejak dikirim sampai permintaan tanda tangan kedaluwarsa: 1 sampai 120, bawaan 30. |
reminders |
tidak | { "everyDays": 3, "max": 3 } (bawaan; everyDays 1 sampai 30, max 0 sampai 10), atau false untuk tanpa pengingat. |
appendCertificate |
tidak | Bawaan true: setiap PDF bertanda tangan diakhiri dengan sertifikat penyelesaian. Sertifikat juga selalu dapat diunduh secara terpisah. |
Dokumen
Section titled “Dokumen”Setiap dokumen adalah tepat salah satu dari:
| Field | Isinya |
|---|---|
base64 |
Byte file dalam base64 (awalan data: diterima). Semua dokumen base64 dalam satu request paling banyak 10 MB setelah didekode; kirim file yang lebih besar sebagai multipart. |
file |
Nama bagian dalam request multipart yang berisi file. |
generationId |
Dokumen yang sudah selesai dibuat AutomaDoc untuk perusahaan Anda (generationId dari API dokumen, atau dokumen lain yang dibuat dan masih disimpan). File-nya disalin ke dalam permintaan tanda tangan. |
name bersifat opsional: bawaannya nama file dari bagian multipart, nama file yang dibuat, atau “Document 1”, “Document 2”. Akhiran .pdf, .docx, .xlsx, atau .pptx dibuang. File boleh berupa PDF, Word, Excel, atau PowerPoint, dikenali dari isinya, tidak pernah dari namanya. Setiap file paling besar 25 MB, dan semua file dalam satu permintaan tanda tangan paling besar 50 MB bersama-sama.
Penerima
Section titled “Penerima”| Field | Wajib | Fungsinya |
|---|---|---|
key |
ya | Nama Anda sendiri untuk penerima ini (client), dipakai oleh fields dan anchors dan dikembalikan di setiap respons. 1 sampai 60 huruf, angka, _, -, atau ., unik dalam request. |
role |
ya | signer (mengisi kolom dan menandatangani) atau cc (menerima hasil yang sudah ditandatangani). |
name |
ya | Hingga 120 karakter. |
email |
dengan reach: "email" |
Alamat tujuan undangan. Opsional untuk penerima tautan. |
reach |
tidak | "email" (bawaan): AutomaDoc mengirim undangan lewat email saat giliran penerima ini tiba. "link": tidak ada email yang dikirim, dan respons pembuatan mengembalikan signingUrl untuk Anda sampaikan sendiri. |
routingOrder |
tidak | 1 sampai 100, bawaan 1. Penerima dengan nomor yang sama menandatangani bersamaan; nomor yang lebih tinggi menunggu sampai semua nomor yang lebih rendah selesai. |
accessCode |
tidak | 6 sampai 128 karakter yang harus diketik penerima sebelum dapat melihat dokumen. Lima kali salah kode akan mengunci tautan. Sampaikan kode ini sendiri kepada penerima, tidak dalam pesan yang sama dengan tautannya. |
slot |
tidak | Dengan autoTags: nama peran yang dipakai di tag (Client) yang diisi penerima ini. |
Kolom berdasarkan koordinat
Section titled “Kolom berdasarkan koordinat”| Field | Wajib | Fungsinya |
|---|---|---|
document |
ya | Indeks dokumen di documents, mulai dari 0. |
recipient |
ya | key seorang penerima. Hanya penanda tangan yang memiliki kolom. |
type |
ya | signature, initials, name, date_signed, text, checkbox, company, atau email. |
page |
ya | Halamannya, mulai dari 1. |
x, y, w, h |
ya | Posisi dan ukuran dalam poin (1/72 inci), diukur dari sudut kiri atas halaman sebagaimana ditampilkan (setelah rotasi, jika ada). Kolom harus selebar dan setinggi minimal 8 poin dan berada di dalam halaman. |
required |
tidak | Bawaan true. |
label |
tidak | Petunjuk yang ditampilkan kepada penanda tangan, hingga 100 karakter. |
options |
tidak | Untuk kolom teks: maxLength (1 sampai 1.000), validate ("number" atau "email"), fontSize (6 sampai 72, diperkecil agar muat). |
name dan email sudah berisi nama dan alamat penerima, yang dapat diubah penanda tangan; date_signed diisi dengan tanggal penandatanganan, ditulis dalam zona waktu permintaan tanda tangan. Halaman dan posisi diperiksa terhadap dokumen yang sudah disiapkan saat permintaan tanda tangan dikirim (field_bad_page, field_off_page), karena file Word belum memiliki halaman sebelum dikonversi.
Kolom berdasarkan teks anchor
Section titled “Kolom berdasarkan teks anchor”Anchor menempatkan kolom relatif terhadap teks yang sudah ada di dokumen, sehingga Anda tidak memerlukan koordinat:
| Field | Wajib | Fungsinya |
|---|---|---|
anchor |
ya | Teks yang dicari, hingga 200 karakter. Pencocokan dilakukan persis dan membedakan huruf besar dan kecil; setiap deretan spasi atau baris baru cocok dengan deretan lain mana pun. |
recipient |
ya | key seorang penerima. |
type |
ya | Jenis kolom, seperti di atas. |
occurrence |
tidak | "all" (bawaan: satu kolom di setiap kecocokan, paling banyak 200), atau n untuk kecocokan ke-n saja, dihitung di semua dokumen permintaan tanda tangan sesuai urutan baca. |
offsetX, offsetY |
tidak | Jarak dalam poin dari kiri atas teks yang cocok ke kiri atas kolom (-2.000 sampai 2.000, bawaan 0). offsetY negatif bergeser ke atas. |
w, h |
tidak | Ukuran kolom dalam poin (8 sampai 1.000). Bawaan: tanda tangan 160×48, paraf 64×40, kotak centang 14×14, tanggal 110×20, email 180×20, teks lainnya 160×20. |
required, label |
tidak | Sama seperti kolom berdasarkan koordinat. |
Kolom yang akan keluar dari halaman dipindahkan kembali ke dalamnya. Anchor yang tidak cocok dengan apa pun tidak menghasilkan kolom, yang biasanya terlihat sebagai signer_without_fields di sendError.
Kolom dari tag
Section titled “Kolom dari tag”Dengan autoTags: true, tag yang ditulis di dokumen menjadi kolom bagi penerima yang slot-nya sama dengan peran di tag (persis, huruf besar dan kecil dibedakan):
[[sign:Client]] [[initials:Client]] [[name:Client]] [[date:Client]][[text:Client:PO number]] [[check:Client]] [[company:Client]] [[email:Client]][[sign:Client;w=180;h=50]] [[text:Client:Notes;optional]]Sudut kiri atas kolom adalah sudut kiri atas tag, sehingga kolom menutupi tag. Tag yang perannya tidak diisi penerima mana pun tidak menghasilkan kolom.
Respons
Section titled “Respons”201 Created beserta envelope-nya. Tepat setelah dibuat, statusnya masih draf dan dokumennya masih disiapkan:
{ "id": "env_01JAB3K9Q7M2X8R4T6V0W1Y2Z3", "status": "draft", "finishing": false, "finalizeFailed": false, "title": "Service agreement ACME-2026-114", "createdAt": 1792290600000, "sentAt": null, "expiresAt": null, "completedAt": null, "documents": [ { "id": "doc_01JAB3K9RA5C7E9G1H3J5K7M9N", "name": "Service agreement", "prepareState": "pending", "prepareError": null, "pageCount": null, "originalSha256": "3b7e0c…", "preparedSha256": null, "finalSha256": null, "deliveredSha256": null } ], "recipients": [ { "id": "rcp_01JAB3K9R2B4D6F8H0J2K4M6P8", "key": "client", "role": "signer", "name": "Dana Lee", "email": "dana@example.com", "status": "created", "routingOrder": 1, "viewedAt": null, "completedAt": null, "declineReason": null } ], "auditHead": "a41f9d…", "sendError": null}Penerima dengan reach: "link" juga memiliki signingUrl (https://sign.automadoc.cc/#/…) hanya di respons ini: pembacaan berikutnya tidak mengembalikannya, jadi simpan sekarang. Tautan mulai berfungsi saat permintaan tanda tangan dikirim. Setiap undangan dan pengingat lewat email membawa tautan baru, sehingga penerima tautan tidak pernah diingatkan lewat email.
Membaca permintaan tanda tangan
Section titled “Membaca permintaan tanda tangan”GET https://api.automadoc.cc/api/v1/envelopes/{envelopeId}Menjawab dengan bentuk yang sama seperti saat pembuatan, sesuai keadaan saat ini. Lakukan polling setiap beberapa detik selama dokumen disiapkan; setelah permintaan tanda tangan terkirim, polling setiap beberapa menit sudah cukup.
status |
Artinya |
|---|---|
draft |
Belum dikirim: dokumen sedang disiapkan, send tidak diminta, atau sendError menjelaskan mengapa tidak dapat dikirim. |
sent |
Sedang menunggu tanda tangan. |
completed |
Semua pihak sudah menandatangani dan file bertanda tangan sudah siap. |
declined |
Seorang penanda tangan menolak; declineReason-nya ada di data penerima tersebut. |
voided |
Anda membatalkannya. |
expired |
expiresAt sudah lewat sebelum semua pihak menandatangani. |
finishing: true (dengan status: "sent") berarti semua pihak sudah menandatangani dan PDF bertanda tangan sedang dibuat. finalizeFailed: true berarti PDF itu tidak dapat dibuat setelah semua percobaan ulang: tanda tangan tetap tersimpan dan tim kami sudah diberi tahu.
Status penerima berjalan dari created (belum gilirannya), sent, viewed, lalu completed atau declined. Penerima cc berstatus sent sejak awal.
Setiap dokumen membawa SHA-256 dari setiap tahap: originalSha256 (file Anda), preparedSha256 (PDF yang dilihat dan ditandatangani semua orang), finalSha256 (sudah dibubuhi tanda tangan), dan deliveredSha256 (file yang Anda unduh: sudah dibubuhi tanda tangan, ditambah sertifikat jika dilampirkan). auditHead adalah hash dari kejadian terakhir dalam jejak audit permintaan tanda tangan. Siapa pun dapat memeriksa file yang dikirimkan dengan POST https://api.automadoc.cc/api/verify dan { "sha256": "…" } (hex huruf kecil dari seluruh file), yang menjawab apakah file itu cocok dengan permintaan tanda tangan yang sudah selesai.
Daftar permintaan tanda tangan
Section titled “Daftar permintaan tanda tangan”GET https://api.automadoc.cc/api/v1/envelopes?status=completed&since=1792290600000&limit=50| Query | Fungsinya |
|---|---|
status |
draft, sent, completed, declined, voided, atau expired. |
since |
Hanya permintaan tanda tangan yang diperbarui pada atau setelah waktu ini (Unix ms). |
limit |
1 sampai 100, bawaan 25. |
cursor |
nextCursor dari halaman sebelumnya. |
Jawabannya { "envelopes": [ … ], "nextCursor": "…" }, yang terbaru lebih dulu; nextCursor bernilai null di halaman terakhir. key bernilai null untuk penerima dari permintaan tanda tangan yang dibuat di portal.
Mengunduh file bertanda tangan
Section titled “Mengunduh file bertanda tangan”GET https://api.automadoc.cc/api/v1/envelopes/{envelopeId}/documents/{documentId}/signedGET https://api.automadoc.cc/api/v1/envelopes/{envelopeId}/certificateGET https://api.automadoc.cc/api/v1/envelopes/{envelopeId}/combinedsigned adalah satu dokumen bertanda tangan; certificate adalah sertifikat penyelesaian secara terpisah; combined adalah semua dokumen bertanda tangan dalam satu PDF (dengan sertifikat di akhir jika dilampirkan), yang hanya dibuat untuk permintaan tanda tangan berisi dua dokumen atau lebih. Route ini berfungsi setelah permintaan tanda tangan berstatus completed: sebelum itu, jawabannya 409 dengan DOCUMENT_NOT_FOUND.
Jawabannya berupa tautan berumur pendek, bukan file-nya:
{ "url": "https://api.automadoc.cc/api/esign-files/env_01JAB3K9Q7M2X8R4T6V0W1Y2Z3/final/doc_01JAB3K9RA5C7E9G1H3J5K7M9N.pdf?e=…&d=a&n=…&s=…", "filename": "Service agreement.pdf", "expiresAt": 1792306800000, "sha256": "e5a01c…"}Ambil url dalam 15 menit; tautan ini tidak memerlukan kunci. Minta lagi untuk mendapatkan yang baru. sha256 adalah sidik jari file (untuk signed, ini adalah deliveredSha256 dokumen tersebut). Setiap unduhan dicatat dalam jejak audit. File bertanda tangan dari permintaan tanda tangan yang sudah selesai disimpan sampai seseorang menghapusnya.
Membatalkan permintaan tanda tangan
Section titled “Membatalkan permintaan tanda tangan”POST https://api.automadoc.cc/api/v1/envelopes/{envelopeId}/void{ "reason": "Replaced by version 2" }Menghentikan permintaan tanda tangan yang sudah dikirim: tautan berhenti berfungsi, dan penerima yang sudah dikirimi diberi tahu lewat email. reason wajib diisi (hingga 500 karakter). Menjawab dengan envelope yang kini berstatus voided. Hanya permintaan tanda tangan yang sudah dikirim dan masih terbuka yang dapat dibatalkan.
Mengingatkan penerima
Section titled “Mengingatkan penerima”POST https://api.automadoc.cc/api/v1/envelopes/{envelopeId}/recipients/{recipientId}/remindrecipientId adalah id penerima (rcp_…), bukan key Anda. Langsung mengirim email berisi tautan baru kepada penerima; tautan di email sebelumnya berhenti berfungsi. Hanya untuk penerima email yang sedang mendapat giliran, paling sering sekali setiap 10 menit. Menjawab { "remindedAt": 1792300000000, "channel": "email" }. Pengingat otomatis mengikuti pengaturan reminders permintaan tanda tangan tanpa perlu panggilan apa pun.
Contoh: curl
Section titled “Contoh: curl”Buat permintaan tanda tangan dengan satu penanda tangan, tempatkan tanda tangan di samping teks “Client signature:” dan tanggal di samping “Date:”, lalu kirim. JSON masuk ke bagian envelope dan PDF ke bagian bernama contract:
cat > envelope.json <<'EOF'{ "title": "Service agreement ACME-2026-114", "message": "Please review and sign by Friday.", "timezone": "Asia/Jakarta", "documents": [{ "name": "Service agreement", "file": "contract" }], "recipients": [ { "key": "client", "role": "signer", "name": "Dana Lee", "email": "dana@example.com" } ], "anchors": [ { "anchor": "Client signature:", "recipient": "client", "type": "signature", "offsetX": 110, "offsetY": -10 }, { "anchor": "Date:", "recipient": "client", "type": "date_signed", "offsetX": 40, "occurrence": 1 } ], "send": true}EOF
curl -X POST 'https://api.automadoc.cc/api/v1/envelopes' \ -H "X-Webhook-API-Key: $AUTOMADOC_KEY" \ -F 'envelope=<envelope.json' \ -F 'contract=@contract.pdf;type=application/pdf'Pantau sampai status menjadi sent (atau sendError terisi), lalu sampai menjadi completed:
curl -s 'https://api.automadoc.cc/api/v1/envelopes/ENVELOPE_ID' \ -H "X-Webhook-API-Key: $AUTOMADOC_KEY"Setelah selesai, ambil tautan dokumen bertanda tangan lalu unduh:
url=$(curl -s 'https://api.automadoc.cc/api/v1/envelopes/ENVELOPE_ID/documents/DOCUMENT_ID/signed' \ -H "X-Webhook-API-Key: $AUTOMADOC_KEY" | jq -r .url)curl -s -o signed.pdf "$url"Pembuatan yang sama dalam bentuk JSON menaruh file di base64: "documents": [{ "name": "Service agreement", "base64": "JVBERi0xLjcK…" }].
Contoh: Node.js
Section titled “Contoh: Node.js”Node.js 18 atau lebih baru. Jalankan dengan AUTOMADOC_KEY=amk_… node sign.mjs:
import { readFile, writeFile } from 'node:fs/promises'import { createHash } from 'node:crypto'
const API = 'https://api.automadoc.cc'const KEY = process.env.AUTOMADOC_KEY
async function call(method, path, body) { const res = await fetch(API + path, { method, headers: body ? { 'X-Webhook-API-Key': KEY, 'Content-Type': 'application/json' } : { 'X-Webhook-API-Key': KEY }, body: body ? JSON.stringify(body) : undefined, }) const json = await res.json() if (!res.ok) throw new Error(`${res.status} ${json.code}: ${json.error}`) return json}
const pdf = await readFile('contract.pdf')let envelope = await call('POST', '/api/v1/envelopes', { title: 'Service agreement ACME-2026-114', documents: [{ name: 'Service agreement', base64: pdf.toString('base64') }], recipients: [{ key: 'client', role: 'signer', name: 'Dana Lee', email: 'dana@example.com' }], anchors: [{ anchor: 'Client signature:', recipient: 'client', type: 'signature', offsetX: 110, offsetY: -10 }], send: true,})
// The documents are prepared and the fields placed, then the envelope is sent.while (envelope.status === 'draft' && !envelope.sendError) { await new Promise((resolve) => setTimeout(resolve, 2000)) envelope = await call('GET', `/api/v1/envelopes/${envelope.id}`)}if (envelope.sendError) throw new Error(`Not sent: ${JSON.stringify(envelope.sendError)}`)console.log(`${envelope.id} is ${envelope.status}`)
// Later (a scheduled job, say): download every signed document of a completed envelope.export async function downloadSigned(envelopeId) { const current = await call('GET', `/api/v1/envelopes/${envelopeId}`) if (current.status !== 'completed') return false for (const doc of current.documents) { const link = await call('GET', `/api/v1/envelopes/${envelopeId}/documents/${doc.id}/signed`) const bytes = Buffer.from(await (await fetch(link.url)).arrayBuffer()) if (createHash('sha256').update(bytes).digest('hex') !== link.sha256) throw new Error('Download damaged') await writeFile(`${doc.id}.pdf`, bytes) } return true}Error berupa JSON: { "code": "…", "error": "English text" }, dengan path yang menunjukkan bagian request yang bermasalah (recipients[1].email) jika ada.
| HTTP | code |
Kapan |
|---|---|---|
| 400 | INVALID_REQUEST |
Request tidak valid; lihat path dan error. |
| 401 | API_KEY_MISSING |
Tidak ada kunci di X-Webhook-API-Key atau Authorization. |
| 403 | API_KEY_INVALID |
Kunci tidak dikenal atau sudah dicabut, atau merupakan kunci milik sebuah template. |
| 403 | ESIGN_SEND_BLOCKED |
Remind: pengiriman dihentikan sementara untuk perusahaan Anda selama laporan tentang emailnya ditinjau. Hubungi dukungan. |
| 404 | ENVELOPE_NOT_FOUND |
Tidak ada permintaan tanda tangan tersebut di perusahaan Anda. |
| 404 | RECIPIENT_NOT_FOUND |
Remind: tidak ada penerima tersebut dalam permintaan tanda tangan ini. |
| 404 | DOCUMENT_NOT_FOUND |
Unduhan: tidak ada dokumen tersebut, atau tidak ada file tersebut (file combined untuk permintaan tanda tangan berisi satu dokumen). |
| 404 | GENERATION_NOT_FOUND |
generationId yang bukan dokumen yang dibuat untuk perusahaan Anda. |
| 409 | GENERATION_NOT_COMPLETED |
Dokumen yang dibuat belum selesai, atau sudah tidak disimpan. |
| 409 | DOCUMENT_NOT_FOUND |
Unduhan sebelum permintaan tanda tangan selesai. |
| 409 | ENVELOPE_NOT_DRAFT |
Void atau remind pada permintaan tanda tangan yang belum pernah dikirim. |
| 409 | ENVELOPE_CLOSED |
Void atau remind pada permintaan tanda tangan yang sudah selesai, ditolak, dibatalkan, atau kedaluwarsa. |
| 409 | ENVELOPE_FINISHING |
Void atau remind setelah semua pihak menandatangani, selagi file bertanda tangan sedang dibuat. |
| 409 | NOT_ALLOWED |
Remind kepada penerima yang belum gilirannya, atau kepada penerima tautan. |
| 410 | ENVELOPE_CLOSED |
Unduhan setelah file permintaan tanda tangan dihapus. |
| 413 | FILE_TOO_LARGE |
File di atas 25 MB, atau request multipart di atas 26 MB. |
| 413 | ENVELOPE_TOO_LARGE |
Total dokumen base64 di atas 10 MB, atau total file di atas 50 MB. |
| 413 | INVALID_REQUEST |
Body JSON di atas 14 MB. |
| 415 | UNSUPPORTED_FILE |
File yang bukan PDF, Word, Excel, atau PowerPoint. |
| 429 | RATE_LIMITED |
Lebih dari 60 request per menit untuk kunci tersebut, atau 600 dokumen per menit untuk perusahaan. |
| 429 | ESIGN_SEND_RATE_LIMITED |
Remind: penerima ini sudah diingatkan kurang dari 10 menit yang lalu. |
| 502 | ESIGN_WORKER_UNAVAILABLE |
Remind: pengingat tidak dapat dikirim. |
| 503 | ESIGN_WORKER_UNSUPPORTED |
Dokumen tidak dapat disiapkan untuk ditandatangani saat ini. Coba lagi nanti; tidak ada yang dibuat. |
Pembuatan yang ditolak saat dokumennya sedang disimpan akan menghapus draf beserta file-nya, sehingga tidak ada yang tertinggal setengah jadi.
Mengapa permintaan tanda tangan tidak terkirim
Section titled “Mengapa permintaan tanda tangan tidak terkirim”Dengan send: true, pengiriman terjadi setelah pembuatan dijawab, sehingga penolakannya muncul di sendError pada envelope (yang tetap berstatus draft), bukan sebagai status HTTP:
sendError.code |
Artinya |
|---|---|
SEND_PROBLEMS |
Permintaan tanda tangan belum lengkap; problems mencantumkan alasannya (lihat di bawah). |
QUOTA_EXCEEDED |
Kuota bulanan dan semua paket dokumen sudah habis (lihat biaya). |
ESIGN_SEND_RATE_LIMITED |
Gratis: perusahaan Anda sudah mengirim 3 permintaan tanda tangan dalam satu jam terakhir. Di paket apa pun: lebih dari 10 pengiriman dalam satu menit. |
ESIGN_RECIPIENT_CAP |
Pengiriman ini akan melampaui jumlah penerima per hari yang boleh dijangkau perusahaan Anda (lihat di bawah). |
ESIGN_SEND_BLOCKED |
Pengiriman dihentikan sementara untuk perusahaan Anda selama laporan tentang emailnya ditinjau. Hubungi dukungan. |
ESIGN_EMAIL_UNAVAILABLE |
Email tidak dapat dikirim untuk permintaan tanda tangan ini. Tidak ada yang dikirim atau ditagih; penerima dengan reach: "link" tetap dapat dipakai. |
ESIGN_EMAIL_UNVERIFIED |
Orang yang membuat kunci tidak memiliki alamat email yang terverifikasi. |
ESIGN_ALREADY_PENDING |
Dokumen yang dibuat ini sedang menunggu tanda tangan di permintaan tanda tangan lain. |
INVALID_REQUEST |
Tag dan anchor bersama-sama menghasilkan lebih dari 500 kolom, atau terjadi kesalahan yang tidak terduga. |
Setiap masalah berbentuk { "code": "…" }, dengan documentId, recipientId, atau fieldId jika masalahnya menyangkut salah satunya (ID, bukan key Anda):
| Masalah | Artinya |
|---|---|
document_failed |
Sebuah dokumen tidak dapat disiapkan; prepareError-nya menjelaskan alasannya (lihat di bawah). |
too_many_pages |
Lebih dari 300 halaman di semua dokumen. |
envelope_too_large |
Total file lebih dari 50 MB, atau total PDF yang sudah disiapkan lebih dari 100 MB. |
no_signer |
Tidak ada penerima dengan peran signer. |
signer_without_fields |
Seorang penanda tangan tidak punya kolom: sebuah anchor tidak cocok dengan apa pun, atau peran sebuah tag tidak memiliki slot. |
recipient_missing_email |
Seorang penerima email tidak memiliki alamat. |
recipient_role_unavailable |
Peran selain signer atau cc. |
too_many_fields |
Lebih dari 500 kolom. |
field_for_non_signer |
Sebuah kolom diberikan kepada penerima cc. |
field_bad_page |
Halaman sebuah kolom melewati akhir dokumennya. |
field_off_page |
Sebuah kolom keluar dari halamannya, atau lebih kecil dari 8 poin. |
field_type_unavailable |
Jenis kolom selain delapan jenis yang tercantum di atas. |
prepareError sebuah dokumen adalah salah satu dari pdf_encrypted (PDF dilindungi kata sandi), file_too_large (PDF hasil penyiapannya akan melebihi 50 MB), too_many_pages, unsupported_file, invalid_file (file rusak), conversion_failed, source_unavailable, timeout, atau internal.
| Batas | Nilai |
|---|---|
| Dokumen per permintaan tanda tangan | 10 |
| Satu file | 25 MB |
| Semua file dalam satu permintaan tanda tangan | 50 MB |
| Satu dokumen yang sudah disiapkan (PDF yang ditandatangani semua orang) | 50 MB |
| Semua dokumen yang sudah disiapkan dalam satu permintaan tanda tangan | 100 MB |
| Halaman di semua dokumen satu permintaan tanda tangan | 300 |
| Penerima per permintaan tanda tangan | 20 |
| Kolom per permintaan tanda tangan | 500 |
| Anchor per request | 50, masing-masing paling banyak 200 kecocokan |
| Body request JSON | 14 MB, dengan paling banyak 10 MB dokumen base64 |
| Request multipart | 26 MB |
| Masa berlaku | 1 sampai 120 hari setelah dikirim, bawaan 30 |
| Pengingat | setiap 1 sampai 30 hari, paling banyak 10 kali; bawaan setiap 3 hari, 3 kali |
| Kode akses salah sebelum tautan terkunci | 5 |
| Tautan unduhan | 15 menit |
| Draf | dihapus setelah 30 hari tanpa perubahan |
| File permintaan tanda tangan yang ditolak, dibatalkan, dan kedaluwarsa | dihapus 90 hari setelah ditutup |
Untuk mengirim file lebih dari 26 MB, tambahkan lewat generationId, yang tidak ikut dikirim dalam request.
Batas pengiriman. Tanpa Pro dan tanpa seat Business, sebuah perusahaan paling banyak mengirim 3 permintaan tanda tangan per jam dan menjangkau paling banyak 20 penerima per hari (5 per hari dalam 24 jam pertama akun). Dengan Pro atau seat Business, perusahaan dapat menjangkau hingga 1.000 penerima per hari. Setiap penerima dihitung, termasuk penerima cc dan penerima tautan, dalam jangka 24 jam yang bergulir. Setiap perusahaan paling banyak mengirim 10 permintaan tanda tangan per menit.
- Permintaan tanda tangan yang dikirim memakai satu dokumen dari kuota Anda, berapa pun jumlah dokumen dan penerima di dalamnya. Biayanya dikenakan saat dikirim dan tidak dikembalikan jika kemudian dibatalkan, ditolak, atau kedaluwarsa. Draf tidak dikenai biaya.
- Dokumen yang dibuat AutomaDoc gratis untuk dikirim pada pengiriman pertama: permintaan tanda tangan yang semua dokumennya berasal dari
generationIdtidak dikenai biaya, kecuali salah satunya sudah pernah dikirim di permintaan tanda tangan lain; dalam hal itu biayanya satu dokumen. Permintaan tanda tangan yang mencampur file yang dibuat dan file yang diunggah dikenai biaya satu dokumen. - Siapa yang membayar. Permintaan tanda tangan yang dikirim dengan kunci perusahaan dihitung sebagai otomatis, seperti API dokumen: gratis dengan Pro (atau trial); selain itu dihitung dari kuota dokumen otomatis seat Business Anda terlebih dahulu, lalu kuota bulanan gratis, lalu paket dokumen Anda. Jika semuanya habis,
sendErrorbernilaiQUOTA_EXCEEDED. Seat Starter milik satu orang dan tidak mencakup pengiriman lewat API.
Batas pengiriman di atas berlaku di semua paket.