Dla firm · Integracja
Pozywacz API
Składaj sprawy programistycznie i odbieraj gotowe pozwy. Zamiast klikać w kreatorze, Twój system wysyła jeden request z danymi sprawy - my walidujemy, przygotowujemy pozew i oddajemy wynik przez webhook lub odpytywanie statusu.
Jak zacząć
- Uzyskaj klucz API. Napisz na help@pozywacz.pl - po ustaleniu warunków nadamy Ci klucz i skonfigurujemy limity oraz webhook.
- Sprawdź dostępne typy spraw. Odpytaj
GET /api/v1/case-types, aby poznać pola wymagane dla Twojego konta. - Wyślij sprawę.
POST /api/v1/submissionszwraca202i identyfikator zgłoszenia. - Odbierz pozew. Przez webhook (podpisany HMAC) albo odpytując
GET /api/v1/submissions/{id}.
Uwierzytelnianie
Każde żądanie musi zawierać Twój klucz API w nagłówku Authorization:
Authorization: Bearer pk_live_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx- Sekret klucza pokazujemy tylko raz, w chwili generowania. Przechowuj go bezpiecznie - nie da się go odczytać ponownie.
- Klucz można w każdej chwili unieważnić i wygenerować nowy (rotacja) bez zmiany konta.
- Wszystkie wywołania idą po HTTPS. Nie umieszczaj klucza w kodzie front-endu.
Endpointy
/api/v1/case-typesZwraca typy spraw dostępne dla Twojego klucza wraz ze schematem pól każdego typu.
{
"caseTypes": [
{
"claimType": "b2b_payment_missing",
"title": "B2B — brak zapłaty",
"fields": [
{
"name": "plaintiff",
"type": "party",
"required": true
},
{
"name": "defendant",
"type": "party",
"required": true
}
]
},
{
"claimType": "other",
"title": "Inna sprawa",
"fields": [
{
"name": "plaintiff",
"type": "party",
"required": true
},
{
"name": "defendant",
"type": "party",
"required": true
}
]
}
]
}/api/v1/submissionsSkłada jedną sprawę. W ciele podajesz claimType oraz obiekt data z polami sprawy. Zwraca 202 i submissionId. Nagłówek Idempotency-Key zapobiega duplikatom przy ponowieniu.
{
"claimType": "b2b_payment_missing",
"data": {
"plaintiff": {
"name": "Przykład Sp. z o.o.",
"street": "ul. Przykładowa",
"houseNumber": "12",
"city": "Warszawa",
"postalCode": "00-001",
"nip": "5252525252"
},
"defendant": {
"name": "Dłużnik S.A.",
"street": "ul. Przykładowa",
"houseNumber": "12",
"city": "Warszawa",
"postalCode": "00-001",
"nip": "7010101010"
},
"claimAmount": 12000,
"claimInterest": true,
"claimBusinessCosts": true,
"contractSubject": "Wykonanie instalacji elektrycznej",
"contractDescription": "Kompleksowe wykonanie instalacji elektrycznej w lokalu przy ul. ...",
"contractDate": "2026-01-15",
"paymentDue": "2026-05-10",
"invoices": [
{
"fileName": "FV 1/2026",
"amount": 12000,
"dueDate": "2026-05-10"
}
],
"demandSent": true,
"additionalInfo": "Dłużnik uznał dług mailowo w dniu ..."
}
}{
"submissionId": "clx123abc...",
"status": "RECEIVED",
"orderId": "a1b2c3..."
}/api/v1/submissions/{id}Zwraca status zgłoszenia, a po zakończeniu - przygotowany pozew (HTML) wraz z linkiem do dokumentu.
{
"submissionId": "clx123abc...",
"status": "COMPLETED",
"result": {
"lawsuitHtml": "<div>POZEW O ZAPŁATĘ…</div>",
"googleDocUrl": "https://docs.google.com/…"
}
}/api/v1/submissionsLista Twoich zgłoszeń (najnowsze pierwsze) z paginacją kursorową. Parametry: status, limit, cursor.
{
"items": [
{
"submissionId": "clx…",
"claimType": "b2b_payment_missing",
"status": "COMPLETED"
}
],
"nextCursor": null
}Kody błędów
| HTTP | code | Znaczenie |
|---|---|---|
| 401 | invalid_key | Brak, zły, unieważniony lub wygasły klucz. |
| 403 | claim_type_forbidden | Twoje konto nie ma uprawnień do tego typu sprawy. |
| 403 | client_suspended | Konto zawieszone - skontaktuj się z nami. |
| 422 | validation_failed | Pola nie przeszły walidacji (szczegóły w issues). |
| 429 | rate_limited / quota_exceeded | Przekroczony limit zapytań lub miesięczna kwota. |
Typy spraw i pola formularza
Pole data w POST /api/v1/submissions zależy od claimType. Poniżej pełny zestaw pól każdego typu.
b2b_payment_missingB2B — brak zapłatyPozew o zapłatę w sporze gospodarczym (przedsiębiorca vs przedsiębiorca) za wykonaną usługę lub dostarczony towar.
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
plaintiff | obiekt: strona | tak | Dane strony dochodzącej roszczenia (Twój klient końcowy). |
defendant | obiekt: strona | tak | Dane dłużnika / strony pozwanej. |
claimAmount | kwota (PLN) | tak | Łączna dochodzona kwota należności głównej w PLN. |
claimInterest | true/false | nie | Czy żądać odsetek ustawowych za opóźnienie w transakcjach handlowych. |
claimBusinessCosts | true/false | nie | Czy żądać rekompensaty za koszty odzyskiwania należności. |
contractSubject | tekst | tak | Krótki tytuł: czego dotyczyła współpraca. |
contractDescription | tekst (długi) | nie | Szczegółowy opis zakresu umowy i wykonanych prac/dostaw. |
contractDate | data (YYYY-MM-DD) | nie | Data zawarcia umowy (YYYY-MM-DD). |
paymentDue | data (YYYY-MM-DD) | nie | Data wymagalności zapłaty (YYYY-MM-DD). |
invoices | lista faktur | nie | Lista nieopłaconych faktur (kwota + termin). Suma nie musi równać się kwocie roszczenia. |
demandSent | true/false | nie | Czy wysłano przedsądowe wezwanie do zapłaty. |
additionalInfo | tekst (długi) | nie | Dowolny kontekst pomocny przy redakcji pozwu. |
Przykładowy request
curl -X POST https://pozywacz.pl/api/v1/submissions \
-H "Authorization: Bearer pk_live_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"claimType": "b2b_payment_missing",
"data": {
"plaintiff": {
"name": "Przykład Sp. z o.o.",
"street": "ul. Przykładowa",
"houseNumber": "12",
"city": "Warszawa",
"postalCode": "00-001",
"nip": "5252525252"
},
"defendant": {
"name": "Dłużnik S.A.",
"street": "ul. Przykładowa",
"houseNumber": "12",
"city": "Warszawa",
"postalCode": "00-001",
"nip": "7010101010"
},
"claimAmount": 12000,
"claimInterest": true,
"claimBusinessCosts": true,
"contractSubject": "Wykonanie instalacji elektrycznej",
"contractDescription": "Kompleksowe wykonanie instalacji elektrycznej w lokalu przy ul. ...",
"contractDate": "2026-01-15",
"paymentDue": "2026-05-10",
"invoices": [
{
"fileName": "FV 1/2026",
"amount": 12000,
"dueDate": "2026-05-10"
}
],
"demandSent": true,
"additionalInfo": "Dłużnik uznał dług mailowo w dniu ..."
}
}'otherInna sprawaSprawa cywilna niebędąca typowym pozwem B2B o zapłatę. Opisz fakty możliwie dokładnie w polach tekstowych — generator dobierze formę pozwu.
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
plaintiff | obiekt: strona | tak | Dane strony dochodzącej roszczenia (Twój klient końcowy). |
defendant | obiekt: strona | tak | Dane dłużnika / strony pozwanej. |
claimAmount | kwota (PLN) | nie | Kwota roszczenia w PLN, jeśli sprawa jest majątkowa. |
contractSubject | tekst | tak | Jednozdaniowe streszczenie sprawy. |
whatWentWrong | tekst (długi) | tak | Co się wydarzyło, na czym polega spór, czego oczekuje powód. |
additionalInfo | tekst (długi) | nie | Dodatkowy kontekst, dowody, przebieg korespondencji. |
Przykładowy request
curl -X POST https://pozywacz.pl/api/v1/submissions \
-H "Authorization: Bearer pk_live_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"claimType": "other",
"data": {
"plaintiff": {
"name": "Przykład Sp. z o.o.",
"street": "ul. Przykładowa",
"houseNumber": "12",
"city": "Warszawa",
"postalCode": "00-001",
"nip": "5252525252"
},
"defendant": {
"name": "Dłużnik S.A.",
"street": "ul. Przykładowa",
"houseNumber": "12",
"city": "Warszawa",
"postalCode": "00-001",
"nip": "7010101010"
},
"claimAmount": 8000,
"contractSubject": "Zwrot zaliczki za niewykonaną usługę",
"whatWentWrong": "Wykonawca pobrał zaliczkę i nie przystąpił do prac mimo upływu terminu...",
"additionalInfo": "Strony wymieniły korespondencję mailową w okresie ..."
}
}'Webhooki
Jeśli skonfigurujemy dla Ciebie adres webhooka, po zakończeniu przygotowania wyślemy na niego POST z wynikiem. Treść jest podpisana Twoim sekretem:
X-Pozywacz-Signature: sha256=<hmac_sha256(webhookSecret, body)>Zweryfikuj podpis, licząc HMAC-SHA256 z surowego ciała żądania i porównując go z nagłówkiem. Przykładowa treść:
{
"event": "submission.updated",
"submissionId": "clx123abc...",
"status": "COMPLETED",
"result": {
"lawsuitHtml": "<div>…</div>",
"googleDocUrl": "https://docs.google.com/…"
},
"error": null
}- Ponawiamy dostarczenie do 5 razy przy błędzie. Odpowiedz
2xx, aby potwierdzić odbiór. - Webhook jest opcjonalny - zawsze możesz zamiast tego odpytywać
GET /api/v1/submissions/{id}.
Limity i rozliczenia
- Rate limit - liczba zapytań na minutę, ustalana per konto (domyślnie 60/min).
- Kwota miesięczna - opcjonalny limit liczby zgłoszeń w miesiącu kalendarzowym. Po przekroczeniu zwracamy
429 quota_exceeded. - Rozliczenie - na podstawie liczby zgłoszeń, jedną fakturą zbiorczą miesięcznie na dane Twojej firmy (zgodnie z umową).
Jak uzyskać klucz API
Dostęp nadajemy indywidualnie po kontakcie. Napisz do nas, opisz swój przypadek użycia i przewidywany wolumen - ustalimy warunki, limity i skonfigurujemy webhook, a następnie przekażemy Ci klucz.
Napisz: help@pozywacz.plMasz już pytania techniczne? Skorzystaj z formularza kontaktowego.