--- 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"] } } ```