FiscalNet
Back to Useful Information
Documentation · For integrators

FiscalNET Documentation.
Step-by-step integration.

An integrated web server, the same POST method for Windows and Android. Choose the location from which you are sending the request and check the response of the operation. The explanations include the general guide and the clarifications from the FiscalNET team dated 19 October 2026.

PDF Guide · 15 pages · 30 April 2026 edition. You can read the explanations and references below in web format, even without a PDF reader.

Choose the integration method.

ChannelSuitable forResult
HTTP APIWindows and Android: local applications, middleware, or calls from the device's browser with FiscalNETSynchronous JSON or asynchronous job
Order fileWindows applications and ERPs with file exportFile in the Raspuns folder
Android IntentApplications installed on the same Android terminalActivity Result and response extras
INP formatCompatibility with existing applicationsResponse file, as in file-based integration

A single calling method. Windows and Android.

The integrated web server receives POST requests at http://localhost:65400/api/Receipt. The request body can be a JSON list of strings, each string representing a command. In Postman, select POST, Body → raw → JSON and the header Content-Type: application/json.

On the same device

Use localhost when the application executing the request and FiscalNET are running on the same computer or Android terminal.

From the local network

Replace localhost with the IP address of the device running FiscalNET, for example http://192.168.1.50:65400/api/Receipt. Allow TCP port 65400 in the firewall for authorised devices on the local network. The IP address in the example is replaced with the real one.

From the web application

Execute the call to the local service in the computer's browser with FiscalNET. A localhost call executed on the application server reaches that server, not the cash register at the location. The local call from the browser eliminates the need for a dedicated public IP address and port forwarding on the router.

The API connection and the device cable are different things.

The cash register can be connected via USB or LAN if the model and the respective interface are supported by FiscalNET. The application communicates with FiscalNET, and the driver communicates with the device. HTTP calling is also available for Datecs BlueCash 50 and Partner Touch Evo, according to the FiscalNET team.

On Windows, the workflow via files placed in the Bonuri folder also remains available. The command to the bank POS via the API is only available on Windows.

Web applications: also check the browser rules

An HTTPS page and a local HTTP service may encounter browser security restrictions. Configure the allowed origin and the CORS/OPTIONS response, and when the installation provides local HTTPS, use the address and certificate configured for that version. Do not assume that simply replacing the IP address resolves these requirements; do not disable browser protections.

Complete JSON request example provided to integrators

Example of syntax provided by the FiscalNET team. Includes sales, voids, adjustments, barcodes and payment lines. The values, VAT rates and totals must be adapted and validated before use; the example does not certify a valid sales receipt for any device. The page does not send commands to devices.

POST http://localhost:65400/api/Receipt · Content-Type: application/json
[
  "CF^RO 123456789",
  "S^ARTICOL DE STORNAT^600^1000^buc^1^1",
  "VS^ARTICOL STORNO^600^1000^buc^1^1",
  "S^ARTICOL 1^500^1000^buc^1^1",
  "DP^1000",
  "S^ARTICOL 2^500^1000^buc^1^1",
  "DV^100",
  "S^ARTICOL 3^415^1000^buc^1^1",
  "MP^500",
  "S^ARTICOL 4^315^1000^buc^1^1",
  "MV^50",
  "ST^",
  "DP^500",
  "CB^5940000000820^2",
  "TL^Rand text liber 1",
  "TL^Alt rand text liber",
  "P^2^1000",
  "P^1^2000"
]

Integration notes: FiscalNET team, 19 October 2026. The examples in the PDF also use the /api/receipt notation; the address above reproduces the form communicated to integrators. Check the route and the configuration of the installed version.

Common HTTP API for Windows and Android.

Local knowledge base in the guide: http://localhost:65400. Use the address and port configured in your instance. Do not expose the local service directly to the internet.

MethodRouteRole
GET/api/healthCheck whether the service is responding.
GET/api/devicesList the available devices.
GET/api/devices/{deviceId}Details of the selected device.
POST/api/receiptExecute a command.
POST/api/devices/{deviceId}/receiptSend the command to a specific device.
GET/api/jobsList asynchronous jobs.
GET/api/jobs/{jobId}The status and result of a job.
Example for Windows · service check, without issuing a receipt
curl.exe http://localhost:65400/api/health

For order execution, the guide accepts multiline text or a JSON list of lines. Example of a status query:

