Sürece döküman tasğalından belge ekleme¶
Bu endpoint, tanımlı bir Döküman Taslağı bilgisini kullanarak ilgili süreç (process) içerisine yeni bir belge eklemek için kullanılır. Basit API lisansı olan kullanıcılarda kullanılabilir. Hazırlanmış döküman taslağına tanımlı bir imzacı veya yeni imzacı bağlama işlemi yapabilirsiniz. Döküman imzalama ayarları döküman taslağında tanımlanır. Referans API üzerinden tanımlı döküman taslaklarına ulaşabilirsiniz
Belge; - imzalanabilir - onaylanabilir - belgenin kullanıcı tarafından yüklenmesi veya yüklü belgeyi görüntülenmesi bir yapı olarak tanımlanabilir.
Yetkilendirme¶
Bu endpoint scope bazlı yetkilendirme kullanır.
Gerekli scope:
process:documenttype:write
Endpoint¶
POST /api/external/process-instances/{processId}/document/document-type
Path Parametreleri¶
| Parametre | Tip | Açıklama |
|---|---|---|
| processId | Long | Belgenin ekleneceği süreç ID |
Request Body – Döküman Taslağı¶
{
"id": 22,
"name": "Ticari İletişim İzni (varsa)",
"description": "",
"isSign": true,
"isForm": false,
"isActive": true,
"isApprove": true,
"isUpload": false,
"document": {
"base64": "",
"fileName": "deneme.pdf"
},
"signings": [
{
"id": 14,
"signer": {
"id": 138
}
}
]
}
Alan Açıklamaları (DocumentTypeDto)¶
| Alan | Tip | Açıklama |
|---|---|---|
| id | Long | Belge Taslağı ID |
| name | String | Belge adı |
| description | String | Belge açıklaması |
| isSign | Boolean | Belge imzalanabilir mi |
| isForm | Boolean | Form yapısı içeriyor mu |
| isActive | Boolean | Belge aktif mi |
| isApprove | Boolean | Onay süreci var mı |
| isUpload | Boolean | Dosya yükleme zorunlu mu |
| document | DocumentDto | Opsiyonel PDF şablonu (Base64) |
| signings | List | Belgeye ait imzacı tanımları |
İmzacı Tanımı (signings)¶
signings alanı, belge üzerinde kimlerin hangi sırayla imza atacağını tanımlar. Bu alan döküman taslağındaki signings alanını referans verir ve ilgili taslakdaki imzalama sırasına göre tanımlanır. Taslaktaki ayarlara göre imzacı bilgisi bağlanması yapılır.
| Alan | Açıklama |
|---|---|
| id | Taslaktadaki İmzacı sırası |
| stepOrder | İmzalama ekranındaki görünme sırası |
| visibleSignature | İmzanın PDF üzerindeki konumu (pageNumber, originX, originY, width, height vb.). Detaylı alan listesi için Döküman API – visibleSignature Nesnesi sayfasına bakın |
| signer | İmzacı bağlama |
| signer->id | Tanımlı İmzacı id |
| signer->fullName | Yeni İmzacı İsim ve soyismi |
| signer->email | Yeni İmzacı email |
| signer->phone | Yeni İmzacı telefon |
| signer->identityNumber | Yeni İmzacı TC kimlik numarası |
Önemli: visibleSignature (İmza Konumu)
id alanı taslaktaki önceden tasarlanmış bir imza sırasına (signing) referans verdiği için, o sıranın imza konumu normalde taslakta zaten tanımlıdır ve visibleSignature göndermeye gerek yoktur.
Ancak taslakta konumu tanımlanmamış bir sıra kullanılıyorsa veya konum taslaktakinden farklı olacaksa, visibleSignature bu istekte açıkça gönderilerek taslaktaki konum override edilebilir. visibleSignature hem gönderilmez hem de taslakta tanımlı değilse istek hata verir.
Önemli: stepOrder (İmzalama Sırası)
stepOrder imzacıların imzalama ekranında hangi sırayla görüneceğini belirler. Sırası gelmeyen imzacı imzalama ekranında görünmez.
stepOrder: 1→ İlk sırada; süreç başladığında imzalayacak kişiyi görür.stepOrder: 2→ 1. imzacı tamamlayana kadar imzalama ekranına erişemez.
Abonelik akışı örneği:
"signings": [
{ "id": 75, "stepOrder": 1, "signer": { ... } },
{ "id": 77, "stepOrder": 2, "signer": { "id": 108 } }
]
stepOrder: 1) mobil uygulamada süreci açtığında kendisini görür. İşletmeci (stepOrder: 2) abone imzaladıktan sonra sıraya girer.
stepOrder girilmezse imzacı imzalama ekranında hiç görünmez.
"signer": {
"fullName": "ali veli",
"email": "[email protected]",
"phone": "5333333333",
"identityNumber": "123456789011"
}
"signer": {
"id":24
}
Taslakta konum tanımlı olmayan bir sıra için visibleSignature ile konum belirtme örneği:
{
"id": 63,
"stepOrder": 3,
"visibleSignature": {
"pageNumber": 1,
"originX": 320,
"originY": 100,
"width": 200,
"height": 75
},
"signer": {
"id": 320
}
}
Response – 201 Created¶
{
"id": 7203,
}
Hata Durumları¶
| HTTP Kodu | Açıklama |
|---|---|
| 400 | Geçersiz veri veya iş kuralı hatası |
| 401 | Yetkilendirme bilgisi yok |
| 403 | Gerekli scope yok |
| 404 | Süreç bulunamadı |
Notlar¶
documentalanı opsiyoneldir.signingsalanı boş bırakılırsa belge imzasız kabul edilir.- Aynı belge türü bir süreçte birden fazla kez eklenebilir.
Son Yüklü Belgeyi Getir (Base64)¶
Döküman eklendikten ve imzalandıktan sonra, imzalı belgenin en son halini Base64 formatında çekmek için aşağıdaki endpoint kullanılır.
Scope: document:read
GET /api/external/process-instances/{processId}/document/{documentId}/file
Path Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
processId |
number | Sürecin ID'si |
documentId |
number | Dökümanın ID'si (döküman eklenirken dönen id) |
Yanıt:
{
"fileName": "Abonelik belgesi_xxxxxxxx.pdf",
"mimeType": "application/pdf",
"base64": "JVBERi0xLjQK...",
"size": 2425408
}
| Alan | Tip | Açıklama |
|---|---|---|
fileName |
string | Dosya adı |
mimeType |
string | Dosya MIME türü |
base64 |
string | Dosyanın Base64 içeriği (imzalı son versiyon) |
size |
number | Dosya boyutu (byte) |
İmzalama tamamlanmadan önce çekilirse, mevcut en son dosya versiyonu döner.