Mistok
Documentation

Fiscal receipts (PRRO)

Quick start newArchitectureGatewaysHTTP APIPrepayment and rulesFiscal receiptsNotifications and CRMPayment linksAnalytics newPolandNative Shopify gatewaySecurity new
FISCAL_MODEHow it worksWhen to choose
monoThe receipt is issued by the PRRO linked in the plata by mono cabinet (mono's own PRRO or Checkbox via mono). Mistok sends a basket with product codes (code = SKU, barcode, tax groups from MONO_TAX_CODES), picks the receipt up from fiscal-checks, writes the link into the order note, adds the fiscal-done tag, shows it to the buyer on the Order status page and serves the PDF in the admin (/admin/fiscal/:id.pdf).all online payments go through mono
checkboxMistok itself creates a sale receipt in Checkbox after payment (goods, shipping, CASHLESS), a refund receipt on refund, and with CHECKBOX_FISCALIZE_ALL=true — also for other orders on orders/paid (cash on delivery → CASH).several gateways, cash on delivery, one cash register for everything
vchasnoVchasno.Kasa (Orders API): after an online payment Mistok creates an order with the goods (SKU, barcode, kopecks) and the register issues the receipt at once. For cash on delivery — a deferred receipt: on fulfilment Mistok passes the Nova Poshta / Ukrposhta / Meest tracking number and the register fiscalizes by itself when the buyer pays at the branch. Return receipts are issued manually in the register app (the API does not expose them).your accountant already uses Vchasno; many COD orders; free tier up to 300 receipts/month
nonenothing is fiscaliseda sole proprietor without a PRRO obligation, or an external cash register

Return receipts via mono

When a PRRO is linked to mono, invoice/cancel must carry items — the bank builds the return receipt from them. Mistok takes the lines from the Shopify refunds/create webhook (refund_line_items + shipping refund); if the lines do not add up to the refunded amount, a single summary line for the exact amount is sent. The poller then reads fiscal-checks (type: return) and writes the return-receipt link into the order note and the refunds log. Same for a partial hold capture: invoice/finalize with items when the amount differs.

Eventmono callReceiptWhere it shows
payment success— (the PRRO fires by itself)salenote, tag, Order status, fiscalized event, PDF in admin
refund in Shopifyinvoice/cancel + itemsreturn“return receipt” note, refunds log
hold captured for lessinvoice/finalize + itemssale for the new amountas for a payment
receipt failed——owner alert (Telegram/email), manual retry POST /admin/fiscal/:id/poll

Vchasno.Kasa: how the deferred receipt works

StepWhat Mistok doesCall
online payment successcreates an order with payment type “card”, tag = mistok-<orderId> (idempotent)POST /api/v1/orders
COD order, orders/fulfilled with a tracking numbercreates a deferred receipt: TTN, carrier (from tracking_company), goods, amount due (minus prepayment)POST /api/v1/fiscal_links
poller (every 10 min, up to 30 days)reads the status: 0/10/11 — waiting; 101 — receipt issued → note, fiscal-done tag, fiscalized event; 2000/2002 — cancelled/expired → alertGET /api/v1/fiscal_links/:id
refund in Shopifyrefunds at the PSP and alerts “issue the return receipt in Vchasno.Kasa”—

Variables: VCHASNO_TOKEN (cabinet → Settings → API), VCHASNO_RRO_FN (fiscal number of the register, GET /api/v1/rro), VCHASNO_DEFERRED_COD, VCHASNO_DEFAULT_POSTAL. Wire format checked against the open-source client sashalenz/vchasno-kasa-api; official wiki — wiki-kasa.vchasno.ua. Not yet verified on a live account — keys needed.

Cash on delivery

FISCAL_COD=false disables receipts for orders paid through the carrier. Basis: the Supreme Court’s position (case 520/27700/25, June 2026) that NovaPay cash-on-delivery is not a settlement operation of the seller. This is not legal advice — agree the mode with your accountant; Mistok only provides the switch and an audit trail in the order notes.

Receipts for the buyer

SEND_MONO_RECEIPT=true — mono sends a payment receipt to the buyer’s email. Checkbox delivers the receipt to the email/phone from the delivery fields.

Checkbox variables

CHECKBOX_LICENSE_KEY, CHECKBOX_PIN_CODE (or the cashier’s login/password), CHECKBOX_AUTO_SHIFT (opens a shift automatically). Official docs: api.checkbox.ua/api/redoc.