M cenaly.ru
🔌 Кассовый сервер: чеки по API

📋 Реквизиты чека: состав и справочники

Полный состав receipt: покупатель, продавец, позиции и оплаты; таблицы признаков расчёта, единиц измерения, ставок НДС, агентских реквизитов и маркировки

Documentation

Receipt fields: contents and reference tables

Here is the complete contents of the receipt object (in correction receipts it is called correction) and all the value reference tables the Cash Server API accepts. Everything described below is checked at the intake: a receipt that fails the check returns error 32, and the error text names the specific field.


1. Structure#

{
  "client":   { "email": "buyer@example.com" },
  "company":  { "email": "shop@example.com", "sno": "usn_income",
                "inn": "7736570901", "payment_address": "https://shop.example" },
  "items":    [ /* 1…100 items */ ],
  "payments": [ /* at least one payment */ ],
  "vats":     [ { "type": "vat20", "sum": 416.67 } ],
  "total": 2500.00,
  "cashier": "Ivanov I.I.",
  "cashier_inn": "123456789047",
  "additional_check_props": "Order #10421",
  "additional_user_props": { "name": "Manager", "value": "Petrov" },
  "internet": true,
  "device_number": "web-1"
}

Required minimum: client (for sales operations), company, items, payments, total.

Monetary Rules#

Rule Validation
total = sum of items[].sum Tolerance of 0.01 ₽ per item (rounding)
total > 0 Strict
Σ payments[].sum = total Exact (epsilon 0.005 ₽)
All amounts are in rubles Fractional part represents kopecks: 1250.50

Amounts are passed as numbers, not strings. An item is calculated as price × quantity, but the item total is taken from sum — if you have a discount on an item, put the actual cost into sum.


2. client — Customer#

For online payments, the receipt is always electronic, so a receipt delivery destination is required: at least one of email / phone. If both are provided, the OFD will send the receipt to the email.

Field Tag Description
email 1008 Customer's email
phone 1008 Phone number in +7XXXXXXXXXX format
name 1227 Customer company name / full name (for B2B and excisable goods)
inn 1228 Customer INN (TIN)
birthdate 1243 Date of birth, dd.mm.yyyy
citizenship 1244 Country code according to OKSM, e.g. 643
document_code 1245 Identity document type code
document_data 1246 Document details
address 1254 Customer address

Extended attributes (nameaddress) are required only in specific industry cases — a regular online store only needs email or phone. Support for them depends on the cash register model: if the fiscal printer does not support them, the document will return with a driver error — the message text from the register itself (for example: "customer attributes (tags 1227/1228/1008/1256)… are not supported"), without a separate error code.


3. company — seller#

Field Tag Req. Description
inn 1018 yes TIN (INN) of the company or sole proprietor: 10 or 12 digits
sno 1055 recommended Taxation system, see table below
payment_address 1187 recommended Settlement place — your website address
email 1117 recommended Receipt sender's email address

The TIN must match the TIN registered for your POS fiscal drive. A mismatch is rejected immediately upon registration: HTTP 400, error 32, the message specifies both TINs — of the receipt and the group. The document is not queued.

Taxation systems (sno)#

Value Description
osn General
usn_income Simplified, income
usn_income_outcome Simplified, income minus expense
envd Unified tax on imputed income
esn Unified agricultural tax
patent Patent system

If the field is not passed, the default taxation system configured for your POS group is applied.


4. items — the line items#

{
  "name": "Coffee beans, 1 kg",
  "price": 1250.00,
  "quantity": 2,
  "sum": 2500.00,
  "measure": 11,
  "payment_method": "full_payment",
  "payment_object": 1,
  "vat": { "type": "vat20" },
  "user_data": "SKU A-100"
}
Field Tag Required (v5) Description
name 1030 yes The name, ≤ 128 characters
price 1079 yes The price per unit
quantity 1023 yes The quantity, > 0, fractional values allowed
sum 1043 yes The cost of the item
measure 2108 yes The numeric code of the unit of measure
payment_method 1214 yes The payment method attribute
payment_object 1212 yes The payment subject attribute, a number 1…33
vat.type 1199 yes The VAT rate
vat.sum 1200 no The VAT amount, if you compute it yourself
user_data 1191 no An additional item field
excise 1229 no Excise duty
country_code 1230 no The country of origin code (OKSM)
declaration_number 1231 no The customs declaration number
mark_code 1163 no The marking code, see §7
mark_quantity 1291 no A fractional quantity of a marked good
agent_info / supplier_info 1222/1224 no The agent scheme, see §8
sectoral_item_props 1260 no An industry-specific item field

The payment method attribute (payment_method)#

Value Meaning When it is typical in an online store
full_prepayment 100% prepayment Payment on the website before shipping
prepayment Partial prepayment Part of the order has been paid
advance Advance Payment without specific goods (a gift certificate)
full_payment Full settlement Payment and handover of the goods at the same time
partial_payment Partial settlement and credit Part is paid, the rest is in instalments
credit Handover on credit The goods are shipped without payment
credit_payment Credit repayment A previously granted credit is being repaid

The payment subject attribute (payment_object, a number in v5)#

Code Subject Code Subject
1 Goods 17 Trade levy
2 Excisable goods 18 Resort fee
3 Work 19 Deposit
4 Service 20 Expense
5 Gambling bet 21 Pension contributions of a sole trader
6 Gambling winnings 22 Pension contributions
7 Lottery ticket 23 Medical insurance contributions of a sole trader
8 Lottery winnings 24 Medical insurance contributions
9 Results of intellectual activity 25 Social insurance contributions
10 Payment 26 Casino payment
11 Agent's commission 27 Disbursement of cash
12 Payout 30 Excisable marked goods without a code
13 Another payment subject 31 Excisable marked goods with a code
14 Property right 32 Marked goods without a code
15 Non-operating income 33 Marked goods with a code
16 Other payments and contributions

