Vytvoriť faktúru
Vytvorí novú faktúru.
Odporúčaný flow
Odporúčaný happy path je poslať clientId a items. To je najjednoduchší spôsob, ak klient už vo Fintoro existuje.
Ak klienta ešte vo Fintoro nemáte alebo nechcete robiť samostatný krok na jeho vytvorenie, pošlite objekt client bez clientId. Backend sa pokúsi klienta dopárovať k existujúcemu záznamu a ak nič nenájde, vytvorí nového klienta.
Ak pošlete clientId aj objekt client, objekt client sa správa ako sparse override snapshotu klienta pre tento konkrétny doklad. Môžete tak upraviť napríklad adresu dodania alebo kontaktné údaje len na tejto faktúre bez zmeny klienta v databáze.
Ako fungujú defaulty
Väčšina dokladových polí je voliteľná. Backend ich vyhodnocuje v tomto poradí:
- explicitná hodnota z payloadu,
- klientské predvolené hodnoty,
- firemné document settings,
- systémový resolver.
V praxi to znamená napríklad:
deliveryMethodId,paymentMethodId,currencyIdalanguageIdsa môžu dopočítať z klienta alebo z firemných nastavení,numberanumericalSeriesIdsa doplnia z primárneho číselného radu, ak ich nepošlete,variableSymbolsa bez explicitnej hodnoty odvodí z finálneho čísla dokladu,bankAccountIdsa bez explicitnej hodnoty vezme z primárneho bankového účtu firmy,currencyRatesa dopočíta podľa meny a dátumu dodania,- ak je finálna mena dokladu
EUR, backend vždy uloží a vráticurrencyRate = 1.0, aj keď pošlete inú hodnotu, issueDateadeliveryDatedefaultujú na dnešný deň.
Ako funguje client resolution
Client resolution je striktne deterministický:
- ak pošlete
clientId, backend načíta klienta podľa ID v rámci, - ak
clientIdnepošlete, objektclientsa používa na dopárovanie alebo vytvorenie klienta, - ak pošlete
clientIdaj objektclient, objektclientsa použije iba ako snapshot override pre doklad.
Matching prebieha deterministicky v tomto poradí:
- pri firmách:
vatId, potomcountryId + subjectId, potomname + email, potomname + street, - pri fyzických osobách:
name + email, potomname + street.
Ak matching nič nenájde, vytvorí sa nový klient. Ak matching nájde viac klientov, backend použije prvý záznam v stabilnom poradí.
Ak pošlete explicitné clientId, ktoré neexistuje alebo nepatrí, endpoint vráti 422 validačnú chybu pre pole clientId.
Ak pošlete explicitné bankAccountId a taký záznam neexistuje alebo nepatrí, endpoint vráti 422 validačnú chybu pre pole bankAccountId.
Ak bankAccountId nepošlete a firma nemá nastavený žiadny primárny bankový účet, endpoint vráti 422.
Ako fungujú položky
Položka môže byť vytvorená tromi spôsobmi:
- ako manuálna položka s vlastným názvom, jednotkou, cenou a DPH,
- cez
priceListItemIdaquantity, - cez
priceListItemIda sparse override vybraných polí, napríklad ceny alebo názvu.
Ak pošlete zľavu bez discountName, backend doplní lokalizovaný názov zľavy podľa jazyka dokladu.
Príklady requestov
Existujúci klient a manuálna položka:
Inline klient bez clientId:
Cenníková položka s minimálnym payloadom:
Ak pošlete Idempotency-Key, rovnaký key s rovnakým payloadom vráti pôvodnú odpoveď bez druhého vytvorenia faktúry.
Autorizace
Hlavičky
Tělo
- Option 1
- Option 2
Payload pre vytvorenie faktúry. V bežnom prípade stačí poslať clientId a items; ostatné polia môže backend dopočítať. Musíte poslať buď clientId, alebo objekt client.
Položky faktúry. Toto pole je povinné aj vtedy, keď väčšinu ostatných hodnôt necháte dopočítať backendom.
1 - 100 elementsPayload jednej položky faktúry. Podporované sú tri režimy: manuálna položka, priceListItemId + quantity, alebo priceListItemId s čiastočnými override poľami. Povinné je vždy quantity. Ak nepošlete priceListItemId, musíte poslať aj name, unitPrice a vatRate. unitId je voliteľné; ak ho pri manuálnej položke nepošlete, backend použije jednotku 1 (ks / Unit::Piece). Ak priceListItemId pošlete, backend si z cenníkovej položky vie dopočítať názov, jednotku, cenu a sadzbu DPH; payload potom slúži len ako sparse override.
- Option 1
- Option 2
ID spôsobu dodania z referenčnej tabuľky spôsobov dodania. Priorita je payload → klientská predvolená hodnota → nastavenia dokladov firmy.
1
ID spôsobu úhrady z referenčnej tabuľky spôsobov úhrady. Priorita je payload → klientská predvolená hodnota → nastavenia dokladov firmy.
1
ID meny z referenčnej tabuľky mien. Priorita je payload → klientská predvolená hodnota → nastavenia dokladov firmy.
1
ID jazyka z referenčnej tabuľky jazykov. Priorita je payload → klientská predvolená hodnota → nastavenia dokladov firmy.
1
ID QR typu z referenčnej tabuľky QR typov. Ak ho nepošlete, použije sa nastavenia dokladov firmy.
1
Odpověď
Faktúra bola vytvorená.
Faktúra.
ID spôsobu dodania z referenčnej tabuľky spôsobov dodania.
1
ID spôsobu úhrady z referenčnej tabuľky spôsobov úhrady.
1
ID meny z referenčnej tabuľky mien.
1
ID jazyka z referenčnej tabuľky jazykov.
1
ID QR typu z referenčnej tabuľky QR typov.
1