curl.exe -X POST "http://localhost:65400/api/receipt" -H "Content-Type: text/plain" --data-binary "STATUS"

Windows files: an easy-to-follow workflow.

  1. Build the file

    Use .txt, .inp or .json, with the corresponding syntax from the guide.

  2. Send command

    Place the complete file in the Receipts folder or in the folder of the configured device.

  3. Read the result

    After processing, the order appears in Istoric, and the result is read from Raspuns.

  4. Keep the pair

    Archive the request and the response together for diagnostics and traceability.

Command reference in text format.

In the plain text format, each line represents an instruction. The field separator is ^. In the notation below, curly brackets indicate values to be replaced, and ? denotes an optional parameter; these symbols are not part of the value sent.

SyntaxRole
ID^{deviceId}Select the fiscal device for the following lines.
CF^{codFiscal}Set the customer's tax code for the current receipt.
NF or NF^{text}Initialises a non-fiscal document; text is optional.
TL^{text}Free text. Its position determines whether it appears at the beginning, next to the item, or after the subtotal.
S^{nume}^{pret}^{cantitate}^{um}^{tva}^{departament}Add a sales item.
VS^{nume}^{pret}^{cantitate}^{um}^{tva}^{departament}Add a reversal item; the order of the fields is the same as in S.
ST^Open the subtotal context for adjustments at the receipt level.
DP^{valoare} / DV^{valoare}Percentage/amount discount, applied to the current item or the subtotal, depending on the line item.
MP^{valoare} / MV^{valoare}Percentage / value increase, depending on the context.
CB^{valoare}^{tip}Add a barcode or QR code for printing.
P^{tipPlata}^{valoare?}Add a payment line; the amount is optional in certain scenarios.
X / ZInterim Report X / Closing Report Z.
STATUSQuery the status of the fiscal device.
BONINFO^{raport}^{bon}Read the information of a receipt from the log.
RAPZINFO^{start}^{end}Read a range of Z reports from the log.
POS^{suma}^{idPos?}Initiates a POS operation. Check the PLUS licence, terminal configuration and application integration.
I^{suma} / O^{suma}Cash deposit/withdrawal; amounts are in minor units.
DISPLAY^{linie?}^{text} / MSG^{linie?}^{text} / D^{linie?}^{text}Message on the display, if the device supports the operation.
CategoryValues from the guide
Payment in plain text, command P1 = Cash; 2 = Card; 3 = Credit; 4 = FoodStamp; 5 = ValueTichets; 6 = Voucher; 7 = Modern; 8 = Other1; 9 = Other2.
Barcode, CB in plain text / Q in INP1 = EAN8; 2 = EAN13; 3 = CODE128; 4 = QR.
Payment in INP, command T0 = cash; 1 = card; 2 = credit; 3 = FoodStamp; 4 = ValueTichets; 5 = Voucher; 6 = Modern; 7 = Other1; 8 = Other2.

Full syntax and examples from the PDF · pages 5–8

Android Intent: applications on the same device.

The technical package remains com.econmedia.fiscalnet; this is the application identifier, not the company name.

ElementValue
Initialisationcom.econmedia.fiscalnet.action.WARMUP_APP
Processingcom.econmedia.fiscalnet.action.PROCESS_COMMAND
Text ordercom.econmedia.fiscalnet.extra.COMMAND_TEXT
Order by linescom.econmedia.fiscalnet.extra.COMMAND_LINES
Referencecom.econmedia.fiscalnet.extra.REFERENCE
Timeoutcom.econmedia.fiscalnet.extra.TIMEOUT_MS
ElementIdentifier
Source applicationcom.econmedia.fiscalnet.extra.SOURCE
Moving the application to the backgroundcom.econmedia.fiscalnet.extra.MOVE_TO_BACK

The result extras use the prefix com.econmedia.fiscalnet.result.: SUCCESS, RESPONSE_JSON, HTTP_STATUS_CODE, RECEIPT_STATUS, RECEIPT_NUMBER, RECEIPT_INFO, ERROR_CODE and ERROR_INFO. Keep the identifiers exactly as they appear in the guide.

Kotlin examples and Android results · page 13

INP: maintains compatibility, verifies meaning.

INP is a command format for existing integrations. Use commas and semicolons as separators, decimal amounts and quantities, and the same logical number, between 1 and 99, on all lines of the document. The order of the lines establishes the context.

