🇺🇿 Uzbekistan Fiscalization - OFD
Explanatory guide that helps companies to become compliant with local Uzbek tax authorities
Uzbekistan Online Fiscalization (OFD) Requirements for Businesses
Overview
For businesses in Uzbekistan, implementing Online Fiscalization (OFD) is a key step towards maintaining compliance with national tax laws 📜 and modernizing your sales reporting 🚀.
🔍 Real-Time Transaction Recording
- With OFD, sales transactions are recorded accurately and reported to the Uzbek tax authorities instantly.
- This ensures that your business's transaction data is always current and compliant. 🌟
🛡️ Combatting Tax Evasion
- The introduction of OFD is a crucial move to prevent tax evasion and increase fiscal transparency.
- Every sale is tracked, significantly reducing the possibility of discrepancies and fraud. ✅
💼 Tax Reporting Modernization
- Embracing OFD means joining the digital revolution in tax reporting, which is all about efficiency and reliability.
- This digital leap is not just forward-thinking but also aligns with global best practices. 🌐
Pre-Requisite
📑 Adding Payze as a Commissioner Agent
In order to reflect the sale of goods under a commission agreement in the receipts of online cash registers and virtual cash desks, the consignor (principal) must follow these steps:
1️⃣ Log in to the personal tax cabinet on the website (my.soliq.uz)[https://my.soliq.uz] using your digital signature key (ЭЦП).
2️⃣ From the list of services, select the option "Formation of the list of organization's commissioners" (Формирование списка комиссионеров организации).
3️⃣ Click the "Add" button.
4️⃣ In the window that opens, enter the following information:
▫️ Tax Identification Number (ИНН) of the legal entity or Personal Taxpayer Number (ПИНФЛ) of the individual entrepreneur;
▫️ Name of the commissioner organization (наименование организации-комиссионера);
▫️ Commission agreement number (номер договора комиссии);
▫️ Banking routing code (МФО);
▫️ Bank account number (расчетный счет);
▫️ Date of the agreement conclusion (дату заключения договора);
▫️ Start date of the agreement's validity (дату начала срока действия договора);
▫️ End date of the agreement's validity (дату окончания срока действия договора).
5️⃣ Press the "Add" button (Добавить) again.
❗️ Important Note:
- Ensure that the start and end dates of the agreement's validity are entered correctly. Inaccurate dates may result in integration failure. The start date should not precede the actual date of agreement execution, and the end date must reflect the actual intended duration of the agreement.
Determine Your Product's IKPU Code 🧾🔍
In Uzbekistan's fiscal data management, each product or service provided by businesses is assigned a unique identifier known as an IKPU code. The IKPU code is a crucial element for ensuring compliance with tax regulations, as it helps categorize and declare items properly for fiscal data operators (OFD) and tax authorities.
To determine the IKPU code for your product, follow these steps:
-
Go to the official classification website tasnif.soliq.uz. This site contains the comprehensive list of IKPU codes along with descriptions.
-
If you encounter any issues accessing the site, a mirrored version with the essential information is available. Access the backup resource here: IKPU Codes Mirror 🪞.
-
Search for your product or service using the search functionality. 🔍
-
Match your product or service with the corresponding IKPU code from the list.
-
Record the IKPU code for your business documentation and use it in all relevant transactions and reports to the tax authorities. ✅
🚨 Please Note: It's critical for businesses to use the correct IKPU codes to avoid any compliance issues or potential fines. If you're unsure about which code to use, consult with a tax advisor or reach out to the fiscal data operator's support team for assistance.
Simplified OFD Integration with Payze
- Payze 🚀 simplifies the OFD integration, eliminating the need for handling complex endpoints.
- Simply include a few extra fields in your payment initialisation request, and you're set for OFD compliance with Payze! ✨
- Enjoy a straightforward integration process that's both time-saving and effort-efficient. 🎉
🛠️ Processing a Payment with v2/api/payment
Endpoint
v2/api/payment
EndpointImportant: OFD Support
Please note that (OFD) functionality is only supported in the
v2/api/payment
endpoint.Ensure that you are using this version to incorporate fiscal data into your payment processing.
To initiate a payment process, you will need to make a PUT request to the v2/api/payment
endpoint.
This call should include a JSON request body containing the necessary regulatory details.
Request
{
"source": "Card",
"amount": 1000,
"currency": "UZS",
"metadata": {
"order": {
"orderId": "1500",
"advanceContractId": "",
"uzRegulatoryOrderDetails": {
"latitude": 43.231231,
"longitude": 232.2131231,
"taxiVehicleNumber": "...",
"taxiTin": "...",
"taxiPinfl": "..."
},
"orderItems": [
{
"uzRegulatoryOrderItem": {
"commissionInfoPinfl": "...",
"commissionInfoTin": "..."
},
"productLink": "https://google.com",
"productImage": "https://google.com/image",
"productName": "Product Name",
"productCode": "...",
"productBarCode": "...",
"productLabel": "...",
"packageCode": "...",
"productQuantity": 1,
"price": 10,
"sumPrice": 10,
"vat": 0,
"vatPercent": 0,
"discount": 0,
"additionalDiscount": 0,
"voucher": 0
}
],
"billingAddress": {
"phoneNumber": "+998111111111"
}
},
"extraAttributes": [
{
"key": "RECEIPT_TYPE",
"value": "Sale",
"description": "OFD Receipt type"
}
]
}
}
Request Description
Property | Type | Description |
---|---|---|
source | String | Payment source, in this case, "Card". |
amount | Number | The amount for the transaction |
currency | String | The three-letter currency code, here "UZS" for Uzbekistani soʻm. |
metadata.order.orderId | String | Unique identifier for the order. |
metadata.order.advanceContractId | String | DownPayment contract Id |
metadata.order.uzRegulatoryOrderDetails | Object | Required if merchant provides Taxi aggregation services. |
latitude | Double | Location of Pickup (Optional) |
longitude | Double | Location of Pickup (Optional) |
taxiVehicleNumber | String(8) | Vehicle Number |
taxiTin | String(9) | TIN (if the principal is an legal entity) |
taxiPinfl | String(14) | PINFL (if the principal is an individual) |
metadata.order.orderItems | Array | List of items within the order. |
uzRegulatoryOrderItem | Object | Container for Uzbekistan's regulatory information for an order item. |
commissionInfoPinfl | String | Personal Identification Number of the individual in fiscal data(Committent). Required if merchant is individual enterpreneur. |
commissionInfoTin | String | Tax Identification Number of the committent, required if merchant is legal entity. |
productLink | String (URL) | Link to the product page. (Optional) |
productImage | String (URL) | URL of the product's image. (Optional) |
productName | String(63) | Name of the product. (Required) |
productCode | String(17) | IKPU code (tasnif.soliq.uz)[https://tasnif.soliq.uz] on this site you can determine the IKPU codes of goods and services (Required) |
productBarCode | String(13) | Barcode of the product.(Optional) |
productLabel | String(21) | Label associated with the product.(AKA Marking code)(Optional) |
packageCode | String(2) | Code for the product's packaging.(Required) |
productQuantity | Number | Quantity of the product in the order.(Required) |
price | Number | Price of a single product unit.(Required) |
sumPrice | Number | Total price for the product quantity.(Required) |
vat | Number | Value-added tax amount on the product.(Required) |
vatPercent | Number | The percentage rate of the value-added tax.(Required) |
discount | Number | Discount applied to the product. (Optional) |
additionalDiscount | Number | Any additional discount applied to the product. Used for Insurances (Optional) |
voucher | Number | Total amount of voucher. Does not affect the order price or VAT (Optional) |
metadata.order.billingAddress | Object | Container for the billing address information. |
phoneNumber | String | Contact phone number of Card Holder. (Required) |
metadata.extraAttributes | Array | Additional attributes relevant to the payment. |
key | String | RECEIPT_TYPE (Indicates type of sale) (Required) |
value | String | Indicates type of sale, Default: Sale Refund, DownPayment, Credit (Required) |
description | String | Description of what the extra attribute represents. (Optional) |
Payment Confirmation and Receipts
Upon the successful completion of a payment, the cardholder will receive an SMS notification containing the URL to their OFD receipt. This ensures immediate access to transaction proof for customer convenience and record-keeping.
Cardholder Receipt
- SMS Notification: An SMS will be sent to the cardholder's phone number as provided in the billing details. This message includes a direct URL to the OFD receipt for the completed transaction.
Merchant Receipt Retrieval
- Receipt Endpoint: Merchants can obtain a copy of the transaction receipt by querying the
/v2/api/payment/query/token-based
through the transaction query endpoint. `Receipt
property stores receipt url.
This allows for easy retrieval and storage of fiscal data necessary for compliance and accounting purposes.
Webhook Notification Details
When the OFD receipt becomes available, we will trigger a POST request to the provided webhook URL with the transaction details and the receipt URL.
{
"Receipt": "https://example.com/ofd_receipts/12345",
...
}
SMS Receipt Example
The cardholder receives an SMS with the following content:
Thank you for your purchase! Your OFD receipt is available at: [Receipt URL]
Updated 6 months ago
Start integrating payments that are compliant with Uzbek tax regulations