Poniżej opisano, jak wystawić fakturę VAT przez API i pobrać jej plik PDF. Wszystkie operacje odbywają się w sandboxie, więc nie wpływają na prawdziwe dane.
Wymagania
- Terminal z zainstalowanym
curl. - Adres e-mail do założenia konta testowego.
Kroki
Założenie konta w sandboxie
Konto zakłada się na stronie konto.sandbox-infakt.pl/rejestracja ↗. Konto testowe jest bezpłatne, a dane firmy są na nim zanonimizowane.
Wygenerowanie klucza API
Klucz generuje się w aplikacji sandboxa, w Ustawienia → Inne opcje → API: należy dodać opis klucza, wpisać hasło, zaznaczyć uprawnienia Odczyt danych faktur, klientów i produktów oraz Zarządzanie fakturami, klientami i produktami i kliknąć Wygeneruj. Klucz zapisuje się w zmiennej środowiskowej:
export INFAKT_API_KEY="<klucz-api>"Sprawdzenie połączenia
Połączenie sprawdza się, pobierając listę faktur. Na nowym koncie lista jest pusta:
curl "https://api.sandbox-infakt.pl/v3/invoices.json" \ -H "X-inFakt-ApiKey: $INFAKT_API_KEY"{ "metainfo": { "count": 0, "total_count": 0, "next": "<adres-następnej-strony>", "previous": "<adres-poprzedniej-strony>" }, "entities": [] }Wystawienie faktury
Poniższe żądanie wystawia fakturę VAT na jedną usługę o wartości 100,00 zł netto. Dane nabywcy są przekazywane bezpośrednio w treści faktury:
curl -X POST "https://api.sandbox-infakt.pl/v3/invoices.json" \ -H "X-inFakt-ApiKey: $INFAKT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "invoice": { "payment_method": "cash", "client_company_name": "Testowa Firma sp. z o.o.", "client_tax_code": "2222222222", "services": [ { "name": "Usługa programistyczna", "tax_symbol": "23", "quantity": 1, "unit_net_price": 10000 } ] } }'W odpowiedzi
201 CreatedAPI zwraca całą fakturę. Najważniejsze pola:{ "id": <id-faktury>, "uuid": "<uuid-faktury>", "number": "<numer-faktury>", "kind": "vat", "status": "draft", "net_price": 10000, "tax_price": 2300, "gross_price": 12300 }Kwoty są podawane w groszach:
12300oznacza 123,00 zł brutto. Identyfikatoridfaktury zapisuje się na potrzeby kolejnego kroku:export INVOICE_ID=<id-faktury>Pobranie PDF
curl "https://api.sandbox-infakt.pl/v3/invoices/$INVOICE_ID/pdf.json?document_type=original" \ -H "X-inFakt-ApiKey: $INFAKT_API_KEY" \ -o faktura.pdf
Oczekiwany wynik
W bieżącym katalogu pojawi się plik faktura.pdf z fakturą VAT na kwotę 123,00 zł brutto dla „Testowa Firma sp. z o.o.”. Faktura jest też widoczna w aplikacji sandboxa, w zakładce Przychody.
API utworzyło fakturę synchronicznie, nadało jej numer i wyliczyło VAT według stawki 23%. Przykład pomija obsługę błędów, klientów zapisanych w bazie i wysyłkę do KSeF.