Zamówienie przez API w Fakturownia tworzysz, ustawiając w żądaniu parametr kind: estimate. Ten artykuł jest przeznaczony dla użytkowników oraz integratorów łączących zewnętrzne systemy z Fakturownia. Znajdziesz tu gotowe przykłady żądań, opis dostępnych statusów oraz sposób konwersji zamówienia na fakturę.
Jak utworzyć zamówienie przez API?
Wyślij żądanie POST na endpoint /invoices.json z parametrem "kind": "estimate". Oprócz kind wymagane jest podanie przynajmniej jednej pozycji dokumentu - bez niej API zwróci błąd 422. Pozostałe dane (sprzedawca, adres nabywcy, sposób płatności) działają tak samo jak przy tworzeniu zwykłej faktury - szczegółowy opis wszystkich pól znajdziesz w dokumentacji API na GitHub.
Przykład żądania tworzącego zamówienie:
curl https://twojadomena.fakturownia.pl/invoices.json \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"api_token": "API_TOKEN",
"invoice": {
"kind": "estimate",
"buyer_name": "Klient Sp. z o.o.",
"buyer_tax_no": "5252445767",
"positions": [
{"name": "Usługa", "tax": 23, "total_price_gross": 123.00, "quantity": 1}
]
}
}'
Jak nie pomylić podobnych typów dokumentów?
W Fakturownia dostępnych jest kilka podobnie brzmiących typów dokumentów nieksięgowych. Różnią się przeznaczeniem i wartością parametru kind:
| Co chcesz wystawić | Wartość kind |
|---|---|
| Zamówienie | estimate |
| Własny dokument nieksięgowy | client_order |
| Oferta cenowa (z terminem ważności) | price_offer |
Jak zmienić status zamówienia?
Do zmiany statusu służy dedykowany endpoint: POST /invoices/{id}/change_status.json, z parametrem status przekazanym w adresie żądania. Wartość {id} to identyfikator dokumentu zwrócony przez API przy jego tworzeniu (pole id w odpowiedzi).
curl -X POST "https://twojadomena.fakturownia.pl/invoices/{id}/change_status.json?api_token=API_TOKEN&status=paid"
Dostępne wartości pola status:
- issued – wystawione,
- sent – wysłane,
- paid – opłacone,
- partial – częściowo opłacone,
- rejected – odrzucone,
- completed – zrealizowane (tylko konta z ustawieniami polskimi).
Jak wystawić fakturę na podstawie zamówienia?
Zamówienie możesz przekształcić w fakturę VAT, fakturę zaliczkową lub fakturę końcową. W każdym przypadku używasz parametru copy_invoice_from, podając identyfikator zamówienia (wartość pola id zwróconego przy tworzeniu zamówienia).
Zwykła faktura VAT na podstawie zamówienia
{
"api_token": "API_TOKEN",
"invoice": {
"kind": "vat",
"copy_invoice_from": ID_ZAMOWIENIA
}
}
Faktura zaliczkowa na podstawie zamówienia
Poniższy przykład tworzy fakturę zaliczkową na 10% wartości zamówienia.
{
"api_token": "API_TOKEN",
"invoice": {
"kind": "advance",
"copy_invoice_from": ID_ZAMOWIENIA,
"advance_creation_mode": "percent",
"advance_value": "10"
}
}
Faktura końcowa rozliczająca zaliczki
{
"api_token": "API_TOKEN",
"invoice": {
"kind": "final",
"copy_invoice_from": ID_ZAMOWIENIA,
"invoice_ids": [ID_ZALICZKI_1, ID_ZALICZKI_2]
}
}
Pole invoice_ids przyjmuje tablicę liczb całkowitych - podaj identyfikatory dokumentów zaliczkowych, np. [123, 456]. Wartości znajdziesz w polu id odpowiedzi zwróconej przy tworzeniu każdej faktury zaliczkowej.
Numeracja i uprawnienia - co warto wiedzieć
Numeracja zamówień
Zamówienia mają własną numerację, niezależną od numeracji faktur. Domyślny format możesz zmienić w zakładce Ustawienia > Ustawienia konta > Numerowanie > pole Domyślny format numerowania Zamówień lub w ustawieniach numeracji działu zgodnie z instrukcją osobne ustawienia numeracji dokumentów. Ustawienia działu są nadrzędne względem ustawień ogólnych konta.
Uprawnienia do dokumentów nieksięgowych
Jeśli wywołujesz API w imieniu pracownika z ograniczonymi uprawnieniami, upewnij się, że ma on włączony dostęp do dokumentów nieksięgowych.
Podsumowanie
Żeby przez API Fakturownia wystawić zamówienie, wyślij żądanie POST z kind: estimate i przynajmniej jedną pozycją dokumentu. Pamiętaj o małych literach w wartości kind - literówka nie zwróci błędu, ale zapisze dokument w niespójnym stanie. Konwersję na fakturę VAT, zaliczkową lub końcową obsługuje parametr copy_invoice_from.