---
tags: DOG
---
# **DOG Signer API** `v1.11.0`
> API slouží pro vytvoření odkazů na dokument pro získání elektronického podpisu zákazníkem a jejich následné uložení do DMS. Pracuje s dokumenty ve formátu PDF. Využívá služby podpisového serveru SignoSoft.
---
## **Změny ve verzích**
### **v1.11.0**
#### **Přidáno**
* Přidaný endpoint `dog://sign/signature/image` pro stažení PNG obrázku podpisu z dokumentu.
### **v1.10.0**
#### **Přidáno**
* Při vytváření dokumentu k podpisu pomocí `dog://sign/document` je přidaný parametr `signer[].inperson` pro možnost podpisu na místě bez emailové adresy.
### **v1.9.0**
#### **Přidáno**
* Upraveno chování `dog://sign/document` u typu podpisu `signer[].type = "token"`. Popsáno níže.
### **v1.8.2**
#### **Přidáno**
* `DOG.dog.debug` aktivuje deep log, který detailně zaznamená kompletní komunikaci do a z DOG. Dále zaznamená i veškerou komunikaci DOGa s externími nástroji. Data jsou párována s klíčem z `intID`. **Upozornění: generuje velké množství diskových dat.**
### **v1.8.1**
#### **Přidáno**
* `dog://sign/document/status` přidání detailu stavu podpisů na dokumentu
* Přidány diagramy do dokumentace
### **v1.8.0**
#### **Přidáno**
* `dog://sign/document` přidání více typů dokumentů `signer[].type` ("bio", "system", "token")
#### **Odebráno**
* `dog://sign/document` odebrání `signer[].system`, nahrazeno `signer[].type = "system"`
---
### **Postup podpisu dokumentu pomocí dotazování**
1. Nahrání dokumentu s metadaty (definice podpisu, PDF soubor) (sign/document)
1. Opakované volání na stav dokumentu (sign/document/status)
1. Stažení dokumentu (sign/document/download)
### **Postup podpisu dokumentu pomocí callback**
1. Nahrání dokumentu s metadaty (definice podpisu, PDF soubor, endpoint pro callback)
1. Pokud dojde k podpisu dokumentu, je na callback endpoint zasláno potvrzení s odkazem na soubor
### **Umístění API**
#### **TEST** prostředí
* Lokální síť: https://dog.test.ux.bee.corp/api/v1
* Externí zóna: https://apitest.bohemiaenergy.cz/dog
#### **PROD** prostředí
* Lokální síť: https://dog.bee.corp/api/v1
* Externí zóna: https://api.bohemiaenergy.cz/dog
### **Ověření přístupu k API**
Ověření je řešeno pomocí `API-KEY` vloženého do hlavičky
* `Authorization: Bearer <API-KEY>`
V případě použití přístupu z externí zóny, je nutné ještě navíc přístupový `PROXY-KEY` pro `Proxy` umístěný do hlavičky
* `X-APP-KEY: <PROXY-KEY>`
### **Vysvětlivky**
* ==*== - povinné položky
* [color=#ff4500] - další informace na konci dokumentu v Příloze
---
## **Scénáře průběhu komunikace**
### **s uložením do DMS a použitím callback**
```sequence
App->DOG Signer: dog://sign/document
DOG Signer->DMS: Uložení dokumentu
DMS->DOG Signer: Vrácení ID
DOG Signer->SignServer: Registrace dokumentu k podpisu
SignServer->DOG Signer: Vrácení odkazů na podpis
DOG Signer->App: Vrácení Tokenu, odkazů a DMS ID
SignServer->DOG Signer: Callback při podpisu všech podpisů
DOG Signer->SignServer: Kontrola podpisů a žádost o podpis systémových
SignServer->DOG Signer: Potvrzení a předání podepsaného dokumentu
DOG Signer->DMS: Uložení dokumentu
DMS->DOG Signer: Vrácení Verze
DOG Signer->App: dog://sign/callback
```
V `dog://sign/callback` je pak vráceno ID dokumentu v DMS
### **bez uložení do DMS a s použitím callback**
```sequence
App->DOG Signer: dog://sign/document
DOG Signer->SignServer: Registrace dokumentu k podpisu
SignServer->DOG Signer: Vrácení odkazů na podpis
DOG Signer->App: Vrácení Tokenu a odkazů
SignServer->DOG Signer: Callback při podpisu všech podpisů
DOG Signer->SignServer: Kontrola podpisů a žádost o podpis systémových
SignServer->DOG Signer: Potvrzení a předání podepsaného dokumentu
DOG Signer->App: dog://sign/callback
```
V `dog://sign/callback` je vrácen soubor v `BASE64`
### **s uložením do DMS a bez použití callback**
```sequence
App->DOG Signer: dog://sign/document
DOG Signer->DMS: Uložení dokumentu
DMS->DOG Signer: Vrácení ID
DOG Signer->SignServer: Registrace dokumentu k podpisu
SignServer->DOG Signer: Vrácení odkazů na podpis
DOG Signer->App: Vrácení Tokenu, odkazů a DMS ID
SignServer->DOG Signer: Callback při podpisu všech podpisů
DOG Signer->SignServer: Kontrola podpisů a žádost o podpis systémových
SignServer->DOG Signer: Potvrzení a předání podepsaného dokumentu
DOG Signer->DMS: Uložení dokumentu
DMS->DOG Signer: Vrácení Verze
App->DOG Signer: dog://sign/document/status
DOG Signer->SignServer: Ověření stavu dokumentu
SignServer->DOG Signer: Potvrzení stavu dokumentu
DOG Signer->App: Potvrzení stavu dokumentu
```
Protože volání callback ze SignServeru může být zpožděno a protože proces podpisu systémových podpisů může trvat několik vteřin je nutné aby před stažení dokumentu z DMS proběhlo ověření, že je dokument již podepsán a správně uložen.
Pokud je stav `SIGNED`, tak je nová verze dokumentu pod ID v DMS. V případě `NOT_SIGNED` je nutné počkat a kontrolovat stav v pravidelných intervalech.
### **bez uložení do DMS a bez použití callback**
```sequence
App->DOG Signer: dog://sign/document
DOG Signer->SignServer: Registrace dokumentu k podpisu
SignServer->DOG Signer: Vrácení odkazů na podpis
DOG Signer->App: Vrácení Tokenu a odkazů
SignServer->DOG Signer: Callback při podpisu všech podpisů
DOG Signer->SignServer: Kontrola podpisů a žádost o podpis systémových
SignServer->DOG Signer: Potvrzení provedení podpisu
App->DOG Signer: dog://sign/document/status
DOG Signer->SignServer: Ověření stavu dokumentu
SignServer->DOG Signer: Potvrzení stavu dokumentu
DOG Signer->App: Potvrzení stavu dokumentu
App->DOG Signer: dog://sign/document/download
DOG Signer->SignServer: Žádost o dokument
SignServer->DOG Signer: Vrácení dokumentu
DOG Signer->App: Vrácení dokumentu
```
Protože volání callback ze SignServeru může být zpožděno a protože proces podpisu systémových podpisů může trvat několik vteřin je nutné aby před stažení dokumentu proběhlo ověření, že je dokument již podepsán a je tedy možné jej stáhnout.
---
## **Způsob zpracování chyb**
#### **V případě jakékoliv chyby je vráceno například:**
```json=
{
"intID": "b59fb26d-89df-4fea-9560-0dc3379eda82",
"response": {
"error": {
"code": "MISSING_MANDATORY_DATA",
"message": "Missing mandatory nodes: entity",
"data": {}
}
}
}
```
#### **Popis:**
* **intID** `string` - interní ID DOG, pod kterým je provedeno zalogování požadavku
* **response** `object` - objekt s tělem odpovědi
* **error** `object` - objekt s tělem chyby
* **code** `string` - označení chyby, strojově zpracovatelný kód
* **message** `string` - doplňující popis chyby, většinou předávaná hodnota z dalších systémů nebo lidsky čitelná podoba chyby
* **data** `object` - další strojově zpracovatelné detaily chyby
### **Seznam kódů**
| Code | Message | Data | Popis |
| --------------------------- | -------------------------------------- |:----:| ----- |
| `INVALID_INPUT_JSON` | Chyba z parseru | - | Vstupní data nejsou validní JSON formát |
| `MISSING_MANDATORY_DATA` | List chybějících polí vstupních dat | - | Kontrola vstupních dat, kontrola povinných položek a jejich struktury, případně validita stupních dat |
| `INVALID_INPUT_FILE_FORMAT` | | - | Chyba MIME TYPE vstupních souborů |
| `SIGNOSOFT_INTERNAL_ERROR` | Přeposlaná chyba z podpisového serveru | - | Vnitřní chyba na straně podpisového serveru |
| `DMS_INTERNAL_ERROR` | Přeposlaná chyba z DMS | - | Vnitřní chyba na strane DMS |
| `DB_INTERNAL_ERROR` | | - | Vnitřní chyba databáze, chyba není eskalovaná, je logovaná pouze interně |
| `DOG_SIGNER_INTERNAL_ERROR` | | - | Vnitřní chyba DOG Signer |
**Způsob reportování chyb je u všech endpointů stejný. Dále nebude popisovaný.**
---
## **dog://sign/document**
> Vytvoření a nahrání dokumentu do podpisového server. Založení podpisových polí a vygenerování odkazů pro provedení podpisu.
**Metoda:** `POST` \
**URL:** `/sign/document` \
**Tělo dotazu:** `application/json` \
**Tělo odpovědi:** `application/json`
#### **Příklad:**
```json=
{
"signer": [
{
"firstname": "Jan",
"secondname": "Novák",
"mail": "jannovak1980@seznam.cz",
"expirein": 86400,
"position": {
"page": 1,
"positionX": 137,
"positionY": 239,
"width": 60,
"height": 15
},
{
"type": "token",
"token": "Zsm5XScO",
"firstname": "Anna",
"secondname": "Nováková",
"mail": "annanovakova1980@seznam.cz",
"expirein": 86400,
"position": {
"positionX": 137,
"positionY": 200,
"width": 60,
"height": 15
},
{
"firstname": "František",
"secondname": "Novák",
"expirein": 86400,
"inperson": true,
"position": {
"page": 1,
"positionX": 137,
"positionY": 239,
"width": 60,
"height": 15
},
{
"type": "system",
"mail": "rsima@bohemiaenergy.cz",
"position": {
"positionX": 50,
"positionY": 239,
"width": 60,
"height": 15
}
}
],
"document": {
"name": "Souhlas s osobními údaji",
"entity": "BE",
"web": "https://www.bohemiaenergy.cz/podekovani-za-podpis"
},
"callback": "https://app.bee.corp/callback",
"file": {
"dms": {
"name": "",
"xml": ""
},
"data": "data:application/pdf;base64,JVBERi0xLjcKJeLjz9MKMjIgMCBvYmo..."
}
}
```
#### **Popis:**
* **signer** ==*== `array of objects`- pole objektů jednotlivých podpisů
* **type** `string` ["bio"] - určuje typ podpisu. `bio` - biometrický podpis. `system` - systémově doplněný podpis, musí být v `signer[].mail` účet, který má vyplněný digitální podpis v podpisovém serveru. `token` - podpis dokumentu pomocí tokenu zaslaného jinou cestou.
* **token** `string` - heslo, které bude nastaveno a požadováno při podpisu. Pokud nebude předáno bude vygenerováno automaticky a vráceno v odpovědi. Délka hesla bude dle nastavení `DOG.signosoft.settings.token.length` a skládat se bude ze znaků definovaných v `DOG.signosoft.settings.token.chars`. Pokud je předané heslo kratší než `DOG.signosoft.settings.token.length`, tak je vrácena chyba vstupních dat.
* **firstname** `string` - jméno signatáře (==*== při `signer[].type=="bio" || signer[].type=="token")
* **secondname** `string` - příjmení signatáře (==*== při `signer[].type=="bio" || signer[].type=="token")
* **mail** `string` - emailová adresa signatáře, ID signatáře, je na něj odkazováno v odpovědi a je považován za unikátní v rámci podpisového serveru. Musí to být jedna validní emailová adresa. (==*== při `(signer[].type=="bio" || signer[].type=="token") && signer[].inperson = false`)
* **inperson** `bool` [*false*] - podpis na místě bez nutnosti mít emailovou adresu
* **expirein** `int` [*259200*] - expirace odkazu v sekundách (now + expirein)
* **expireat** `timestamp` - expirace odkazu v definovaném čase (unixtimestamp [seconds])
* **position** ==*== `object` - objekt popisující pozici podpisu
* **page** `int` [*1*] - číslo stránky umístění podpisu
* **positionx** `float` - pozice podpisu v [mm] od levého okraje (==*== při `lookup==""`)
* **positiony** `float` - pozice podpisu v [mm] od horního okraje (==*== při `lookup==""`)
* **width** ==*== `float` - šířka pole podpisu v [mm]
* **height** ==*== `float` - výška pole podpisu v [mm]
* **lookup** `string` - text od kterého bude určena pozice podpisového pole od levého dolního rohu hledaného textu
* **offsetx** `float` - posunutí podpisového pole od textu v lookup (==*== při `lookup!=""`)
* **offsety** `float` - posunutí podpisového pole od textu v lookup (==*== při `lookup!=""`)
* **document** ==*== `object` - definice objektu popisující dokument
* **name** ==*== `string` - název dokumentu, je zobrazeno v záhlaví stránky při podpisu
* **entity** ==*== `string` - účetní okruh, povolené hodnoty na základě konfiguračního číselníku `DOG.dog.entity[]` [color=#ff4500]
* **web** `string` - odkaz na webovou stránku v případě dokončeného podpisu, je předaný parametr docToken s ID dokumentu
* **callback** `string` - URL endpoint, kam bude zaslaná notifikace o provedeném podpisu (detailně popsáno v sekci dog://sign/callback). Callback adresa musí být **https** s **validním ověřitelným certifikátem**.
* **file** ==*== `object` - definice objektu se souborem určeným k podpisu
* **dms** `object` - objekt popisující soubor pro uložení do DMS
* **name** `string` - název souboru jak bude uložen do DMS
* **xml** `string` - XML metadata, obsah elementu \<v3:xmlFileAtts> při SOAP volání DMS
* **data** `string` - data mimetype s base64 souborem, akceptace pouze `application/pdf`
#### **Poznámky:**
**POZOR** `signer[].mail` musá být email s validní (existující) doménou, jinak podpisový server nedovolí podepsat.
Pokud není vyplněno `signer[].expirein` ani `signer[].expireat`, je čas validity odkazu nastaven na aktuální čas plus konfigurační hodnota `DOG.signosoft.settings.expirein`.
Pokud není vyplněno `document.web`, je automaticky doplněno na konfigurační hodnotu `DOG.signosoft.entity.<document.entity>.web`.
V případě, že `file.dms.name` a `file.dms.xml` není vyplněno, nedojde k uložení do DMS. Pro úspěšné uložení do DMS je nutné zajistit XML data od správce DMS a zajistit práva na daný typ souboru pro DOG.
`signer[].inperson` má omezení v případě použití více podpisů. Každý odkaz na podpis je sice unikátní, ale podpis lze provést na všechny místa podpisu z kteréhokoliv odkazu.
#### **Odpověď:**
```json=
{
"intID": "9e584f06-1b80-4752-bb55-ab6f0df95ea5",
"response": {
"document": {
"token": "dd04d303-fddb-4e6d-b6dc-7e5f52b52e37_1592341833031"
},
"links": [
{
"bioId": "f91a27a41a7b76dc2caa1aed1f71bb0ccbc4f87716bb4680177...",
"signer": "jon.doe@seznam.cz",
"url": "https://podpis.bohemiaenergy.cz?bioid=f91a27a41a7b76d...",
"validTo": 1592428233,
"token": "Zsm5XScO"
}
],
"file": {
"dms": {
"id": 3367441,
"version": 1
}
}
}
}
```
#### **Popis:**
* **intID** `string` - interní ID DOG, pod kterým je provedeno zalogování požadavku
* **response** `object` - objekt s tělem odpovědi
* **document** `object` - objekt s vlastnostmi dokumentu
* **token** `string` - unikátní identifikátor dokumentu v rámci podpisového serveru
* **links** `array of objects` - pole s vytvořenými odkazy k podpisu pro jednotlivé signatáře
* **bioId** `string` - identifikátor podpisu, použito pro `dog://sign/link/*`
* **signer** `string` - email signatáře, shodný s signer[].mail ze vstupních dat
* **url** `string` - odkaz k podpisu dokumentu
* **validTo** `timestamp` - platnost odkazu do (unixtimestamp [seconds])
* **token** `string` - pokud byl podpis definován `signer[].type=="token"`, tak bude vráceno zadané heslo pomocí `signer[].token` nebo automaticky vygenerované
* **file** `object` - objekt souboru
* **dms** `object` - objekt souboru v DMS
* **id** `int` - ID DMS souboru
* **version** `int` - Verze souboru v DMS
---
## **dog://sign/document/delete**
> Vymazání dokumentu a na něj navázané odkazy pro podpis. Lze smazat pouze dokument, který nebyl podepsaný nebo byl částečně podepsaný.
**Metoda:** `POST` \
**URL:** `/sign/document/delete` \
**Tělo dotazu:** `application/json` \
**Tělo odpovědi:** `application/json`
#### **Příklad:**
```json=
{
"document": {
"token": "4c6cb873-c9ab-4c24-ba65-a60ae31db33b_1591898899817"
}
}
```
#### **Popis:**
* **document** `object` - objekt s vlastnostmi dokumentu
* **token** `string` - token z volání `dog://sign/document` z `response.document.token`
#### **Odpověď:**
```json=
{
"intID": "f63924ae-1a4f-4502-ac70-3fe6d9458e7f",
"response": {
"status": "DELETED"
}
}
```
#### **Popis:**
* **intID** `string` - interní ID DOG, pod kterým je provedeno zalogování požadavku
* **response** `object` - objekt s tělem odpovědi
* **document** `object` - objekt s vlastnostmi dokumentu
* **status** `string` - stav provedení smazání dokumentu a na něj navázaných vlastností
#### **Poznámky:**
Dochází pouze ke smazanání dokumentu na straně podpisového serveru. Nedojde ke smazání z DMS.
---
## **dog://sign/document/status**
> Zjištění stavu dokumentu. V případě, že došlo k selhání při předání informace pomocí callback je možné pomocí tohoto endpointu zjistit stav dokumentu. Vhodné volat v nejnutnějších případech pro snížení zbytečné zátěže podpisového serveru.
**Metoda:** `POST` \
**URL:** `/sign/document/status` \
**Tělo dotazu:** `application/json` \
**Tělo odpovědi:** `application/json`
#### **Příklad:**
```json=
{
"document": {
"token": "4c6cb873-c9ab-4c24-ba65-a60ae31db33b_1591898899817"
}
}
```
#### **Popis:**
* **document** `object` - objekt s vlastnostmi dokumentu
* **token** `string` - token z volání `dog://sign/document` z `response.document.token`
#### **Odpověď:**
```json=
{
"intID": "56b686cd-3133-47b7-b368-e53446604618",
"response": {
"status": "NOT_SIGNED",
"missing": [
{
"mail": "jannovak@seznam.cz",
"type": "bio"
},
{
"mail": "rsima@bohemiaenergy.cz",
"type": "system"
}
]
}
}
```
#### **Popis:**
* **intID** `string` - interní ID DOG, pod kterým je provedeno zalogování požadavku
* **response** `object` - objekt s tělem odpovědi
* **document** `object` - objekt s vlastnostmi dokumentu
* **status** `string` - stav dokumentu, vrácené hodnoty mohou být **SIGNED** nebo **NOT_SIGNED**
* **missing** `array of objects` - pole se seznamem chybějících podpisů
* **mail** `string` - Email signatáře
* **type** `string` - Typ podpisu, odpovídá typům z `dog://sign/document` z `signer[].type` ("bio", "system", "token")
---
## **dog://sign/document/download**
> Stažení dokumentu po provedeném podpisu. Není nutné používat v případě, že je použit callback a je použito DMS pro práci se soubory.
**Metoda:** `POST` \
**URL:** `/sign/document/download` \
**Tělo dotazu:** `application/json` \
**Tělo odpovědi:** `application/json`
#### **Příklad:**
```json=
{
"document": {
"token": "4c6cb873-c9ab-4c24-ba65-a60ae31db33b_1591898899817"
}
}
```
#### **Popis:**
* **document** `object` - objekt s vlastnostmi dokumentu
* **token** `string` - token z volání `dog://sign/document` z `response.document.token`
#### **Odpověď:**
```json=
{
"intID": "845414a7-f1f9-4709-8e09-bfe44500cb5a",
"response": {
"file": {
"data": "data:application/pdf;base64,JVBERi0xLjcKJfbk/N8KMSAwIG9ia..."
}
}
}
```
#### **Popis:**
* **intID** `string` - interní ID DOG, pod kterým je provedeno zalogování požadavku
* **response** `object` - objekt s tělem odpovědi
* **document** `object` - objekt s vlastnostmi dokumentu
* **file** `object` - objekt se souborem
* **data** `string` - data mimetype base64 soubor
---
## **dog://sign/link/update**
> Aktualizace času expirace odkazu na podpis u dokumentu.
**Metoda:** `POST` \
**URL:** `/sign/link/update` \
**Tělo dotazu:** `application/json` \
**Tělo odpovědi:** `application/json`
#### **Příklad:**
```json=
{
"link": {
"bioId": "f91a27a41a7b76dc2caa1aed1f71bb0ccbc4f87716bb4680177b4450b0f...",
"expireIn": 86400
}
}
```
#### **Popis:**
* **link** ==*== `object` - objekt s definicí podpisu
* **bioId** ==*== `string` - token z `response.links[].bioId` z volání `dog://sign/document`
* **expireIn** ==*== `int` [*259200*] - expirace odkazu v sekundách (now + expirein)
* **expireAt** ==*== `timestamp` - expirace odkazu v definovaném čase (unixtimestamp [seconds])
#### **Poznámky:**
Je nutné vyplnit expireIn nebo expireAt. V případě obou má prioritu expireIn.
#### **Odpověď:**
```json=
{
"intID": "a8039fdf-a4e0-4757-befd-09a30b77bf3f",
"response": {
"link": {
"bioId": "f91a27a41a7b76dc2caa1aed1f71bb0ccbc4f87716bb4680177b445...",
"signer": "jannovak@seznam.cz",
"validTo": 1592428279
}
}
}
```
#### **Popis:**
* **intID** `string` - interní ID DOG, pod kterým je provedeno zalogování požadavku
* **response** `object` - objekt s tělem odpovědi
* **link** `object` - objekt s vlastnostmi podpisu
* **bioId** `string` - bioId token podpisu pro potvrzení
* **signer** `string` - email login signatáře pro potvrzení
* **validTo** `timestamp` - časové razítko do kdy platí podpis (unixtimestamp [seconds])
---
---
## **dog://sign/signature/image**
> Stažení obrázků podpisů z dokumentu. Stahuje obrázky pouze pokud na dokumentu existuje finalizovaný podpis. Jinak vrací prázdný objekt.
**Metoda:** `POST` \
**URL:** `/sign/signature/image` \
**Tělo dotazu:** `application/json` \
**Tělo odpovědi:** `application/json`
#### **Příklad:**
```json=
{
"document": {
"token": "4c6cb873-c9ab-4c24-ba65-a60ae31db33b_1591898899817"
}
}
```
#### **Popis:**
* **document** `object` - objekt s vlastnostmi dokumentu
* **token** `string` - token z volání `dog://sign/document` z `response.document.token`
#### **Odpověď:**
```json=
{
"intID": "56b686cd-3133-47b7-b368-e53446604618",
"response": {
"images": [
{
"mail": "jannovak1980@seznam.cz",
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEU..."
}
]
}
}
```
#### **Popis:**
* **intID** `string` - interní ID DOG, pod kterým je provedeno zalogování požadavku
* **response** `object` - objekt s tělem odpovědi
* **images** `array of objects` - pole se seznamem obrázků u finalizovaných podpisů
* **mail** `string` - Email signatáře
* **image** `string` - PNG obrázek podpisu
<!--
---
## **dog://sign/link/delete**
> Smazání odkazu
**Metoda:** `POST` \
**URL:** `/sign/link/delete` \
**Tělo dotazu:** `application/json` \
**Tělo odpovědi:** `application/json`
#### **Příklad:**
```json=
{
"link": {
"bioId": "f91a27a41a7b76dc2caa1aed1f71bb0ccbc4f87716bb4680177b4450b0f8..."
}
}
```
#### **Popis:**
* **link** ==*== `object` - objekt s definicí podpisu
* **bioId** ==*== `string` - token z `response.links[].bioId` z volání `dog://sign/document`
#### **Odpověď:**
```json=
{
"intID": "521b043e-55d1-4464-a1ee-4cd9bfae050c",
"response": {
"status": "LINK_NOT_EXIST"
}
}
```
#### **Popis:**
* **intID** `string` - interní ID DOG, pod kterým je provedeno zalogování požadavku
* **response** `object` - objekt s tělem odpovědi
* **status** `string` - popis výsledku smazání podpisu
-->
---
## **dog://sign/callback**
> V případě, že byl v `dog://sign/document` vyplněn callback a dokument je podepsán, tak bude tento odkaz zavolán a bude předán výsledek z podpisového serveru. Callback adresa musí být **https** s **validním ověřitelným certifikátem**.
**Metoda:** `POST` \
**Tělo odpovědi:** `application/json`
#### **Předaná data bez použití DMS:**
```json=
{
"intID": "845414a7-f1f9-4709-8e09-bfe44500cb5a",
"document": {
"token": "c1227e93-3292-4fd4-be5e-09983e5a836d_1591889611773"
},
"file": {
"data": "data:application/pdf;base64,JVBERi0xLjcKJfbk/N8KMSAwIG9iago8P..."
}
}
```
#### **Popis:**
* **intID** `string` - interní ID DOG, pod kterým je provedeno zalogování požadavku
* **document** `object` - objekt s definicí dokumentu
* **token** `string` - token z volání `dog://sign/document` z `response.document.token`
* **file** `object` - objekt se souborem
* **data** `string` - data mimetype base64 soubor
#### **Předaná data při použití DMS:**
```json=
{
"intID": "845414a7-f1f9-4709-8e09-bfe44500cb5a",
"document": {
"token": "c1227e93-3292-4fd4-be5e-09983e5a836d_1591889611773"
},
"file": {
"dms": {
"id": 3367441,
"version": 2
}
}
}
```
#### **Popis:**
* **intID** `string` - interní ID DOG, pod kterým je provedeno zalogování požadavku
* **document** `object` - objekt s definicí dokumentu
* **token** `string` - token z volání `dog://sign/document` z `response.document.token`
* **file** `object` - objekt se souborem
* **dms** `object` - objekt souboru v DMS
* **id** `int` - ID souboru v DMS
* **version** `int` - verze souboru v DMS, v případě, že došlo k úspěšnému podpisu dokumentu, tak by verze měla být vždy 2. Verze 1 je soubor před podpisem.
#### **Poznámky:**
V případě, že je v body na callback odpověď, tak je pouze zalogována. Není na ni jakkoliv reagováno.
---
## Přílohy
### Číselník DOG.dog.entity[]
```json=
}
"entity": {
"BE": ["BE", "71", "B", "BEE", "bohemiaenergy.cz"],
"CE": ["CE", "82", "C", "comfortenergy.cz"],
"XE": ["XE", "81", "X", "X Energie", "xenergie.cz"],
"3E": ["3E", "100", "E", "3-e.cz"],
"BD": ["BD", "63", "Z", "BEZ", "bezdodavatele.cz"],
"SE": ["SE", "72", "S", "SK", "SKE", "slovakiaenergy.sk"],
"AM": ["AM", "75", "A", "ampermarket.cz"],
"BPL": ["BPL", "beplan.cz"],
"ECS": ["ECS", "77", "P", "energie-cs.cz"]
}
}
```