Lewati ke konten

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.

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.

  1. POST /api/v1/envelopes menyimpan dokumen Anda dan langsung menjawab 201, dengan permintaan tanda tangan yang masih berstatus draft dan setiap dokumen prepareState: "pending".
  2. 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 dengan timeout.
  3. 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.
  4. Baca GET /api/v1/envelopes/:id untuk memantaunya. Jika tidak dapat dikirim, statusnya tetap draft dan sendError menjelaskan 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.

POST https://api.automadoc.cc/api/v1/envelopes

Kirim 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.

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.

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.
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.

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.

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.

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.

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.

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.

GET https://api.automadoc.cc/api/v1/envelopes/{envelopeId}/documents/{documentId}/signed
GET https://api.automadoc.cc/api/v1/envelopes/{envelopeId}/certificate
GET https://api.automadoc.cc/api/v1/envelopes/{envelopeId}/combined

signed 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.

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.

POST https://api.automadoc.cc/api/v1/envelopes/{envelopeId}/recipients/{recipientId}/remind

recipientId 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.

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:

Terminal window
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:

Terminal window
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:

Terminal window
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…" }].

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 generationId tidak 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, sendError bernilai QUOTA_EXCEEDED. Seat Starter milik satu orang dan tidak mencakup pengiriman lewat API.

Batas pengiriman di atas berlaku di semua paket.