Developer Documents API
Base path: /api/v1/developer/documents
| Method | Path | Scope |
|---|---|---|
| GET | /developer/documents?page=&pageSize= | documents:read |
| GET | /developer/documents/{operationId} | documents:read |
| POST | /developer/documents | documents:create |
| POST | /developer/documents/{operationId}/pdf | documents:create |
| PUT | /developer/documents/{operationId}/configuration | documents:create |
| POST | /developer/documents/{operationId}/send | documents:create |
| DELETE | /developer/documents/{operationId} | documents:delete |
Referans: alan (element) tipleri
Konfigürasyonda her alan elementType ile belirtilir. Büyük/küçük harf duyarsızdır; önerilen kanonik değerler:
elementType | Anlamı |
|---|---|
INPUT / input / text | Tek satır metin |
TEXT_AREA / text_area | Çok satırlı metin |
SELECT / select | Açılır liste |
CHECKBOX / checkbox | Onay kutusu |
RADIO / radio | Radyo seçenek |
SIGNATURE / signature | Klasik çizim imza |
BIOMETRIC_SIGNATURE / biometric_signature | Biyometrik imza |
ELECTRONIC_SIGNATURE / electronic_signature | Elektronik imza (masaüstü istemci) |
IMAGE / image | Resim yükleme |
NOTE / note | Bilgilendirme notu (salt görüntü) |
IYS_CONSENT / iys_consent | İYS onay kutusu |
MONEY_CURRENCY / money_currency | Para / birim |
Ek alanlar:
externalId— alan kimliği (benzersiz string)pageNumber— konumlu alanlarda PDF sayfa numarası (≥ 1); ayrık bileşenlerde0recipientExternalId— alanın atanacağı alıcınınexternalIddeğerix,y,width,height— konumlu alanlarda sayfa üzerindeki konum (piksel); ayrıktax/yanlamsızdır (0yeterlidir),width/heightfinal yerleşim için önerilirconfig— isteğe bağlı props (required,label,placeholder,isDetached, seçenek listesi vb.)
Ayrık bileşenler (config.isDetached)
PDF üzerine konum vermeden imza, metin vb. istemek için kullanılır. Alıcı /r/{code} ekranında alanı PDF dışı doldurma adımlarında doldurur; nihai PDF’te değerler belgenin sonuna ek sayfada alt alta basılır.
Akış aynıdır: create → PDF yükle → configuration → send. Fark yalnızca configuration elements içeriğindedir.
| Kural | Değer |
|---|---|
config.isDetached | true |
pageNumber | 0 (pages listesinde olmak zorunda değil) |
x / y | 0 veya atlanabilir |
width / height | önerilir (ör. imza 180×48) |
pages | PDF sayfa meta bilgisi yine gönderilir (ör. [{ "pageNumber": 1, ... }]) |
Örnek — yalnızca ayrık imza (konum yok):
{
"operationType": "document",
"displayFileName": "sozlesme.pdf",
"recipients": [
{
"externalId": "r1",
"fullName": "Ayşe Yılmaz",
"email": "[email protected]",
"role": "Signee",
"order": 1
}
],
"pages": [
{ "pageNumber": 1, "width": 595, "height": 842 }
],
"elements": [
{
"externalId": "e-sig-detached",
"pageNumber": 0,
"recipientExternalId": "r1",
"elementType": "SIGNATURE",
"x": 0,
"y": 0,
"width": 180,
"height": 48,
"config": {
"isDetached": true,
"required": true,
"label": "İmza"
}
}
]
}
Referans: gönderim kanalları (channels)
POST .../send içindeki deliveryPlans[].channels dizisinde kullanılır:
| Kod | Anlamı | Gereksinim |
|---|---|---|
email | E-posta ile imza linki | Alıcıda email dolu olmalı |
sms | SMS ile kısa link | Alıcıda phone dolu olmalı |
kiosk | Eşleşmiş kiosk cihazına gönderim | kioskDeviceId (GUID) plan’da verilmeli |
open_on_device | Bu cihazda aç (anında public ekran) | Genelde ilk / aktif alıcı için |
Kopya bildirim (copyNotificationChannels) yalnızca email ve sms kabul eder.
Referans: diğer sabitler
| Alan | Geçerli değerler |
|---|---|
operationType | document (belge), template (şablon) |
Alıcı role | Örn. Signee (imzacı), Approver, Viewer |
isOrderedFlow | true = sıralı alıcılar; false = paralel |
workspaceId create isteğinde token workspace’i ile aynı olmalıdır.
Create — POST /developer/documents
{
"workspaceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"operationType": "document",
"description": "Sözleşme — örnek"
}
PDF — POST /developer/documents/{operationId}/pdf
multipart/form-data; alan adı file (PDF).
Configuration — PUT /developer/documents/{operationId}/configuration
Gerçek model: düz recipients + pages + elements listeleri (pages içinde nested elements yok).
{
"operationType": "document",
"displayFileName": "sozlesme.pdf",
"description": "İki taraflı imza akışı",
"privateNote": "İç not",
"useUniqueDeliveryKey": true,
"showOtherRecipientsFields": false,
"showOtherRecipientsFieldsAsRendered": false,
"isOrderedFlow": true,
"saveAsDraft": false,
"recipients": [
{
"externalId": "r1",
"fullName": "Ayşe Yılmaz",
"email": "[email protected]",
"phone": "+905551112233",
"role": "Signee",
"order": 1
},
{
"externalId": "r2",
"fullName": "Mehmet Demir",
"email": "[email protected]",
"phone": "+905559998877",
"role": "Signee",
"order": 2
}
],
"pages": [
{ "pageNumber": 1, "width": 595, "height": 842 }
],
"elements": [
{
"externalId": "e-sig-1",
"pageNumber": 1,
"recipientExternalId": "r1",
"elementType": "SIGNATURE",
"x": 120,
"y": 640,
"width": 180,
"height": 48,
"config": { "required": true, "label": "İmza" }
}
]
}
Send — POST /developer/documents/{operationId}/send
{
"isOrderedFlow": true,
"deliveryPlans": [
{
"recipientExternalId": "r1",
"channels": ["email", "sms"]
},
{
"recipientExternalId": "r2",
"channels": ["email"]
}
]
}
Kiosk örneği:
{
"recipientExternalId": "r1",
"channels": ["kiosk"],
"kioskDeviceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
Liste yanıtı (data)
items[]:operationId,displayFileName,status,publicShortCode,createdAtUtctotalCount,page,pageSize
Detay yanıtı (data)
operationId,workspaceId,operationType,status,description,publicShortCode
Akış özeti: Belge gönderme. Deneme: Playground.