Skip to content
Section navigation

API Reference

This page is the central reference for all fiskaly API endpoints, base URLs, authentication, and rate limits. Use it as your starting point for any product integration.

fiskaly provides two API architectures. See The Unified API for the full comparison.

The Unified API uses shared base URLs and a common resource model across countries. Currently covers SIGN FR, SIGN IT, SIGN PT, SIGN SE, and SIGN CZ (preview).

Details
TEST base URLhttps://test.api.fiskaly.com
LIVE base URLhttps://live.api.fiskaly.com
Required headersX-Api-Version (date, e.g. 2026-05-04), X-Idempotency-Key (UUID, on POST/PATCH), X-Scope-Identifier (resource scoping)
Resource IDsServer-generated (use X-Idempotency-Key for idempotency)
Org managementBuilt into the product API (no separate Management API)
ProductLatest API VersionDocs
SIGN FR2026-06-01Docs
SIGN IT2026-06-01Docs
SIGN PT2026-06-01Docs
SIGN SE2026-06-01Current docs
SIGN CZ (preview)2026-06-01Docs

Each Specialized API has its own base URL and resource model, purpose-built for a specific country. Uses the Management API for organization management.

ProductAPI VersionBase URL (TEST)Base URL (LIVE)Docs
SIGN DEv2https://kassensichv-middleware.fiskaly.com/api/v2/https://kassensichv-middleware.fiskaly.com/api/v2/Interactive docs
SIGN ATv1https://rksv.fiskaly.com/api/v1/https://rksv.fiskaly.com/api/v1/Docs
SIGN ESv1https://test.es.sign.fiskaly.com/api/v1/https://live.es.sign.fiskaly.com/api/v1/Docs
Managementv0https://dashboard.fiskaly.com/api/v0/https://dashboard.fiskaly.com/api/v0/Interactive docs

These products work alongside SIGN and are not tied to a specific API architecture:

ProductBase URL (TEST)Base URL (LIVE)Docs
DSFinV-K (Germany)https://dsfinvk.fiskaly.com/api/v1/https://dsfinvk.fiskaly.com/api/v1/Docs
SUBMIT DE (Germany)https://kassensichv.fiskaly.com/submission-api/v1/https://kassensichv.fiskaly.com/submission-api/v1/Docs
SAFEhttps://test.safe.fiskaly.com/api/v1/https://live.safe.fiskaly.com/api/v1/Docs
E-Invoicehttps://test.api.fiskaly.com/https://live.api.fiskaly.com/Docs
eReceipthttps://receipt.fiskaly.com/api/v1https://receipt.fiskaly.com/api/v1Interactive docs

All fiskaly APIs use the same Bearer token authentication pattern:

  1. POST /auth with your api_key and api_secret
  2. Receive an access_token (24h) and refresh_token (48h)
  3. Include the token as Authorization: Bearer <token> in all subsequent requests
  4. On 401, re-authenticate — do not retry with the same expired token
curl -X POST https://kassensichv-middleware.fiskaly.com/api/v2/auth \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "YOUR_API_KEY",
    "api_secret": "YOUR_API_SECRET"
  }'

Then include the token in subsequent requests:

Terminal window
curl -X GET https://kassensichv-middleware.fiskaly.com/api/v2/tss \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Every product has a TEST (sandbox) and LIVE (production) environment:

TEST (Sandbox)LIVE (Production)
PurposeDevelopment and integration testingReal transactions, audit-relevant data
DataEphemeral — safe to experiment, can be resetPermanent — legally binding records
BillingFreePer contract
DefaultAll new organizations start hereEnable via HUB
Base URL prefixUsually includes middlewareDirect product domain

API rate limits vary by product and subscription plan. General guidelines:

OperationTypical limitNotes
Authentication10 req/minCache tokens — do not auth per transaction
Transaction signing200 req/minShould never be a bottleneck for normal checkout
Export generationLower limitsHeavy operations — use async polling
Management operations60 req/minOrganization/API key management

Every API response includes headers to help you manage your request budget:

HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the current window
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix timestamp when the rate limit window resets
Retry-AfterSeconds to wait before retrying (only present on 429 responses)

If you hit a 429 Too Many Requests, back off with exponential delay. See the retry strategy for implementation guidance.

For enterprise rate limits or custom needs, contact your account manager.

fiskaly APIs use two different pagination patterns depending on the API architecture.

Specialized APIs use offset-based pagination with limit and offset query parameters.

ParameterDefaultMaximumDescription
limit1001000Number of items to return per page
offset0—Number of items to skip from the start

The response includes count (total items), data (array of results), offset, and limit.

curl -X GET "https://kassensichv-middleware.fiskaly.com/api/v2/tss?limit=50&offset=100" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Unified API (SIGN FR, SIGN IT, SIGN PT, SIGN SE, SIGN CZ)

Section titled “Unified API (SIGN FR, SIGN IT, SIGN PT, SIGN SE, SIGN CZ)”

The Unified API uses token-based pagination with limit and token query parameters.

ParameterDefaultMaximumDescription
limit10100Number of items to return per page
token——Opaque cursor from a previous response’s pagination.token

The response includes results (array of resources) and, when more pages exist, a pagination object with token (cursor for the next page), next (ready-to-use URL of the next page), and limit. On the last page the pagination object is omitted entirely.

# First page
curl -X GET "https://test.api.fiskaly.com/organizations?limit=25" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "X-Api-Version: 2026-06-01"

# Next page (use pagination.token from the previous response)
curl -X GET "https://test.api.fiskaly.com/organizations?limit=25&token=eyJpZCI6ImFiYzEyMyJ9" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "X-Api-Version: 2026-06-01"