KSeF Faktury
PL
Zapisz się na start
Wczesny dostęp

API jest we wczesnym dostępie: klucze testowe (KSeF TEST) wydajemy partiami osobom z listy startowej. Tryb produkcyjny włączymy później.

Poproś o dostęp

Referencja API

Endpointy webhooków

Endpointy, na które wysyłamy podpisane zdarzenia o fakturach i korektach. Obsługę po stronie odbiorcy opisuje przewodnik Webhooki.

Obiekt WebhookEndpoint

Adres, na który wysyłamy podpisane zdarzenia. Sekret whsec_... widać tylko w odpowiedzi na utworzenie.

Pola

  • idstringwymagane

    Id endpointu.

    Prefiks we_

  • objectstringwymagane

    Rodzaj obiektu.

    Zawsze webhook_endpoint

  • livemodebooleanwymagane

    Tryb endpointu.

  • urlstringwymagane

    Adres odbiorcy.

  • enabled_eventsarray of stringwymagane

    Subskrybowane typy zdarzeń.

  • descriptionstring | null

    Opis.

  • statusstringwymagane

    Stan endpointu.

    Jedna z: enabled, disabled

  • createdintegerwymagane

    Utworzono (sekundy Unix).

Obiekt WebhookEndpoint
{
  "id": "we_Ab3Cd5Ef7Gh9Ij1Kl3Mn5Op7",
  "object": "webhook_endpoint",
  "livemode": false,
  "url": "https://example.com/ksef/webhook",
  "enabled_events": [
    "*"
  ],
  "description": "Shop backend",
  "status": "enabled",
  "created": 1760865185
}

Lista endpointów webhooków

GET /v1/webhook_endpoints

Aktywne endpointy w trybie klucza. Sekretów tu nie ma.

Odpowiedzi

GET /v1/webhook_endpoints
curl https://app.ksefshop.pl/v1/webhook_endpoints \
  -H "Authorization: Bearer $KSEF_API_KEY"
Odpowiedź
{
  "object": "list",
  "url": "/v1/webhook_endpoints",
  "has_more": false,
  "data": []
}

Utwórz endpoint webhooka

POST /v1/webhook_endpoints

Rejestruje adres dla zdarzeń. Sekret whsec_... do weryfikacji podpisu jest w odpowiedzi tylko ten jeden raz. W trybie produkcyjnym adres musi zaczynać się od https://; w testowym wolno http://. Maksymalnie 16 endpointów na tryb.

Parametry

  • Idempotency-Keyheader · string

    Dowolny unikalny tekst (1-255 znaków), np. order-SO-1001. Ponowienie z tym samym kluczem przez 24 godziny zwraca pierwszą odpowiedź. Idempotencja

Treść żądania (JSON)

  • urlstringwymagane

    Adres odbiorcy; w trybie produkcyjnym tylko https://.

  • enabled_eventsarray of stringwymagane

    Typy zdarzeń albo * dla wszystkich.

    Jedna z: invoice.accepted, invoice.rejected, invoice.skipped, correction.accepted, correction.rejected, correction.skipped, * · 1-∞ elementów

  • descriptionstring

    Opis dla Ciebie.

    maks. 500 znaków

Odpowiedzi

POST /v1/webhook_endpoints
curl -X POST https://app.ksefshop.pl/v1/webhook_endpoints \
  -H "Authorization: Bearer $KSEF_API_KEY" \
  -H "Idempotency-Key: webhook-shop-backend" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://example.com/ksef/webhook",
  "enabled_events": [
    "*"
  ],
  "description": "Shop backend"
}'
Odpowiedź
{
  "id": "we_Ab3Cd5Ef7Gh9Ij1Kl3Mn5Op7",
  "object": "webhook_endpoint",
  "livemode": false,
  "url": "https://example.com/ksef/webhook",
  "enabled_events": [
    "*"
  ],
  "description": "Shop backend",
  "status": "enabled",
  "created": 1760865185,
  "secret": "whsec_shownOnlyOnceExampleValue0000"
}

Pobierz endpoint webhooka

GET /v1/webhook_endpoints/{id}

Jeden endpoint po id we_....

Parametry

  • idpath · stringwymagane

    Identyfikator obiektu.

    Prefiks we_

Odpowiedzi

GET /v1/webhook_endpoints/{id}
curl https://app.ksefshop.pl/v1/webhook_endpoints/we_Ab3Cd5Ef7Gh9Ij1Kl3Mn5Op7 \
  -H "Authorization: Bearer $KSEF_API_KEY"
Odpowiedź
{
  "id": "we_Ab3Cd5Ef7Gh9Ij1Kl3Mn5Op7",
  "object": "webhook_endpoint",
  "livemode": false,
  "url": "https://example.com/ksef/webhook",
  "enabled_events": [
    "*"
  ],
  "description": "Shop backend",
  "status": "enabled",
  "created": 1760865185
}

Usuń endpoint webhooka

DELETE /v1/webhook_endpoints/{id}

Wyłącza endpoint: nie dostanie już nowych zdarzeń. Zdarzenia nadal są dostępne w /v1/events.

Parametry

  • idpath · stringwymagane

    Identyfikator obiektu.

    Prefiks we_

Odpowiedzi

DELETE /v1/webhook_endpoints/{id}
curl -X DELETE https://app.ksefshop.pl/v1/webhook_endpoints/we_Ab3Cd5Ef7Gh9Ij1Kl3Mn5Op7 \
  -H "Authorization: Bearer $KSEF_API_KEY"
Odpowiedź
{
  "id": "we_Ab3Cd5Ef7Gh9Ij1Kl3Mn5Op7",
  "object": "webhook_endpoint",
  "deleted": true
}

Dostawa zdarzenia

Gdy faktura albo korekta osiągnie stan końcowy, wysyłamy POST z obiektem Event na każdy włączony endpoint, który subskrybuje ten typ zdarzenia.

Nagłówek Wartość
KSeF-Signature t=<unix>,v1=<hex>, gdzie v1 = HMAC-SHA256(secret, t + "." + surowe body)
KSeF-Event-Id Id zdarzenia (evt_...), do odrzucania duplikatów
Content-Type application/json

Każda odpowiedź 2xx oznacza dostarczenie. Weryfikację podpisu w czterech językach i harmonogram ponowień opisuje przewodnik Webhooki.

KSeF Faktury

Wczesny dostęp do API

Klucze testowe wydajemy partiami. Zostaw e-mail: napiszemy, gdy dostęp będzie gotowy.