Centrum pomocy
Dokumentacja Contrata
Przewodnik po modułach aplikacji, integracjach oraz publicznym API v1. Wszystko w jednym miejscu — od pierwszego logowania po automatyzację wypłat w Zapier.
Wprowadzenie
Contrata to platforma do rozliczeń z kontrahentami B2B i na umowę o dzieło.
Contrata wspiera zespoły HR, finansów i operacji w prowadzeniu rozliczeń z kontrahentami: przechowuje dane osób współpracujących, planuje harmonogramy wypłat, generuje dokumenty księgowe (faktury, rachunki) oraz ewidencję czasu pracy w PDF, a także umożliwia eksport przelewów do banku.
Panel główny
- Kontrahenci — baza osób, umów i portalu B2B
- Kalendarz — terminy i kwoty wypłat
- Ewidencja / Faktury — wygenerowane PDF-y
- Umowy / Archiwum / PIP — dokumentacja i audyt
Automatyzacja
- Harmonogram na 3 okresy rozliczeniowe do przodu (od daty startu kontrahenta)
- Generacja dokumentów w dniu terminu wypłaty
- E-mail do kontrahenta z linkami do PDF (gdy jest e-mail)
- Integracje: Jira, Asana, Toggl, Teamwork, Trello, ClickUp, Slack, Zapier, API v1
- Portal kontrahenta B2B (kontrahenci.contrata.pl) z KSeF
- Eksport Elixir-0 (PLN) i SEPA XML
Nawigacja
Pierwsze kroki
Od rejestracji do pierwszych wygenerowanych dokumentów.
- 1
Załóż konto i zaloguj się
Zarejestruj się e-mailem lub przez Google. Rejestrując się, akceptujesz Politykę prywatności i Regulamin Contrata. Po pierwszym logowaniu system utworzy organizację (jeśli nie dołączasz przez zaproszenie) i rozpocznie okres próbny subskrypcji.
- 2
Przejdź onboarding (3 kroki)
- Krok 1 — dane firmy: nazwa, adres, NIP
- Krok 2 — opcjonalne zaproszenia zespołu (administrator / manager)
- Krok 3 — pierwsi kontrahenci i stanowiska
- 3
Skonfiguruj organizację
W Ustawienia → Firma ustaw liczbę terminów wypłat w każdym okresie rozliczeniowym (2–4), waluty wypłat i konta bankowe organizacji. W Stanowiska dodaj role przypisywane kontrahentom.
- 4
Dodaj kontrahentów
W module Kontrahenci wprowadź dane umowy (B2B lub UoD), kwotę miesięczną, datę startu rozliczeń (do 30 dni od dziś), walutę, dane rozliczeniowe i numer konta. Dla B2B podaj też e-mail — kontrahent może otrzymać zaproszenie do portalu. Możesz zaimportować listę z CSV (Ustawienia → Import).
- 5
Obserwuj kalendarz i dokumenty
System zaplanuje wypłaty na 3 okresy rozliczeniowe od daty startu. W dniu każdego terminu automatycznie powstaną faktura/rachunek oraz ewidencja pracy — sprawdzisz je w odpowiednich modułach panelu.
Role i uprawnienia
Każdy członek organizacji ma rolę administratora lub managera.
| Obszar | Administrator | Manager |
|---|---|---|
| Moduły operacyjne | Pełny dostęp | Pełny dostęp |
| Import kontrahentów | Tak | Tak |
| Integracje (Jira, Asana, Toggl, Slack…) | Łączenie / rozłączanie | Łączenie / rozłączanie |
| Zespół i zaproszenia | Tak | Nie |
| Subskrypcja Stripe | Zakup, zmiana planu, portal | Podgląd statusu |
| Klucze API | Tworzenie i usuwanie | Nie |
Kontrahenci
Centralna baza osób współpracujących z Twoją organizacją.
Moduł Kontrahenci (/dashboard/pracownicy) to punkt startowy w większości pracy. Tu dodajesz, edytujesz i dezaktywujesz osoby objęte rozliczeniami.
Dane kontrahenta obejmują:
- Imię i nazwisko, e-mail, adres
- Typ umowy: B2B (faktura) lub UoD (rachunek)
- Stanowisko, kwota miesięczna (brutto/netto), waluta
- Start rozliczeń — data, od której liczą się okresy rozliczeniowe i planowane wypłaty (wybór z listy: dziś do 30 dni do przodu)
- NIP, numer konta bankowego (IBAN)
- Prefiks numeracji dokumentów
- Status aktywny / nieaktywny
- Portal B2B — ikona przy imieniu: brak konta / zaproszenie wysłane / konto aktywne (tylko umowa B2B z adresem e-mail)
- Źródło ewidencji — ikona integracji w tabeli (Jira, Asana, Toggl itd.) po mapowaniu w modalu kontrahenta
- Mapowanie użytkownika integracji w sekcji Ewidencja pracy modalu
Kontrahenci nieaktywni nie wchodzą w nowe harmonogramy wypłat. Liczba aktywnych kontrahentów może wpływać na rozmiar subskrypcji zgodnie z cennikiem. Zmiana typu umowy UoD → B2B (z e-mailem) uruchamia zaproszenie do portalu; B2B → UoD odłącza konto portalu.
Okresy rozliczeniowe i kwota
Zmiana daty startu
Import CSV
Kalendarz wypłat
Przegląd terminów, kwot i statusów wypłat w czasie.
Kalendarz pokazuje zaplanowane terminy i kwoty wypłat dla aktywnych kontrahentów. Planowanie opiera się na okresach rozliczeniowych od daty startu kontrahenta (pole Start rozliczeń w modalu), a nie na kalendarzowych miesiącach.
- System utrzymuje harmonogram na 3 pełne okresy do przodu (np. start 3 VI → wypłaty w okresach do ok. 2 IX)
- W każdym okresie suma wypłat = kwota miesięczna kontrahenta; liczba terminów w okresie wynika z ustawień firmy (2–4)
- Widok miesiąca — kliknij dzień, aby zobaczyć listę wypłat tego dnia (w tym okresy rozliczeniowe nachodzące na dany miesiąc kalendarzowy)
- Widok listy — chronologiczny przegląd wszystkich terminów w wybranym miesiącu kalendarzowym
- Status Zaplanowana — termin w przyszłości, dokumenty jeszcze nie wygenerowane
- Po wygenerowaniu dokumentów status przechodzi w zrealizowaną / wysłaną wypłatę
W dniu terminu wypłaty system automatycznie tworzy fakturę lub rachunek oraz ewidencję pracy. Przed datą startu rozliczeń w kalendarzu nie ma zaplanowanych wypłat. Szczegóły dokumentów — w modułach Faktury i Ewidencja pracy.
Jak liczy się okres
E-mail do kontrahenta
Eksport do banku
Ewidencja pracy
PDF-y z dziennym zestawieniem czynności i godzin.
Ewidencja to dokument PDF powstający automatycznie razem z fakturą lub rachunkiem dla danego terminu wypłaty kontrahenta.
- Treść (zadania, godziny, kod projektu) wynika z ustawień kontrahenta, stanowiska oraz okresu rozliczeniowego przypisanego do danego terminu wypłaty (od daty startu kontrahenta, nie od 1. dnia miesiąca kalendarzowego)
- Przy mapowaniu integracji (Jira, Asana, Toggl, Teamwork, Trello, ClickUp) dane pochodzą z wybranego narzędzia; bez mapowania — ewidencja syntetyczna
- Filtruj po miesiącu i kontrahencie, podglądaj PDF, pobieraj pojedynczo lub paczką ZIP
- Możesz oznaczać dokumenty jako pobrane
Faktury i rachunki
Dokumenty księgowe generowane w dniu terminu wypłaty.
Moduł gromadzi wygenerowane faktury (B2B) i rachunki (UoD). Typ dokumentu wynika z umowy kontrahenta.
- Numeracja, kwota i waluta pochodzą z danych kontrahenta oraz reguł organizacji (liczba terminów wypłat w okresie rozliczeniowym 2–4, podział kwoty miesięcznej między terminy)
- Dokument powstaje w dniu terminu wypłaty z harmonogramu — nie tworzysz go ręcznie
- Filtruj po miesiącu i kontrahencie, wyszukuj po nazwie lub numerze
- Podgląd PDF, pobieranie pojedyncze lub ZIP zaznaczonych dokumentów
Umowy
Przechowywanie podpisanych umów współpracy.
Moduł Umowy służy do archiwizacji podpisanych umów współpracy z kontrahentami w formacie PDF.
- Prześlij plik PDF powiązany z konkretnym kontrahentem
- Podgląd i pobieranie umów z poziomu listy
- Umowy są dostępne także przez API (
read:signed-contracts)
Archiwum
Historyczny przegląd dokumentów i umów.
Archiwum zbiera historyczne dokumenty rozliczeniowe oraz umowy, ułatwiając wyszukiwanie starszych plików bez przechodzenia przez bieżące widoki operacyjne.
Kontrola PIP
Pakiet dokumentów na potrzeby inspekcji Państwowej Inspekcji Pracy.
Moduł Kontrola PIP pomaga przygotować zestaw materiałów wymaganych podczas kontroli PIP: manifesty dokumentów, ewidencje, umowy i powiązane pliki dla wybranych kontrahentów i okresów.
Przed kontrolą
Ustawienia organizacji
Konfiguracja firmy, zespołu, importu i eksportu.
Zakładka Ustawienia ma układ pionowych kart:
Firma
Waluty
Stanowiska
Import
Eksport
Zespół (admin)
Integracje
API (admin)
Konto (admin)
Płatności i subskrypcja
Plany Team, Business, Enterprise i rozliczenie per miejsce.
Subskrypcja Contrata jest rozliczana przez Stripe. Administrator wybiera plan (Team, Business, Enterprise) i interwał (miesięczny / roczny). Liczba aktywnych kontrahentów wpływa na liczbę płatnych miejsc (seats).
- Status subskrypcji i szacowany abonament — w Ustawienia → Płatności
- Portal klienta Stripe — faktury abonamentu, metoda płatności, historia
- Okres próbny — dostęp do modułów do momentu aktywacji planu
- Po anulowaniu subskrypcji lub zakończeniu trialu bez płatnego planu dane organizacji są automatycznie usuwane po 30 dniach (szczegóły w sekcji RODO)
- Przy problemach z płatnością skontaktuj się z administratorem organizacji
Bezpieczeństwo (2FA)
Drugie składnik logowania SMS i polityka organizacji.
W Profilu każdy użytkownik może włączyć 2FA przez SMS(Firebase). Wymagany jest potwierdzony e-mail oraz skonfigurowane SMS MFA w projekcie Firebase.
Administrator w Ustawienia → Bezpieczeństwo ustawia politykę organizacji:
- Opcjonalne — każdy decyduje sam
- Wymagane dla wszystkich — brak 2FA blokuje dostęp do panelu (Profil pozostaje dostępny)
Przy logowaniu hasłem lub Google, jeśli konto ma 2FA, po pierwszym składniku pojawia się krok z kodem SMS. Status 2FA członków widoczny jest na liście zespołu (administrator).
Integracje
Narzędzia zewnętrzne — ewidencja z zadań, powiadomienia Slack i automatyzacja Zapier.
Integracje konfigurujesz w Ustawienia → Integracje (administrator lub manager). Mapowanie kontrahenta → użytkownik narzędzia w modalu kontrahenta, sekcja Ewidencja pracy. Każdy kontrahent ma jedno źródło danych. Odłączenie integracji czyści mapowania.
Jira
- OAuth — „Połącz z Jira”
- Mapuj kontrahenta → użytkownik Jira (
accountId) - Zadania z okresu wypłaty trafiają do ewidencji PDF
Asana
- OAuth analogicznie do Jira
- Mapowanie kontrahent → użytkownik Asana
- Godziny i zadania z Asany w ewidencji
Toggl Track
- Token API z Profilu Toggl Track (nie OAuth)
- Mapowanie kontrahent → użytkownik Toggl
- Źródło: wpisy czasu w okresie wypłaty
Teamwork
- OAuth — „Połącz z Teamwork”
- Mapowanie kontrahent → użytkownik Teamwork
- Zadania przypisane użytkownikowi w okresie wypłaty
Trello
- OAuth — „Połącz z Trello”
- Mapowanie kontrahent → członek tablic
- Karty przypisane w okresie wypłaty
ClickUp
- OAuth — „Połącz z ClickUp”
- Mapowanie kontrahent → użytkownik ClickUp
- Zadania (assignee) z okresu wypłaty
Slack
- OAuth — wybór workspace i kanału powiadomień
- Po wygenerowaniu dokumentów wypłaty: wiadomość z listą PDF
- Kanały prywatne: dodaj aplikację Contrata do kanału w Slacku
- Slack nie zasila ewidencji — tylko powiadomienia
Zapier
- Włącz integrację w panelu lub przez OAuth w aplikacji Zapier
- Triggery: nowy dokument, wypłata wygenerowana
- Akcja: generuj dokumenty wypłaty
Portal kontrahenta B2B
Osobna aplikacja dla kontrahentów B2B — dokumenty, kalendarz i KSeF.
Portal działa pod adresem kontrahenci.contrata.pl (osobne konto użytkownika — nie loguj się tam kontem organizacji). Dotyczy wyłącznie kontrahentów z umową B2B i adresem e-mail.
- 1
Zaproszenie (perspektywa organizacji)
- Dodaj kontrahenta B2B z poprawnym e-mailem — po zapisie system wysyła zaproszenie (link ważny 30 dni)
- W liście kontrahentów ikona przy imieniu: brak konta / oczekujące / aktywne
- Możesz ponownie wysłać zaproszenie lub odłączyć konto z modułu kontrahentów
- 2
Aktywacja konta (perspektywa kontrahenta)
- Kliknij link z e-maila → ustaw hasło na stronie akceptacji zaproszenia
- Zaloguj się na portalu (e-mail + hasło lub Google, jeśli dostępne)
- Jeśli masz już konto kontrahenta u innego pracodawcy, ten sam login może obsłużyć wiele organizacji
- 3
Co kontrahent widzi w portalu
- Faktury — lista i pobieranie PDF faktur B2B
- Ewidencja pracy — PDF ewidencji za okresy wypłat
- Kalendarz wypłat — zaplanowane terminy i kwoty
- KSeF — podłączenie tokenu i wysyłka faktur (osobna sekcja poniżej)
- Profil — zmiana hasła i danych konta
- 4
E-maile automatyczne
- Zaproszenie do portalu (nowe konto)
- Powiadomienie o dołączeniu do organizacji (istniejące konto)
- Po wygenerowaniu wypłaty: linki do PDF faktury/rachunku i ewidencji + link do portalu
Osobne konta
KSeF w portalu
Wysyłka faktur B2B do Krajowego Systemu e-Faktur — po stronie kontrahenta.
Integracja KSeF jest dostępna wyłącznie w portalu kontrahenta (kontrahenci.contrata.pl). Organizacja nie konfiguruje KSeF w swoim panelu — kontrahent B2B podłącza własny token MCU i wysyła faktury wygenerowane przez Contrata.
- 1
Wygeneruj token w MCU
Zaloguj się na podatki.gov.pl → Moduł Certyfikatów i Uprawnień (MCU) → sekcja KSeF → wygeneruj token autoryzacyjny dla NIP, którym wystawiasz faktury B2B.
- 2
Podłącz w portalu Contrata
- Portal → KSeF
- Podaj NIP (10 cyfr), wklej token, wybierz środowisko demo lub prod
- Token jest przechowywany zaszyfrowany — po zapisie nie jest ponownie wyświetlany
- 3
Wyślij fakturę
- Portal → Faktury → przy fakturze bez numeru KSeF użyj akcji wysyłki
- Po sukcesie faktura otrzymuje numer KSeF; w PDF może pojawić się kod QR
- Token testowy działa tylko w środowisku demo i odwrotnie
RODO i usuwanie danych
Retencja danych organizacji i trwałe usunięcie.
Administrator zarządza danymi organizacji w Ustawienia → Konto. Sekcja Usuwanie danych (RODO) dotyczy wszystkich danych: kontrahentów, PDF, integracji, kluczy API i ustawień.
Automatyczne usunięcie (30 dni)
Natychmiastowe usunięcie
Portal kontrahenta
Przegląd API
Publiczne REST API v1 do integracji i automatyzacji.
Contrata udostępnia API v1 pod adresem /api/v1/…. Endpointy wymagają klucza API z odpowiednim zakresem uprawnień. Klucze tworzy administrator w Ustawienia → API (maksymalnie 10 kluczy na organizację).
Dostępne zakresy (scopes):
- read:organization
- read:employees
- read:schedules
- read:documents
- read:signed-contracts
- write:payouts
- manage:webhooks
read:signed-contracts) i dedykowany klucz „Zapier”.Autentykacja API
Jak przekazywać klucz API w żądaniach.
Każde żądanie do API v1 musi zawierać nagłówek Authorization z tokenem Bearer:
Authorization: Bearer ctr_live_xxxxxxxxxxxxxxxxOdpowiedzi błędów:
- 401 — brak lub nieprawidłowy klucz
- 403 — klucz nie ma wymaganego scope
- 404 — zasób nie istnieje
- 400 — nieprawidłowe parametry żądania
Bezpieczeństwo klucza
Endpointy API
Pełna lista publicznych endpointów v1.
| Metoda | Endpoint | Scope | Opis |
|---|---|---|---|
| GET | /api/v1/organization | read:organization | Metadane organizacji |
| GET | /api/v1/employees | read:employees | Lista kontrahentów (?active=false dla wszystkich) |
| GET | /api/v1/employees/{id} | read:employees | Pojedynczy kontrahent |
| GET | /api/v1/schedules | read:schedules | Harmonogramy (?year=&month=&employeeId=) |
| GET | /api/v1/documents | read:documents | Lista dokumentów (?employeeId=&type=&limit=) |
| GET | /api/v1/documents/{id} | read:documents | Metadane dokumentu |
| GET | /api/v1/documents/{id}/file | read:documents | Plik PDF dokumentu |
| GET | /api/v1/signed-contracts | read:signed-contracts | Lista umów podpisanych |
| GET | /api/v1/signed-contracts/{id} | read:signed-contracts | Metadane umowy |
| GET | /api/v1/signed-contracts/{id}/file | read:signed-contracts | Plik PDF umowy |
| POST | /api/v1/payouts/materialize | write:payouts | Generuj dokumenty wypłaty (employeeId, date) |
| POST | /api/v1/webhooks/subscribe | manage:webhooks | Subskrybuj webhook (targetUrl, events) |
| POST | /api/v1/webhooks/unsubscribe | manage:webhooks | Anuluj subskrypcję (id) |
Typy dokumentów (type): faktura, rachunek, ewidencja. Daty w formacie YYYY-MM-DD.
Webhooki
Powiadomienia REST o zdarzeniach w organizacji.
Webhooki pozwalają otrzymywać powiadomienia HTTP o zdarzeniach w organizacji. Subskrypcja wymaga scope manage:webhooks. Maksymalnie 20 aktywnych webhooków na organizację.
Obsługiwane zdarzenia:
- document.created — utworzono nowy dokument PDF
- payout.generated — wygenerowano dokumenty wypłaty
Subskrypcja:
POST /api/v1/webhooks/subscribeAuthorization: Bearer ctr_live_…Content-Type: application/json{ "targetUrl": "https://hooks.example.com/contrata", "events": ["payout.generated", "document.created"]}→ { "id": "hookId", "secret": "hex-secret" }Payload wysyłany jest metodą POST na targetUrl. Podpis HMAC-SHA256 (nagłówek z sekretem webhooka) pozwala zweryfikować autentyczność żądania.
Przykłady użycia API
Typowe scenariusze integracji.
1. Pobierz listę aktywnych kontrahentów
curl -s -H "Authorization: Bearer $CONTRATA_API_KEY" \ "https://twoja-domena.pl/api/v1/employees"2. Harmonogram wypłat za maj 2026
curl -s -H "Authorization: Bearer $CONTRATA_API_KEY" \ "https://twoja-domena.pl/api/v1/schedules?year=2026&month=5"3. Wygeneruj dokumenty wypłaty w danym terminie
curl -s -X POST \ -H "Authorization: Bearer $CONTRATA_API_KEY" \ -H "Content-Type: application/json" \ -d '{"employeeId":"abc123","date":"2026-05-15"}' \ "https://twoja-domena.pl/api/v1/payouts/materialize"→ { "scheduleId": "…", "documentIds": ["…"], "skipped": false }4. Pobierz faktury kontrahenta
curl -s -H "Authorization: Bearer $CONTRATA_API_KEY" \ "https://twoja-domena.pl/api/v1/documents?employeeId=abc123&type=faktura&limit=50"Zgłoś problem
Wyślij zgłoszenie do zespołu wsparcia Contrata — odpowiemy na e-mail przypisany do konta.
Formularz jest dostępny wyłącznie dla zalogowanych użytkowników Contrata. Po wysłaniu zgłoszenia otrzymasz potwierdzenie na swój adres e-mail, a zespół wsparcia odpowie w tej samej wątku korespondencji.
Sprawdzanie sesji…
Czego oczekiwać
- Odpowiedź zwykle w ciągu 1–2 dni roboczych
- Do każdego zgłoszenia przypisujemy numer (np. CTR-ABC123)
- W pilnych sprawach możesz też skorzystać z czatu na stronie