Sedíš nad backlogem a říkáš si: „Export CSV zase selhal? Fakt jo?“ Přesně. Ruční přepisování faktur do ERP je očistec. API pro vývojáře ti dá klid: systém si s Doklad.ai povídá sám a ty koukáš jen na čistá data.
Co přesně naše API umí a proč se o něj opřít
API pro vývojáře v Doklad.ai je navržené tak, aby ses k datům dostal rychle, bezpečně a bez záseků. Faktury, zálohovky, kontakty, sklady, párování plateb, cashflow přehledy. Všechno přes jednotné endpointy, konzistentní kódy a čitelné chyby. Prostě to, co chceš jako vývojář slyšet.
Jak začít: od klíče k první faktuře do 15 minut
Chceš rychlý start? Jasně. Tohle je nejkratší cesta od nuly k prvnímu úspěšnému requestu.
1) Založ sandbox a vygeneruj token
2) Ověř přístup a verzi API
/api/v1/me s hlavičkou Authorization: Bearer <TOKEN>3) Vytvoř první fakturu
/api/v1/invoicesexternal_id podle tvého ERP. Později pak synchronizuješ bezpečně bez duplikátů.4) Zapni webhooky
invoice.issued, payment.matched, invoice.cancelledJaké datové modely a endpointy budeš používat nejčastěji
API pro vývojáře stojí na pár jednoduchých, ale dobře promyšlených modelech. Tohle je top pětka, kterou používá 90 % integrací.
Faktury (Invoices)
customer, lines, currency, due_date, vs, tagsKontakty (Customers)
Platby (Payments)
Sklad a náklady (Items, Expenses)
Webhooky a události (Events)
event_idBezpečnost a autentizace: jak to děláme, aby ses nebál
Když integruješ fakturaci a účetnictví, chyba prostě nepřipadá v úvahu. Takže autentizace, oprávnění a audit jsou první liga.
Autentizace
Oprávnění (Scopes)
invoices:read, invoices:write, payments:read, contacts:write…Idempotence a opakovatelnost
Idempotency-Key u zápisových operacíAudit a logování
Verzování a stabilita: co se ti nerozsype při releasu
Mám rád API, které nepřekvapí. Změny jsou fajn, ale ne v pátek večer bez varování.
/api/v1/ držíme beze změn rozhraníTabulka, jak k tomu přistupujeme v praxi:
| Scénář změny | Jak to řešíme | Co to znamená pro tebe |
|---|---|---|
| Přidání pole | Non-breaking v rámci v1 | Stačí ignorovat, pokud nepotřebuješ |
| Přejmenování pole | Nikdy bez nové verze | Bezpečné, žádný skrytý breaking change |
| Odebrání endpointu | Deprekace 6 měsíců + v2 | Dost času a jasný migrační návod |
| Změna limitů | Oznámení 30 dní předem | Upravíš retry/backoff a je klid |
Limity, výkon a škálování: ať se ti to pod zátěží nezlomí
Jasně, děláš integraci, která v noci nasype desetitisíce faktur. API pro vývojáře na to myslí.
Rate limiting a retry
429 Too Many Requests vrací bezpečný Retry-AfterStránkování a filtry
page a per_page, maximum 200updated_from, updated_to pro inkrementální syncWebhook retry
Praktické integrační vzory, které fungují
Tři scénáře, co vídám pořád. A které ti ušetří dny práce.
1) ERP/CRM → Doklad.ai (vystavení faktur)
payment.matched a podle toho měníš stavy v ERP2) E‑shop → Doklad.ai (automat faktur)
/invoices3) Banka → Doklad.ai → tvoje BI (cashflow)
/payments taháš agregace do datového skladuChyby a ladění: jak číst odpovědi a neztratit čas
Chyby máme radši čitelné než poetické. Každý 4xx/5xx vrací kód, strojově čitelný error a lidské message.
400 Bad Request — schází pole, špatný formát, detail v fields[]401 Unauthorized — token/hlavička nesedí, nebo vyexpirované oprávnění403 Forbidden — chybí scope, nebo přístup k danému účtu404 Not Found — id neexistuje, nebo je skryté scope409 Conflict — duplicitní external_id bez idempotence422 Unprocessable Entity — validační chyba položek/DPH429 Too Many Requests — zpomal, čekej Retry-After500/503 — výjimečně; logujeme, máme status stránku a SLAPro sandbox posíláme detailní correlation_id. Ulož si ho do logu; když napíšeš supportu, je to tvůj zlatý klíč.
Bezpečné nasazení: checklist pro produkci
Nechci ti kázat, ale tohle je osvědčený seznam, který drží integrace v kondici.
Idempotency-Key5xx a 429updated_fromPříklad mapování dat: jak z ERP do faktury
Struktura je přímá. Tohle rychle pochopíš i poslepu.
| Tvoje pole v ERP | Pole v Doklad.ai | Poznámka |
|---|---|---|
| customer.id | customer.external_id | Stabilní klíč pro sync |
| customer.ICO | customer.registration_id | IČ, kontrola přes ARES |
| items[].sku | lines[].item_code | Pro párování ceníku |
| items[].price_vat | lines[].unit_price | U nás bez DPH, pošli i sazbu |
| order.vs | vs | Páteř párování plateb |
| order.note | note | Volitelné, uvidí ho účetní |
Dokumentace a nástroje: kde všechno najdeš
Integrace krok za krokem: rychlý plán na 1 sprint
Kdy zvolit API pro vývojáře a kdy raději export/import
Někdy se vyplatí jít lehčí cestou. Jindy je API jasná volba.
| Potřeba | API | Export/Import |
|---|---|---|
| Real‑time aktualizace | ✔︎ | ✖︎ |
| Obousměrná synchronizace | ✔︎ | ✖︎ |
| Jednorázová migrace | ✖︎ | ✔︎ |
| Nulový vendor‑lock | ✔︎ | ✔︎ |
| Nízké náklady bez vývoje | ✖︎ | ✔︎ |
Bezpečnost dat a compliance: ano, řešíme to důsledně
Závěr: API pro vývojáře, co ti zrychlí podnikání
Chceš méně ručních chyb, méně CSV a víc automatizace? API pro vývojáře v Doklad.ai ti otevře dveře k čisté integraci — od faktur přes platby až po reporting. Připoj to jednou, funkčně a bezpečně. A pak už jen sleduj, jak si systémy povídají samy.
Časté otázky
Jak rychle můžu přes API vystavit první fakturu?
Sandbox aktivuješ za minutu, token máš hned. První fakturu přes POST /api/v1/invoices zvládneš do 10–15 minut, pokud máš připravená data zákazníka a položek.
Umí API párovat platby automaticky podle variabilního symbolu?
Ano. Doklad.ai načítá platby z banky a páruje podle VS, částky a data. Ty přes webhook payment.matched dostaneš potvrzení a můžeš změnit stav objednávky v ERP.
Co když při vytváření faktury pošlu request dvakrát?
Použij hlavičku Idempotency-Key. I když request zopakuješ, vznikne jen jeden doklad. Bez ní dostaneš 409 Conflict u stejného external_id.
Máte SDK nebo musím psát integraci od nuly?
Máme oficiální SDK pro JS/TS, Python a PHP, plus Postman kolekci. Klidně ale můžeš jet čisté REST; dokumentace je srozumitelná a obsahuje příklady.
Jak dlouho držíte kompatibilitu starších verzí API?
Major verze držíme stabilní. Při deprekaci dáváme minimálně 6 měsíců a detailní migrační návod. Minor změny jsou non‑breaking a volitelné.
Jak zabezpečím webhook endpoint proti podvržení?
Ověřuj HMAC podpis a časové razítko, přijímej jen HTTPS a používej allowlist IP. Pro jistotu loguj event_id a correlation_id pro audit a replay.