Receipt API

The API behind the digital receipt.

The Middleware signs receipts at the counter. The Receipt API serves them afterwards: visualize each receipt in the format you need, share across channels and match transactions from your app.

Three access modes

Pick your depth

  • End users – Follow the receipt-url, no setupno auth
  • Third-party apps – Most endpoints, one extra headerAppId
  • Raw data – Full receipt data for your backendAppId + AppSecret
receipts per day
Millions
access modes
3
receipt visualization, for everyone
0 €
in, HTML or JSON out
JSON

AUTHENTICATION

Three access modes. The first one needs nothing.

Access scales with your use case. Consumers need nothing. Apps add one identifier. Raw data requires credentials.

ModeAuthenticationWhat you getReceipt marking
End userNoneReceipt visualization via the receipt-urlMarked accepted and viewed on each call
Third-party appAppId header or query parameter, requested via the fiskaltrust.PortalMost endpoints, including visualizations in app contextNot marked, your app views stay out of the merchant trace
Raw dataAppId + AppSecretFull receipt data for backend processingNot marked

VISUALISE

One receipt, HTML or JSON.

Retrieve any receipt through its global unique identifier and render the version your channel needs. The response returns HTML for display or JSON for your own rendering, per request.

  • HTML
  • JSON
receipt-url
Every digital receipt carries a link. Opening the link renders the visualization, free of charge, for everyone.
accepted / viewed
Each consumer call marks the receipt as accepted and viewed. Merchants trace when customers received their receipts.
AppId context
Calls with an AppId skip the marking. Your app renders receipts without touching the merchant trace.

SHARING AND MATCHING

Millions of receipts, open to your app.

Loyalty programs, expense tools and banking apps connect to the receipts fiskaltrust processes every day. Sharing moves receipts across channels. Matching links transactions to your records.

  • Sharing

    Hand receipts to wallets, email, apps and other channels through the same interface.

  • Matching

    Link card transactions and app records to the underlying receipt data.

  • One AppId to start

    Request your AppId in the fiskaltrust.Portal and call most endpoints the same day.

One identifier in, the receipt out. HTML or JSON.

DESIGN AND VERSIONING

RESTful, predictable, versioned.

The Receipt API follows standard REST conventions, so your team starts without a learning curve.

  1. JSON in

    The API accepts JSON data on every call.
  2. Standard status codes

    Responses use standard HTTP status codes, no custom error scheme.
  3. Semantic versioning

    Breaking changes arrive only in major versions. Unversioned calls get the latest.
  4. Version in the URL

    Pin a version explicitly in the URL once more versions ship.

The documentation and samples ship under the EUPL licence, in line with the open-source Middleware. Read them, fork them, build on them.

FAQ

Before your first call.

Short answers, the reference carries the schemas.

Where do the receipts come from?

The Middleware creates and signs receipts at the counter through the POS System API. The Receipt API serves those receipts afterwards. A Middleware integration comes first.

Where do I get an AppId?

Request the AppId via the fiskaltrust.Portal. Add the AppId as a header or query parameter on each request.

How do I access raw receipt data?

Raw data requests authenticate with AppId and AppSecret. These credentials are invite-only, write to hello@fiskaltrust.eu with your use case.

Does rendering a receipt mark anything?

Consumer calls mark the receipt as accepted and viewed, giving the merchant trace information. Calls with an AppId skip the marking.

Is the visualization free?

Yes. Everyone follows the receipt-url free of charge. App integrations and raw data access follow the access modes above.

How stable is the interface?

Semantic versioning. Only major versions carry breaking changes, added fields never alter existing models. Unversioned calls receive the latest version.

Follow a receipt-url. Then read the reference.

The example receipt in the reference shows the visualization live. The reference carries every endpoint, mode and model.

You talk to real people