Home / Docs & API

Docs & API

Your data leaves as cleanly as it arrived.

Fizzy is an open spine. Every sealed sale is available over a REST API, pushed as webhook events, and exportable in the formats accountants and tax authorities already accept. No lock-in, no scraping your own reports out of a PDF.

The model

Six objects, and one rule.

The rule: nothing is ever edited. Corrections are appended, and the chain is verifiable end to end.

Outlet

A physical or online place where you sell. Owns its counters, staff and stock.

Counter

A till instance. Every entry records which counter produced it.

Sale

Lines, quantities, prices and VAT per line, plus the tender that paid for it.

Ledger entry

The sealed record of a sale, void or refund. Hash-chained to its predecessor.

Payment

The Worldline-certified tender, reconciled against the sale it settled.

Day close

The Z-report: a sealed daily summary that closes the sequence for that counter.

Integration surfaces

Four ways out, pick the one that fits.

01

REST API

Pull sales, ledger entries, products and day closes on your own schedule. JSON over HTTPS, key-authenticated per tenant.

02

Webhooks

Get pushed the moment a sale is sealed or a day is closed. Signed, retried, and safe to replay.

03

File exports

SAF-T, Z-reports and CSV for any period, generated from the same sealed source as everything else.

04

Connectors

Ready-made routes into Nordic accounting systems and into Baslic for filing.

REST API

Read your ledger like it is your own database.

Authentication is a per-tenant API key sent as a bearer token over HTTPS. Reads are paginated and filterable by outlet and period. Writes are limited by design: the ledger accepts appends, never edits, because an API that could rewrite history would defeat the point of the product.

Keys are issued per environment, so you can build against test data before touching a live counter.

Request a key

Typical endpoints

GET/v1/saleslist sales in a period
GET/v1/sales/{id}one sale, with lines
GET/v1/ledgersealed entries, in order
GET/v1/day-closesZ-reports per counter
GET/v1/productscatalogue and VAT class
GET/v1/outletsoutlets and counters

Shapes shown here illustrate the model. The authoritative reference ships with your API key.

A sealed saleJSON
// GET /v1/sales/9f2c41e0 · illustrative
{
  "id": "9f2c41e0",
  "outlet": "kamppi",
  "counter": "pos-02",
  "sealed_at": "2026-08-03T14:22:07Z",
  "currency": "EUR",
  "total": "89.00",
  "lines": [
    { "sku": "MK-4417", "qty": 1,
      "net": "70.91", "vat_rate": "25.5",
      "vat": "18.09" }
  ],
  "payment": {
    "method": "card_contactless",
    "processor": "worldline",
    "reconciled": true
  },
  "seal": {
    "hash": "a3f9…e21",
    "prev": "7c14…b08",
    "staff": "anna.k"
  }
}
Webhook eventsPUSH
// signed POST to your endpoint · illustrative

sale.sealed       a sale is written and closed
sale.voided       a void is appended, with reason
refund.created    a refund is appended
payment.settled   tender reconciled to the sale
payment.mismatch  money and record disagree
day.closed        Z-report sealed for a counter
export.ready      SAF-T or CSV available

Delivery
  · HMAC signature on every request
  · retried with backoff until 2xx
  · event ids are stable, so replays
    are safe to deduplicate

Use payment.mismatch as an alert, not a report. It should be rare, and it should never be ignored.

Exports & connectors

Formats the people who audit you already read.

Z-report · daily close per counterPDF · JSON
SAF-T · standard audit fileXML
Sales & VAT summary · any period, per outletCSV · XLSX
Full sealed journal · entries with hashes, verifiableCSV · JSON
Product catalogue · with VAT classes and stockCSV

Accounting systems

Routes into the Nordic systems our customers use, including Netvisor, Procountor and e-conomic.

Baslic

Money-in from Fizzy and invoices from Baslic form one auditable trail, from the counter to the filing.

Your own ERP

If it speaks HTTP or reads files, it can be fed. Tell us the shape you need and we will map to it.

Written for humans, issued to customers.

The full reference, sandbox credentials and webhook setup go out with your API key. Customers, accountants working on a customer's behalf, and partners building an integration can all request one.

Tell us what you are building and which direction the data needs to move. If a connector already exists, we will say so and save you the work.

Principles we hold to

  • Your data is yours, exportable at any time, at no charge
  • The ledger appends, it never edits, and the API respects that
  • Breaking changes get a new version, not a surprise on a Tuesday
  • Every figure the API returns traces back to sealed rows
  • EU hosting, tenant isolation, GDPR by design
Trust Center

Build on a spine that cannot lie to you.