OrderRole / rule
K / SCustomer tax code / sales item.
CAdjustment: 0 = percentage increase, 1 = percentage discount, 2 = amount increase, 3 = amount discount.
LSubtotal. Its position changes the context of the adjustments.
P / WFree / additional text, dependent on position. P in INP is not the plain text payment command.
QBarcode / QR code; the types are listed in the code table above.
TPayment; closes the sales flow. Use INP encoding, which starts from 0 for cash.
ZParameter 0 indicates X report; any other value or the absence of the parameter indicates Z report.
IParameter 0 indicates cash deposit; 1 indicates cash withdrawal.

Do not convert a command between plain text and INP simply by replacing the separators. Payment codes, the representation of amounts, and some command letters have different meanings. Consult the complete structure of the INP lines in the PDF, pages 8–10.

Open the INP reference

POS Payments: Check the actual transaction.

For bank POS integration, check the PLUS licence, the configured terminal and the POS ID when multiple terminals are used. Confirm the connection method for your terminal and platform.

Special rules for POS orders · page 14

Details of FiscalNET PLUS integration with bank POS

Interpret the result, not just the transport.

ChannelMain indicatorDetails
FileBONOK=1 / BONOK=0NRBON, NRZ, ERRCODE, ERRINFO
HTTPReceiptStatus: true / falseReceiptNumber, ReceiptInfo, ErrorCode, ErrorInfo
AndroidSUCCESS: true / falseRESPONSE_JSON, HTTP_STATUS_CODE, ERROR_INFO
Does an HTTP response mean that the receipt has been issued?

No. The HTTP code indicates the result of the transmission; check ReceiptStatus, ReceiptNumber, ErrorCode and ErrorInfo for the fiscal operation. When integrating via files, read BONOK and the details of the response. In Intent, check SUCCESS and RESPONSE_JSON. For POS payments, also check the special rules below.

What should I do if the payment or receipt remains unanswered?

Do not automatically resubmit a financial operation. Check the job, the log and the result on the device before deciding to retry, to avoid duplication.

Troubleshooting: start from the symptom.

SymptomWhat you check
The response file does not appearThe configured folder, the write permissions, the running application, and the format of the file sent.
ReceiptStatus is falseRead ErrorCode and ErrorInfo before proceeding to the next step.
The API returns a technical errorThe address and port, the endpoint route, the HTTP method, the Content-Type, and the request body.
Android Intent does not return a resultUse ActivityResultLauncher or its equivalent, startActivityForResult, not just startActivity.
The POS is not receiving the transactionCheck whether the fiscal device is a test device, whether it has a PLUS licence, and whether a bank payment terminal is configured.
Another fiscal device is being usedExplicitly select the ID of the fiscal device.
The receipt is rejected during parsingCheck the order of the lines and the presence of a sales item or a reversal on the fiscal receipt.

See also the frequently asked questions about installation, licences and support

Before use in production.

  1. Identify the device

    If there are multiple devices, explicitly provide the ID of the fiscal device. For a bank payment, also provide the POS ID when available and check the PLUS licence and the configured terminal.

  2. Test the responses

    Covers success, device unavailable, paper out and command errors, in a controlled environment.

  3. Separate the payment from the confirmation

    Do not assume that a timeout means failure. Check the operation before resubmitting.

  4. Document the integration

    Retain the versions, settings, and command/response examples, excluding card data or other sensitive information.

Sources: the general integration guide, 30 April 2026 edition (15 pages), the FiscalNET team clarifications of 19 October 2026 on Windows/Android calls and the local browser, and the confirmation of 3 November 2026 on bank POS integration on Android.

Examples and references for existing integrations

For a new integration, start with the 2026 General Guide and the command reference above. The 2024 materials are retained as a reference for existing integrations.

View sample commands and integration documentation · 2024
MaterialWhen you use itAccess
BonuriTest · TXT examples from 202416 original order files. They contain fiscal operations, reports and payments; the integrator must verify the values and compatibility before use.Open ZIP · 3 KB
FiscalNet Documentation · 2024Original document for existing integrations. For a new integration, start with the General Guide 2026.Open PDF · 553 KB

The configuration of FiscalLink and the equipment can be found in Tutorials for equipment.

The Windows/V2 manuals are in Tutorials V2, and the VAT materials are in VAT archive.

The next connection?
Your business.

Download FiscalNet and configure your equipment.