🇺🇿 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.

More Information

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:

  1. Go to the official classification website tasnif.soliq.uz. This site contains the comprehensive list of IKPU codes along with descriptions.

  2. 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 🪞.

  3. Search for your product or service using the search functionality. 🔍

  4. Match your product or service with the corresponding IKPU code from the list.

  5. 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

⚠️

Important: 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

PropertyTypeDescription
sourceStringPayment source, in this case, "Card".
amountNumberThe amount for the transaction
currencyStringThe three-letter currency code, here "UZS" for Uzbekistani soʻm.
metadata.order.orderIdStringUnique identifier for the order.
metadata.order.advanceContractIdStringDownPayment contract Id
metadata.order.uzRegulatoryOrderDetailsObjectRequired if merchant provides Taxi aggregation services.
latitudeDoubleLocation of Pickup (Optional)
longitudeDoubleLocation of Pickup (Optional)
taxiVehicleNumberString(8)Vehicle Number
taxiTinString(9)TIN (if the principal is an legal entity)
taxiPinflString(14)PINFL (if the principal is an individual)
metadata.order.orderItemsArrayList of items within the order.
uzRegulatoryOrderItemObjectContainer for Uzbekistan's regulatory information for an order item.
commissionInfoPinflStringPersonal Identification Number of the individual in fiscal data(Committent).
Required if merchant is individual enterpreneur.
commissionInfoTinStringTax Identification Number of the committent, required if merchant is legal entity.
productLinkString (URL)Link to the product page. (Optional)
productImageString (URL)URL of the product's image. (Optional)
productNameString(63)Name of the product. (Required)
productCodeString(17)IKPU code (tasnif.soliq.uz)[https://tasnif.soliq.uz] on this site you can determine the IKPU codes of goods and services (Required)
productBarCodeString(13)Barcode of the product.(Optional)
productLabelString(21)Label associated with the product.(AKA Marking code)(Optional)
packageCodeString(2)Code for the product's packaging.(Required)
productQuantityNumberQuantity of the product in the order.(Required)
priceNumberPrice of a single product unit.(Required)
sumPriceNumberTotal price for the product quantity.(Required)
vatNumberValue-added tax amount on the product.(Required)
vatPercentNumberThe percentage rate of the value-added tax.(Required)
discountNumberDiscount applied to the product. (Optional)
additionalDiscountNumberAny additional discount applied to the product. Used for Insurances
(Optional)
voucherNumberTotal amount of voucher. Does not affect the order price or VAT (Optional)
metadata.order.billingAddressObjectContainer for the billing address information.
phoneNumberStringContact phone number of Card Holder.
(Required)
metadata.extraAttributesArrayAdditional attributes relevant to the payment.
keyStringRECEIPT_TYPE (Indicates type of sale) (Required)
valueStringIndicates type of sale, Default: Sale
Refund, DownPayment, Credit(Required)
descriptionStringDescription 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]

What’s Next

Start integrating payments that are compliant with Uzbek tax regulations