Skip to content

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 and SIGN IT (SIGN SE coming).

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-05-04Docs
SIGN IT2026-05-04Docs
SIGN SETCS (Unified API coming)Current docs

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 DEv2kassensichv-middleware.fiskaly.com/api/v2kassensichv.fiskaly.com/api/v2Interactive docs
SIGN ATv1rksv-middleware.fiskaly.com/api/v1rksv.fiskaly.com/api/v1Docs
SIGN ESv1Contact fiskaly for endpointsContact fiskaly for endpointsDocs
Managementv0management.fiskaly.com/api/v0management.fiskaly.com/api/v0Interactive 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)dsfinvk-middleware.fiskaly.com/api/v1dsfinvk.fiskaly.com/api/v1Docs
SUBMIT DE (Germany)Via SIGN DE middlewareVia SIGN DE productionDocs
SAFEContact fiskaly for endpointsContact fiskaly for endpointsDocs
E-InvoiceContact fiskaly for endpointsContact fiskaly for endpointsDocs
eReceiptreceipt.fiskaly.com/api/v1receipt.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
offset0Number 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"

The Unified API uses cursor-based pagination with page[limit] and page[after] query parameters.

ParameterDefaultMaximumDescription
page[limit]25100Number of items to return per page
page[after]Opaque cursor from a previous response’s next_cursor

The response includes data (array of results), pagination.has_more (boolean), and pagination.next_cursor (string, present when has_more is true).

# First page
curl -X GET "https://test.api.fiskaly.com/signing-units?page[limit]=25" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "X-Api-Version: 2026-05-04"

# Next page (use next_cursor from previous response)
curl -X GET "https://test.api.fiskaly.com/signing-units?page[limit]=25&page[after]=eyJpZCI6ImFiYzEyMyJ9" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "X-Api-Version: 2026-05-04"

Was this page helpful?