Przeskocz do opisu głównego

Wysyłka faktury

POST /invoices/{environment}/send

Wysyła fakturę do KSeF w trybie online lub offline.

Tryby wysyłki

TrybOpis
onlineFaktura szyfrowana i wysyłana bezpośrednio do KSeF. Endpoint czeka na potwierdzenie i zwraca numer KSeF. Wymaga aktywnej sesji KSeF i dostępności KSeF.
offlineFaktura podpisywana certyfikatem offline i zapisywana do kolejki. Wymaga aktywnej awarii/symulacji KSeF.

Parametry ścieżki

ParametrTypWymaganyOpis
environmentstringtest, demo lub prod

Request Body

{
"invoiceXml": "PD94bWwgdmVyc2lvbj0i...",
"mode": "online"
}
PoleTypWymaganyOpis
invoiceXmlstringTreść XML faktury zakodowana w base64
modestringonline lub offline

Odpowiedź 200 — tryb online

{
"mode": "online",
"ksefNumber": "1234567890-20260101-ABCDEF-12",
"referenceNumber": "20260101-AU-XXXXXXXX-XXXX-XX",
"status": "sent",
"invoiceNumber": "FV/2026/01/001"
}
PoleTypOpis
modestringZawsze online
ksefNumberstring | nullNumer KSeF przypisany do faktury (null jeśli wciąż przetwarzana)
referenceNumberstringNumer referencyjny sesji KSeF
statusstringsent (uzyskano numer KSeF) lub pending (wciąż przetwarzana)
invoiceNumberstringNumer faktury z XML (element P_2)
Referencja sesji

referenceNumber jest automatycznie zapisywany do synced_invoices.session_reference_number przez ksef-proxy. Ta referencja jest wymagana do późniejszego pobrania UPO przez endpoint statusu.

Odpowiedź 200 — tryb offline

{
"mode": "offline",
"offlineId": "uuid",
"status": "signed",
"invoiceNumber": "FV/2026/01/001",
"qrLinkInvoice": "https://qr-test.ksef.mf.gov.pl/...",
"qrLinkCertificate": "https://qr-test.ksef.mf.gov.pl/..."
}
PoleTypOpis
modestringZawsze offline
offlineIdstring (uuid)ID zapisanej faktury offline
statusstringsigned — faktura podpisana i dodana do kolejki
invoiceNumberstringNumer faktury z XML
qrLinkInvoicestring | nullURL weryfikacyjny QR dla faktury
qrLinkCertificatestring | nullURL weryfikacyjny QR dla certyfikatu

Kody błędów

KodOpis
400Błędne parametry (brak XML, brak mode)
401Brak autoryzacji
404Brak aktywnej sesji KSeF (online) lub certyfikatu (offline)
409Konflikt trybu — np. KSeF dostępny przy mode=offline lub KSeF niedostępny przy mode=online. Komunikat błędu zawiera szczegóły przyczyny (symulacja lub rzeczywista awaria).
502Błąd KSeF — komunikat wzbogacony o kontekst awarii, jeśli dotyczy
Świadomość awarii

Wszystkie endpointy REST API komunikujące się z KSeF sprawdzają flagi awarii/symulacji przed wykonaniem żądania. Jeśli awaria lub symulacja jest aktywna, API zwraca błąd 409 z opisowym komunikatem informującym:

  • Czy to symulacja (🔧) czy rzeczywista awaria (🚨)
  • Czy administrator potwierdził sytuację
  • Że dostępne są tylko akcje offline

Jeśli żądanie do KSeF się nie powiedzie, a żadne flagi nie są ustawione, komunikat informuje, że administrator nie potwierdził jeszcze przyczyny.