An ordinary online store product is code 1; a service is 4; a marked good with a scanned code is 33.

In the v4 protocol the same field is passed as a string (commodity, service, job, payment, agent_commission, another and so on) — the historic v4 names are accepted and mapped to the modern table automatically.

The unit of measure (measure, a number in v5)#

Code Unit Code Unit Code Unit
0 Piece, unit 30 cm² 70 Day
10 Gram 31 dm² 71 Hour
11 Kilogram 32 72 Minute
12 Tonne 40 Millilitre 73 Second
20 Centimetre 41 Litre 80 Kilobyte
21 Decimetre 42 81 Megabyte
22 Metre 50 kWh 82 Gigabyte
51 Gcal 83 Terabyte
255 Another unit

In v4 a measurement_unit string is passed instead of the code ("pcs", "kg", "l", "hour"); an unrecognized string is mapped to "another unit".

VAT rates (vat.type)#

Value Rate
none Not subject to VAT
vat0 0%
vat5 5% (simplified taxation)
vat7 7% (simplified taxation)
vat10 10%
vat20 20%
vat22 22%
vat105 5/105 — derived
vat107 7/107 — derived
vat110 10/110 — derived
vat120 20/120 — derived
vat122 22/122 — derived

The derived rates apply to amounts that already include the tax — to advances and prepayments, for example.

The 22% and 22/122 rates require a cash register whose firmware knows the new rate. Some older-generation models physically do not accept it — check with your service centre.


5. payments — payments#

"payments": [ { "type": 1, "sum": 2500.00 } ]
type Payment method When
0 Cash Courier accepted cash
1 Cashless Card payment, SBP, e-wallet
2 Prepayment (advance) Offset of previously received advance
3 Postpayment (credit) Goods provided on credit
4 Consideration Mutual offset, barter

There can be multiple payments, and their sum must match total; the service does not set its own limit on the number of payments — the restriction is determined by the cash register itself and the fiscal document format. For an online store accepting card payments on a website, this is always {"type": 1, "sum": <total>}.


6. vats — aggregate rates#

An optional block: a VAT summary for the whole receipt ([{ "type": "vat20", "sum": 416.67 }]). If it is not passed, the cash register computes the taxes from the items itself.


7. Marking#

The marking code is passed in exactly one format field:

"payment_object": 33,
"mark_code": { "gs1m": "MDEwNDYwNzQyODY3OTA5MDIxOU..." },
"mark_quantity": { "numerator": 1, "denominator": 2 }
Format What it is
unknown An unrecognized code (passed as is)
ean8, ean13, itf14 Product barcodes
gs10, gs1m GS1 DataMatrix (gs1m — in Base64)
short A shortened code
fur A fur product
egais20, egais30 EGAIS (alcohol)

mark_quantity (a fractional sale of a marked good) is allowed only together with a marking code. In the v4 protocol nomenclature_code — a hex string — is used instead of mark_code.

Important. The marking code is passed to your cash register as is: the service does not verify the code in "Chestny ZNAK" and does not implement the permissive mode. If your goods are subject to the permissive mode, the check must be performed before the receipt is sent — on the side of your accounting system or cash register software.


8. The agent scheme#

When you sell a principal's goods (a marketplace, a payment agent, a commission agent), the item is supplemented with two blocks:

"agent_info": { "type": "commission_agent" },
"supplier_info": { "name": "Supplier LLC", "inn": "7736570901", "phones": ["+79001234567"] }
agent_info.type Role
bank_paying_agent Bank paying agent
bank_paying_subagent Bank paying subagent
paying_agent Paying agent
paying_subagent Paying subagent
attorney Attorney
commission_agent Commission agent
another Another kind of agent

supplier_info with a valid TIN is mandatory whenever agent_info is set — otherwise the receipt fails validation. For paying agents, the phone numbers of the payment acceptance operator and the details of the transfer operator are additionally filled in inside agent_info.


9. Other receipt fields#

Field Tag Description
cashier / cashier_inn 1021 / 1203 The cashier and their TIN
additional_check_props 1192 An additional receipt field (the order number, for example)
additional_user_props 1084 An additional user field: {name, value}
device_number 1036 The number of the vending machine / sales channel
internet 1125 The online settlement attribute (substituted automatically for operations via the API)
cashless_payments 1234 Information about cashless payments
operating_check_props 1270 An operational receipt field
sectoral_check_props 1261 An industry-specific receipt field: federal_id, date, number, value

10. The correction receipt#

For *_correction operations the document body is passed in the root correction field, and the grounds — in correction_info:

{
  "timestamp": "04.08.2026 15:00:00",
  "external_id": "corr-10421",
  "correction_info": { "type": "self", "base_date": "03.08.2026", "base_number": "1" },
  "correction": {
    "company": { "sno": "usn_income", "inn": "7736570901", "payment_address": "https://shop.example" },
    "items": [ /* as in an ordinary receipt */ ],
    "payments": [ { "type": 1, "sum": 2500.00 } ],
    "total": 2500.00
  }
}
  • correction_info.type: self — on your own initiative, instruction — by order of the tax authority.
  • base_date is always mandatory, base_number — mandatory with instruction.
  • The client block is not required in a correction.

Which correction receipt the law requires in which case — in the Correction receipt reference and the breakdowns of typical situations next to it.


Next: online store scenarios · errors and diagnostics · API reference.