Skip to content

Pierwsze kroki z KSeF

Jak w 5 minut wysłać fakturę z sandboxa do testowego KSeF i odebrać numer KSeF.

Zaktualizowano

Oprogramowanie inFakt przygotuje plik w formacie FA(3), wyśle go do środowiska testowego i odbierze numer KSeF.

Wymagania

  • Konto w sandboxie i klucz API z uprawnieniami do faktur (Szybki start, kroki 1–2).
  • Klucz zapisany w zmiennej INFAKT_API_KEY.

Konto w sandboxie jest automatycznie połączone z testowym KSeF ↗. Na produkcji integrację konfiguruje się jednorazowo w aplikacji inFakt, za pomocą certyfikatu KSeF.

Kroki

  1. Sprawdzenie połączenia z KSeF

    curl "https://api.sandbox-infakt.pl/v3/ksef2/integration.json" \
      -H "X-inFakt-ApiKey: $INFAKT_API_KEY"
    {
      "active": true,
      "costs_last_fetched_at": "<data>",
      "incomes_last_fetched_at": "<data>",
      "last_check_at": "<data>"
    }

    Wartość "active": true oznacza, że konto może wysyłać faktury do KSeF.

  2. Wystawienie faktury z wysyłką do KSeF

    Parametr send_to_ksef=true powoduje wysłanie faktury do KSeF zaraz po jej utworzeniu:

    curl -X POST "https://api.sandbox-infakt.pl/v3/invoices.json?send_to_ksef=true" \
      -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 }
          ]
        }
      }'

    Identyfikator uuid faktury z odpowiedzi zapisuje się na potrzeby kolejnego kroku:

    export INVOICE_UUID=<uuid-faktury>
  3. Sprawdzenie statusu w KSeF

    curl "https://api.sandbox-infakt.pl/v3/ksef2/documents/$INVOICE_UUID/status.json" \
      -H "X-inFakt-ApiKey: $INFAKT_API_KEY"

    Bezpośrednio po wysyłce status ma wartość pending lub sent. Żądanie należy ponawiać co kilka sekund, aż status zmieni się na success.

Oczekiwany wynik

{
  "request_uuid": "<uuid-wysyłki>",
  "invoice_uuid": "<uuid-faktury>",
  "invoice_kind": "vat",
  "ksef_number": "<numer-ksef>",
  "status": "success",
  "status_description": "<opis>",
  "timestamps": {
    "request_created_at": "<data>",
    "request_finished_at": "<data>"
  }
}

Pole ksef_number zawiera numer nadany fakturze przez KSeF. Od tego momentu faktura jest dostępna dla nabywcy w KSeF.

Następny krok

Wysyłka faktury do KSeF: wysyłka istniejącej faktury, statusy przetwarzania, błędy i webhooki.

Type to search…

↑↓ wybór↵ otwórzEsc zamyka