Receipt.Get
Reads a receipt by ID or lists receipts of this register by period, including receipts created outside the integration.
Pass the integration Bearer token in the HTTP header. See API authentication.
Input parameters
| Name | Data type | Required | Description |
|---|---|---|---|
| id | string | Instead of period | Receipt ID, up to 100 characters; accepts receipt_id from Cart.Get |
| date_from | string | Without id | Inclusive start, YYYY-MM-DD HH:mm:ss, register local time |
| date_to | string | Without id | Exclusive end in the same format; greater than date_from |
| page | int32 | Optional | Page number from 1, default 1 |
| page_size | int32 | Optional | 1–30, default 30 |
Supply either a nonempty id or both period fields, never both modes. By ID, page must equal 1. The result keeps the same page, page_size, total, items structure, with total 1 and one receipt. An unknown ID returns 701001; invalid IDs or mixed filters return 701003.
Newest first for period queries; stable order by ID for equal timestamps. Out-of-range pages return items: []. New receipts between calls can move page boundaries; use a completed period for sequential export.
Request example
Authorization: Bearer <integration-token>
Content-Type: application/json;charset=utf-8
{
"jsonrpc": "2.0",
"method": "Receipt.Get",
"params": {
"id": "0123456789abcdef0123456789abcdef"
},
"id": 3
}
{
"jsonrpc": "2.0",
"method": "Receipt.Get",
"params": {
"date_from": "2026-11-01 00:00:00",
"date_to": "2026-11-02 00:00:00",
"page": 1,
"page_size": 30
},
"id": 3
}
Output parameters
| Name | Data type | Description |
|---|---|---|
| page | int32 | Current page, starting at 1 |
| page_size | int32 | Page size, from 1 to 30 |
| total | int64 | Count of all matching receipts |
| items | array | Receipts |
| items[].id | string | Receipt ID |
| items[].code | string | External receipt code; empty if absent |
| items[].date_time | string | Receipt time, register local time, YYYY-MM-DD HH:mm:ss |
| items[].type | int32 | 0 — ordinary; 1 — advance; 2 — credit |
| items[].is_return | boolean | Return flag |
| items[].receipt_no | string | Mask *** instead of the fiscal receipt number |
| items[].terminal_id | string | Fiscal module ID |
| items[].fiscal_sign | string | Mask *** instead of the fiscal sign |
| items[].qr_url | string | Mask *** instead of the QR URL |
| items[].amount | int64 | Net amount after discount, in tiyin |
| items[].payments | array | Receipt payments; empty array if payment data is unavailable |
| items[].payments[].type | int32 | Payment type: 0 — other/unspecified; 1 — cash; 2 — bank card or payment system; 3 — bonus |
| items[].payments[].name | string | Saved payment method name; empty if absent |
| items[].payments[].amount | int64 | Payment amount in tiyin |
| items[].payments[].card_type | int32 or null | Card type: 1 — corporate; 2 — personal; 3 — social; null if unspecified |
| items[].payments[].rrn | string | Transaction RRN; empty if absent |
| items[].positions | array | Saved receipt positions in their original order; empty array if unavailable |
| items[].positions[].name | string | Name at the time of sale |
| items[].positions[].barcode | string | Barcode; empty if absent |
| items[].positions[].icps | string | ICPS code |
| items[].positions[].quantity | int64 | Quantity in thousandths; 1000 means one unit |
| items[].positions[].price | int64 | Unit price in tiyin, rounded to a whole tiyin |
| items[].positions[].discount | int64 | Discount for the whole position, in tiyin |
| items[].positions[].other | int64 | Other deduction from the position amount, in tiyin |
| items[].positions[].amount | int64 | Net position amount after discount and other deduction, in tiyin |
| items[].positions[].vat_value | int64 | VAT in hundredths of a percent; -1 means no VAT |
| items[].positions[].package_code | string or null | Package code; null if absent |
| items[].positions[].label | string | Marking code; empty if absent |
Result fields: page, page_size, total (all matching receipts), items. Each receipt contains id, code (external code or empty), date_time (local YYYY-MM-DD HH:mm:ss), type (0 ordinary, 1 advance, 2 credit), is_return, receipt_no, terminal_id, fiscal_sign, qr_url, amount (net tiyin; return is indicated separately).
Both ID and period queries always return *** in receipt_no, fiscal_sign and qr_url. Complete details are printed on the paper receipt. Receipt IDs and the remaining fields are not masked.
Both ID and period queries include positions. These are the values saved when the receipt was completed, independent of current product data. The position amount is its gross total for the entire quantity minus discount and other; price is rounded separately.
The payments array contains the saved receipt payments, including split payments across multiple methods. It is returned for both ID and period queries. Bank card numbers are not included.
Response example
{
"jsonrpc": "2.0",
"result": {
"page": 1,
"page_size": 30,
"total": 1,
"items": [
{
"id": "0123456789abcdef0123456789abcdef",
"code": "SALE-001",
"date_time": "2026-11-01 12:00:00",
"type": 0,
"is_return": false,
"receipt_no": "***",
"terminal_id": "TEST000000001",
"fiscal_sign": "***",
"qr_url": "***",
"amount": 10000,
"positions": [
{
"name": "Test product",
"barcode": "4780000000000",
"icps": "00000000000000000",
"quantity": 1000,
"price": 10000,
"discount": 0,
"other": 0,
"amount": 10000,
"vat_value": 0,
"package_code": null,
"label": ""
}
],
"payments": [
{
"type": 1,
"name": "Cash",
"amount": 4000,
"card_type": null,
"rrn": ""
},
{
"type": 2,
"name": "Bank card",
"amount": 6000,
"card_type": 2,
"rrn": "123456789012"
}
]
}
]
},
"ok": true,
"id": 3
}
Repeating does not modify receipts. Errors: common errors, 701003 for period/page/page_size.