When people launch an online shop, they think about design, product photos and the checkout button. Fiscal receipts usually come up later, after a tax inspection or a customer asking where their receipt is. Yet in Uzbekistan, sales to consumers, including online sales, must be accompanied by a fiscal receipt registered with the tax authority. Here is how a virtual cash register works, how Click and Payme issue receipts, and what your shop's code needs to get right.
What a fiscal receipt is and why it applies online
A fiscal receipt confirms that the sale has been reported to the tax system. In a physical store it comes from an online cash register; in an online shop the same job is done by a virtual cash register or a service working through a fiscal data operator (OFD). The receipt lists the seller, each item, price, tax and payment method, and carries a QR code the buyer can use to verify it with the tax service. If your site takes money but issues no receipt, the sale is unrecorded, which can lead to fines.
How fiscalization through a payment provider works
Click, Payme and other major providers offer fiscalization to merchants. Along with each payment request, the shop sends the cart contents; after a successful payment the provider turns that data into an electronic fiscal receipt and sends the buyer a link or QR code. No separate cash register is needed. However, the provider only converts what you send: a wrong product code or mismatched totals mean a faulty receipt or none at all, so the real responsibility stays with your site and catalog.
What each line item needs
Every receipt line is a separate product or service. The key field is the MXIK (IKPU) code from the national classifier, which you can look up by product name at tasnif.soliq.uz, together with a package or unit code.
| Field | Meaning |
|---|---|
| MXIK (IKPU) code | Product or service code from the national classifier |
| Package / unit code | Piece, kilogram, service, etc., linked to the MXIK |
| Price and quantity | Unit price and count; amounts usually in tiyin |
| Discount | Discount amount for this line |
| VAT rate | Depends on the seller's tax regime |
| Marking code | For goods subject to mandatory marking |
Sample order payload
The JSON below is illustrative only: field names are generic and do not match any specific provider's API. Use your provider's documentation for the exact format.
{
"order_id": "SMQ-10425",
"total": 36520000,
"items": [
{
"title": "Cotton shirt, size M",
"mxik": "MXIK_CODE",
"package_code": "PACKAGE_CODE",
"price": 18900000,
"count": 2,
"discount": 3780000,
"vat_percent": 12
},
{
"title": "Delivery service",
"mxik": "SERVICE_MXIK_CODE",
"package_code": "PACKAGE_CODE",
"price": 2500000,
"count": 1,
"discount": 0,
"vat_percent": 12
}
]
}
The sum of all lines (price times quantity minus discount) must equal the payment total to the tiyin, or many systems will reject the payment or produce a faulty receipt.
Example: a clothing shop in Samarkand
A small clothing shop in Samarkand accepts Payme on its website. A customer buys two cotton shirts at 189,000 soum each, applies a 10% promo code and picks delivery for 25,000 soum. The 37,800 soum discount is distributed into the shirts line, so the receipt shows two lines: shirts for 340,200 soum and a delivery service for 25,000 soum, totalling 365,200 soum. Because delivery has its own MXIK line, the totals match exactly.
A week later the customer returns one shirt. Along with the card refund, the shop must issue a return receipt for 170,100 soum, the actual post-discount price of one shirt. Without it, the tax system still counts the full sale.
Cash on delivery
If the buyer pays on receipt, the fiscal receipt must be issued where payment happens, so the courier needs a mobile or virtual cash register. Alternatively, the courier can offer a card terminal or a payment link, and the provider issues the receipt as usual. Plan this flow before launch.
Common mistakes
- One generic line such as "Payment for order" instead of itemized goods.
- Wrong MXIK, for example an electronics code on clothing.
- Delivery fee folded into the total instead of a separate line.
- Rounding errors when spreading a discount across lines.
- No return receipts for refunds.
Before you go live
- Store the MXIK and package code for every product and service in dedicated catalog fields.
- Activate fiscalization with your provider and study its field formats.
- Calculate amounts in tiyin and assign rounding remainders when distributing discounts.
- Save the receipt link in the order history.
- Test refunds, including partial ones, in test mode.
Reliable hosting matters too, since provider callbacks can be lost while your server is down. sayt.uz offers hosting for online shops and can help set up Click or Payme integration. Finally, fiscal rules are updated from time to time, so check with your accountant and the provider's latest documentation before launch.