Dla programistów

Dokumentacja API

Jedno wywołanie REST wystarczy, by zafiskalizować transakcję i otrzymać link do e-paragonu. Poniżej wszystko, czego potrzebuje Twój zespół.

Autoryzacja

Każda drukarka podłączona do platformy ma unikalny, 64-znakowy token. Przekazujesz go w polu token żądania - token jednoznacznie wskazuje drukarkę i uprawnia do druku na niej. Dodatkowo możesz przekazać 3-literowy kod swojego systemu w polu system. Token otrzymasz od nas przy wdrożeniu; znajdziesz go też w panelu klienta.

Wystawienie paragonu

POST /api/v1/print/receiptContent-Type: application/json
{
  "token":   "64-znakowy token drukarki",
  "system":  "ABC",          // opcjonalnie: kod systemu
  "cashier": "Kasa online", // opcjonalnie: nazwa kasjera
  "receipt": {
    "order_id":       "1000014018267",
    "receipt_number": "",        // puste = użyjemy order_id
    "to_pay":    "25500",        // wszystkie kwoty w groszach
    "been_paid": "25500",
    "nip": null,                  // NIP nabywcy na paragonie
    "fiscal": [
      {
        "name":        "Bilet normalny",
        "title":       "2026-07-12 19:00 Spektakl",
        "quantity":    "2",
        "unit_amount": "9000",
        "worth":       "18000",
        "tax":         "8"     // 23 | 8 | 5 | 0 | "kaucja"
      }
    ],
    "discounts": [],
    "payments": [
      {
        "type":      "2",     // forma płatności
        "name":      "karta",
        "been_paid": "25500",
        "to_return": false
      }
    ]
  }
}

Odpowiedź - sukces

200 OKparagon wydrukowany
{
  "status":      "success",
  "uuid":        "9f27c4a1e3b0…",
  "receipt_url": "https://…/paragon/9f27c4a1e3b0…",
  "log_id":      31610
}

receipt_url to publiczny adres e-paragonu - możesz go od razu umieścić w potwierdzeniu zamówienia. E-paragon pojawi się pod nim automatycznie, gdy tylko drukarka odeśle dokument (zwykle w ciągu kilkunastu sekund).

Odpowiedź - duplikat zamówienia

200 OKwydruk pominięty
{
  "status":         "success",
  "duplicate":      true,
  "message":        "Duplikat: zamówienie o tym numerze zostało już zafiskalizowane…",
  "uuid":           "9f27c4a1e3b0…",
  "receipt_url":    "https://…/paragon/9f27c4a1e3b0…",
  "receipt_number": "77/2026",
  "printed_at":     "2026-07-02 19:42:11",
  "amount":         25500,
  "currency":       "PLN"
}

Duplikaty wykrywamy po numerze zamówienia w obrębie Twojego systemu. Retry po timeoucie, podwójne kliknięcie, ponowiona kolejka - żaden z tych scenariuszy nie skończy się podwójną fiskalizacją.

Odpowiedź - błąd

4xx / 500błąd walidacji lub drukarki
{
  "status":  "error",
  "message": "Opis problemu, np. brak połączenia z drukarką",
  "log_id":  31611
}

Przy błędzie wydruku równolegle wysyłamy alert e-mail na adresy przypisane do drukarki, więc Twój zespół dowiaduje się o problemie bez zaglądania w logi.

Pola paragonu

PoleZnaczenie
order_idNumer zamówienia w Twoim systemie - podstawa wykrywania duplikatów.
fiscal[].taxStawka VAT: 23, 8, 5, 0 albo kaucja dla opakowań zwrotnych.
fiscal[].unit_amount, worthCena jednostkowa i wartość pozycji - zawsze w groszach, jako łańcuchy znaków.
discounts[]Rabaty lub narzuty na cały paragon (nazwa, wartość, typ).
payments[]Jedna lub więcej form płatności; obsługujemy też wydawanie reszty.
nipNIP nabywcy drukowany na paragonie (tzw. paragon z NIP).

Publiczny widok paragonu

GET /paragon/{uuid} - strona e-paragonu dla klienta końcowego. Nie wymaga logowania, działa na telefonie, pokazuje komplet danych fiskalnych oraz logo Twojej marki skonfigurowane w panelu.

Chcę token testowy