Skip to content

Non-destructive Z-report counter read + autonomous midnight Z-closure detection for СУПТО compliance #201

@vr46-tech

Description

@vr46-tech

Hello,

We are building a СУПТО-compliant POS backend for a Bulgarian venue operator, using ErpNet.FP as the fiscal abstraction layer against a Datecs FP-700MX (firmware 3.00 22Jul25, protocol bg.dt.x.isl.com, serial DA023700).
We are designing the Z-report / fiscal day close flow, and hit a specific compliance problem around the FP-700MX's automatic midnight Z-report (required by Н-18 amendments 2022).
The problem:
If our POS fails to close the fiscal day before midnight, the Datecs FP-700MX autonomously issues a Z-report at 23:59:59. Our СУПТО software has no way to know this happened: no push notification, no status flag change visible via GET /status. We need to detect the drift between our last recorded Z-report number and the printer's current Z-counter in order to synthesize the closure record and maintain a gapless Appendix 29 audit trail.
What we have tested, we confirmed via live probe that:

  • POST /rawrequest is exposed in our build (HTTP 405 on GET → POST works)
  • Command 64 ({"rawRequest": "64\t"}) is accepted with ok: true
  • On our current device the rawResponse data field is empty because the FM was just formatted (no fiscal days closed yet, no UIC set — this is a pre-production unit)

We therefore believe that on a production-commissioned unit with at least one closed fiscal day, Command 64 should return the last Z-report number and closure date, which would give us the non-destructive read we need.
Our questions:

  • Is our assumption correct: will POST /rawrequest with {"rawRequest": "64\t"} return the Z-report sequence number on a live, fiscalized FP-700MX unit with the bg.dt.x.isl driver?
  • What is the exact field layout of Command 64's rawResponse on a live unit? (We need to know which tab-delimited field position contains the Z-counter, so we can write a parser in our Fiscal Abstraction Layer.)
  • Is there a cleaner, first-class GET endpoint planned or already available in a newer build that exposes the last Z-report number without printing? Something like GET /printers/{id}/fiscalDayInfo would be ideal for our use case.
  • Is the autonomous midnight Z-report a known pattern that other СУПТО integrators have solved via ErpNet.FP? If so, what is the recommended approach?

Thank you in advance for your support on.

regards,

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions