> ## Documentation Index
> Fetch the complete documentation index at: https://docs.openfiskal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Getting started

> Pick the country you're integrating for. Each guide walks you through the country-specific fiscal contract end to end.

OpenFiskal's `v1` integration contract is shared across countries, but the fiscal regime, merchant identity shape, and signed receipt fields differ. Pick your country to follow the correct flow.

<CardGroup cols={3}>
  <Card title="🇩🇪 Germany" href="/getting-started/de">
    KassenSichV: Sign transactions and get a QR code with the signature.
  </Card>

  <Card title="🇦🇹 Austria" href="/getting-started/at">
    RKSV: Sign transactions and get a QR code with the signature.
  </Card>

  <Card title="🇮🇹 Italy" href="/getting-started/it">
    Registratore Telematico: Transmit transactions to AdE and get DCW numbers.
  </Card>
</CardGroup>

<Info>
  All three guides use `https://sandbox.api.openfiskal.com/v1`. Replace with `https://api.openfiskal.com/v1` when you go live.
</Info>

<Note>
  Generate API keys at [console.openfiskal.com](https://console.openfiskal.com). Each key is tenant- and country-scoped — see [Authentication](/auth) for details.
</Note>

<Card title="Live OpenAPI spec" icon="file-code" href="https://api.openfiskal.com/openapi-json">
  The current production spec is served at **`https://api.openfiskal.com/openapi-json`** (sandbox: **`https://sandbox.api.openfiskal.com/openapi-json`**). Import it into Postman, Insomnia, or an OpenAPI code generator to scaffold a client in minutes.

  The OpenAPI spec always matches the live API implementation.
</Card>

## Scope

OpenFiskal is a server-to-server fiscalization API. Your backend calls the API on behalf of your POS devices. There's no direct device-to-API path today.

The current public scope covers Germany, Austria, and Italy.

## What's the same across countries

These mechanics are identical regardless of the country guide you follow:

* **API key format** — `of_{env}_{country}_{random}`, one key per country + environment.
* **Request shape** — bearer auth on every request, `X-OpenFiskal-Merchant` on every merchant-scoped request, ETag + `If-Match` on mutating calls.
* **Resource ordering** — merchant → location → register → fiscalize → session → operation → complete.
* **POS sessions** — every `sale`, `return`, and `exchange` on a POS register must bind to an open session. See [Sessions](/sessions).
* **Idempotency** — `Idempotency-Key` on `POST /operations` and `POST /operations/{id}/complete|void`.
* **Money fields** — decimal strings, not integers. `pretax_amount + tax_amount + tip_amount = total_amount`.

## What's different per country

|                                 | 🇩🇪 Germany                                     | 🇦🇹 Austria                                                                                                                              | 🇮🇹 Italy                                                                                                                                                                                                                        |
| ------------------------------- | ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Regime                          | KassenSichV                                      | RKSV                                                                                                                                      | RT                                                                                                                                                                                                                                |
| `country_code`                  | `DEU`                                            | `AUT`                                                                                                                                     | `ITA`                                                                                                                                                                                                                             |
| Fiscal identity required fields | `tax_number` (Steuernummer), `vat_id` (USt-IdNr) | `legal_entity_id_type` (`VAT_ID` \| `TAX_ID` \| `GLN`); `gln` (13 digits) when the type is `GLN`. `vat_id` and `tax_number` are optional. | `legal_entity_type` (`COMPANY` \| `INDIVIDUAL`), `tax_number` (Codice Fiscale: 11 digits or 16 alphanumeric), `vat_number` (Partita IVA: 11 digits), `fisconline_user` (16 alphanumeric), `fisconline_password`, `fisconline_pin` |
| Receipt obligation              | Render all fiscal fields exactly                 | Preserve fiscal values + local format                                                                                                     | Render the DCW number                                                                                                                                                                                                             |

The format constraints in the table are enforced by the API. See the country-specific guides for full payload examples.

<Warning>
  This matrix is a product scope guide, not legal advice. Your implementation owner should review the regime-specific onboarding checklist before go-live.
</Warning>

## Next steps

* [Authentication](/auth) — bearer key + merchant header reference
* [Integration topology](/integration-topology) — backend-to-backend architecture
