Přeskočit na hlavní obsah

Fakturace skladového pohybu přes REST API

Jak fakturovat příjemku či výdejku pomocí API

Autor: Petr Pech

Přes REST API lze od verze 2021.9 fakturovat příjemku či výdejku — tedy vytvořit ze skladového dokladu přijatou nebo vydanou fakturu.


Způsob volání

Požadavek se posílá metodou POST nebo PUT na evidenci dané faktury:

POST https://demo.flexibee.eu/c/demo/faktura-vydana.xml

V těle faktury uvedete element fakturuj s těmito vlastnostmi:

  • skladovyDokl — povinný identifikátor skladového dokladu, který se má fakturovat

  • prenestSlevu — nepovinná hodnota true, pokud má být použita sleva z objednávky

⚠️ Do těla faktury uvádějte pouze povinné vlastnosti, jako je typDokl, cisDosle a datSplat. Ostatní vlastnosti mohou být přepsány daty z příjemky nebo výdejky. Neexistující skladový doklad vrací 400 s kódem importXmlNotFoundForIdentifier.


Příklady použití

Fakturace příjemky

<winstrom version="1.0">
<faktura-prijata>
<id>ext:FAP</id>
<typDokl>code:FAKTURA</typDokl>
<cisDosle>123</cisDosle>
<datSplat>2024-07-14</datSplat>
<fakturuj>
<skladovyDokl>ext:PRIJEMKA123</skladovyDokl>
</fakturuj>
</faktura-prijata>
</winstrom>

Fakturace výdejky

<winstrom version="1.0">
<faktura-vydana>
<id>ext:FAV</id>
<typDokl>code:FAKTURA</typDokl>
<fakturuj>
<skladovyDokl>ext:VYDEJ123</skladovyDokl>
</fakturuj>
</faktura-vydana>
</winstrom>

Fakturace výdejky s aplikací slevy z objednávky

<winstrom version="1.0">
<faktura-vydana>
<id>ext:FAV</id>
<typDokl>code:FAKTURA</typDokl>
<fakturuj>
<skladovyDokl>ext:VYDEJ123</skladovyDokl>
<prenestSlevu>true</prenestSlevu>
</fakturuj>
</faktura-vydana>
</winstrom>

Totéž v JSON

{
"winstrom": {
"@version": "1.0",
"faktura-vydana": {
"id": "ext:FAV",
"typDokl": "code:FAKTURA",
"fakturuj": {
"skladovyDokl": "ext:VYDEJ123"
}
}
}
}


Hromadná fakturace příjemek a výdejek

API umožňuje i hromadnou fakturaci — zajistíte ji opakováním volání služby fakturuj v jednom požadavku pod stejným externím identifikátorem faktury.

Příklad v JSON

Fakturace dvou skladových příjemek do jedné faktury přijaté včetně doprovodných informací pro fakturu:

{
"winstrom": {
"@version": "1.0",
"faktura-prijata": [
{
"id": "ext:ESHOP:1234",
"typDokl": "code:FAKTURA",
"firma": "641",
"datVyst": "2024-09-16",
"duzpPuv": "2024-09-16",
"datSplat": "2024-09-30",
"duzpUcto": "2024-09-16",
"varSym": "703000106",
"szbDphSniz": 12.0,
"szbDphZakl": 21.0,
"formaUhradyCis": "code:HOTOVĚ",
"cisDosle": "1",
"fakturuj": {
"skladovyDokl": "1",
"prenestSlevu": true
}
},
{
"id": "ext:ESHOP:1234",
"fakturuj": {
"skladovyDokl": "2",
"prenestSlevu": true
}
},
{
"id": "ext:ESHOP:1234",
"@removeExternalIds": "ext:ESHOP",
"fakturuj": {
"skladovyDokl": "3",
"prenestSlevu": true
}
}
]
}
}

Příklad v XML

<?xml version="1.0" encoding="UTF-8" ?>
<winstrom version="1.0">
<faktura-prijata>
<id>ext:ESHOP:1234</id>
<typDokl>code:FAKTURA</typDokl>
<firma>641</firma>
<datVyst>2024-09-16</datVyst>
<duzpPuv>2024-09-16</duzpPuv>
<datSplat>2024-09-30</datSplat>
<duzpUcto>2024-09-16</duzpUcto>
<varSym>1</varSym>
<cisDosle>1</cisDosle>
<fakturuj>
<skladovyDokl>1</skladovyDokl>
<prenestSlevu>true</prenestSlevu>
</fakturuj>
</faktura-prijata>
<faktura-prijata>
<id>ext:ESHOP:1234</id>
<fakturuj>
<skladovyDokl>2</skladovyDokl>
<prenestSlevu>true</prenestSlevu>
</fakturuj>
</faktura-prijata>
<faktura-prijata removeExternalIds="ext:ESHOP">
<id>ext:ESHOP:1234</id>
<fakturuj>
<skladovyDokl>3</skladovyDokl>
<prenestSlevu>true</prenestSlevu>
</fakturuj>
</faktura-prijata>
</winstrom>

ℹ️ Externí identifikátor v posledním bloku se odstraňuje atributem removeExternalIds, respektive vlastností @removeExternalIds v JSON. Bez toho by faktura zůstala navázána na externí identifikátor ext:ESHOP:1234 a další hromadné volání by ji našlo a upravilo.


Související

Dostali jste odpověď na svou otázku?