This section is for fiscal providers, not for points of sale. If you are integrating
a POS or a kiosk that consumes FIRE’s numbering, what you want is the
fiscal integration guide.
The two integrations, which are not the same
There are two distinct and opposite connections around fiscal numbering:It is a canonical contract
It does not describe what one particular provider does: it is the requirement. Anyone integrating with the Fiscal Gateway implements this same endpoint, with this same shape. It does not change per provider or per country. That has a consequence worth understanding before reading the detail: That is why the request carriesoperation: "INVOICE" and not documentTypeCode: "01";
store.code and not establishmentCode; device.externalId and not pointOfEmissionCode.
The field names are the same ones FIRE’s events already use
(order.completed, order.invoiced).
Anyone already consuming events learns no new vocabulary.
What has to be implemented
One endpoint per country, synchronous:baseUrl, one credential. The routes that exist are the
countries you serve, so a new country is added without touching the ones already working.
It receives a sale and returns the fiscal identifiers needed to print it. It sits on the
critical path of the sale —the register is waiting— so the target latency budget is
under 3 seconds.
This endpoint produces the fiscal representation: the numbers to print. Submission to
the tax authority and its authorization happen afterwards, on the provider’s side, and the
outcome arrives via the callback. They are two distinct lifecycles and the contract does
not mix them.
Where to go next
Endpoint contract
Authentication, request, response, errors and idempotency. The full requirement.
What reaches the integrator
How what you return ends up travelling in the order’s events.
Real examples
Requests and responses captured from a working integration.

