> ## Documentation Index
> Fetch the complete documentation index at: https://api.basetools.cz/llms.txt
> Use this file to discover all available pages before exploring further.

# Práce s fakturami

> addInvoice, addOrderInvoiceFile — vystavení faktury v Base a nahrazení externí fakturou z ERP

Base umí fakturu buď vystavit sám, nebo naopak převzít hotovou fakturu vystavenou externě (typicky ve vašem ERP/účetním systému) a napojit ji na objednávku.

## Vystavení faktury v Base

[`addInvoice`](https://api.baselinker.com/index.php?method=addInvoice) vystaví fakturu k objednávce podle zvolené číselné řady.

| Parametr    | Typ  | Popis                                                                                                                                                                                 |
| ----------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `order_id`  | int  | ID objednávky.                                                                                                                                                                        |
| `series_id` | int  | ID číselné řady — seznam řad získáte metodou [`getSeries`](https://api.baselinker.com/index.php?method=getSeries).                                                                    |
| `vat_rate`  | text | Nepovinné. `"DEFAULT"` (dle číselné řady), `"ITEM"` (sazba dle položky objednávky), `"EXPT"`/`"ZW"` (osvobozeno od DPH), `"NP"`, `"OO"` (reverse charge), nebo konkrétní číslo 0–100. |

```json theme={null}
{ "order_id": 4553562, "series_id": 1 }
```

Odpověď vrací `invoice_id`, se kterým dále pracujete (stažení přes [`getInvoiceFile`](https://api.baselinker.com/index.php?method=getInvoiceFile), přehled přes [`getInvoices`](https://api.baselinker.com/index.php?method=getInvoices)).

## Nahrazení fakturou z externího systému

Pokud fakturu vystavujete ve vlastním ERP (a nechcete duplicitně řešit číslování v Base i mimo něj), použijte [`addOrderInvoiceFile`](https://api.baselinker.com/index.php?method=addOrderInvoiceFile) — nahradí standardní Base fakturu vaším vlastním PDF (případně XML u zemí, kde je to povolené, např. Brazílie).

| Parametr                  | Typ         | Popis                                                                      |
| ------------------------- | ----------- | -------------------------------------------------------------------------- |
| `invoice_id`              | int         | ID faktury v Base (musí už existovat — založená např. přes `addInvoice`).  |
| `file`                    | text        | PDF (nebo XML) v base64, s povinným prefixem `"data:"` na začátku řetězce. |
| `external_invoice_number` | varchar(30) | Číslo faktury z vašeho systému — přepíše číslo přidělené Base.             |

```json theme={null}
{
  "invoice_id": 153845,
  "file": "data:4AAQSkZJRgABA[...]",
  "external_invoice_number": "FV/2024/001"
}
```

### Doporučený postup

1. Ve vašem ERP vznikne faktura (číslo, PDF).
2. V Base založíte fakturu k objednávce přes `addInvoice` (potřebujete jen platnou `series_id` — konkrétní čísla/sazby nejsou v tuto chvíli podstatná, protože je za chvíli přepíšete).
3. Zavoláte `addOrderInvoiceFile` s `invoice_id` z kroku 2, přiložíte PDF z ERP a nastavíte `external_invoice_number` na skutečné číslo z vašeho systému.
4. Odeslání faktury dál do marketplace (pokud to daná integrace podporuje) se typicky váže na konkrétní status objednávky — nastavuje se v detailu dané integrace, podobně jako u [přepravních čísel](/cs/objednavky/prepravni-stitky#jak-se-číslo-zásilky-dostane-zpátky-do-zdroje-objednávky). Časování odesílání (dávky, ne instantně) je popsané v [Automatizace a webhooky](/cs/objednavky/automatizace-a-webhooky#doručování-trackovacích-čísel-a-faktur-do-marketplace).

<Tip>
  Pokud máte složitější logiku číselných řad (různá střediska, různé země, různé DPH režimy), zvažte řízení této logiky přes [extra pole](/cs/objednavky/extra-pole) namísto natvrdo zapsaných pravidel v integraci — je to snazší na údržbu. Netriviální scénáře doporučujeme probrat s implementačním oddělením.
</Tip>
