---
title: "Pierwsze kroki z KSeF"
description: "Jak w 5 minut wysłać fakturę z sandboxa do testowego KSeF i odebrać numer KSeF."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.niebieskiorzel.pl/llms.txt
> Use this file to discover all available pages before exploring further.

# Pierwsze kroki z KSeF

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](/pierwsze-kroki/szybki-start/), kroki 1–2).
- Klucz zapisany w zmiennej `INFAKT_API_KEY`.

Konto w sandboxie jest automatycznie połączone z [testowym KSeF](https://ksef-test.mf.gov.pl/). Na produkcji integrację konfiguruje się jednorazowo w aplikacji inFakt, za pomocą certyfikatu KSeF.

## Kroki

1. **Sprawdzenie połączenia z KSeF**

   ```sh
   curl "https://api.sandbox-infakt.pl/v3/ksef2/integration.json" \
     -H "X-inFakt-ApiKey: $INFAKT_API_KEY"
   ```

   ```json
   {
     "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:

   ```sh
   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:

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

   ```sh
   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

```json
{
  "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](/poradniki/ksef/wyslij-fakture/): wysyłka istniejącej faktury, statusy przetwarzania, błędy i webhooki.

Source: https://docs.niebieskiorzel.pl/pierwsze-kroki/ksef/index.mdx
