Refund
Ilgari sotilgan chekni qaytaradi. Buning uchun o'sha sotuvdan olingan saleId kerak.
So'rov
{
"id": "2",
"method": "send",
"data": {
"command": "Refund",
"payload": {
"saleId": 142,
"amount": 12500,
"shouldPrintReceipt": true,
"products": [
{
"id": "p_1001",
"name": "Espresso",
"barcode": null,
"units": "шт",
"price": 12500,
"vat": 0.12,
"amount": 1,
"isDecimalUnits": false,
"labels": [],
"psid": "10112001001000000",
"packageCode": 1512472,
"unitCode": null,
"discountAmount": 0,
"commissionTIN": null,
"commissionPINFL": null
}
],
"payments": [{ "paymentType": "Cash", "amount": 12500 }]
}
}
}Javob
{ "id": "2", "success": true, "data": { } }payload
| Maydon | Turi | Tavsif |
|---|---|---|
saleId | integer | Sale javobidan |
amount | integer | Qaytarilayotgan summa, tiyinda |
products | array | Qaytarilayotgan pozitsiyalar — Sale dagi bilan bir xil format |
payments | array | Pul qanday qaytariladi — Sale dagi bilan bir xil format |
shouldPrintReceipt | boolean | true — qog'ozga bosish |
Bu yerda saleType ham, discountAmount ham, totalAmount ham yo'q.
Sotuvni saqlang, keyin qayta yuboring
Qaytarishning eng oddiy yo'li: Sale yuborayotganda, yuborgan payload ingizni saleId bilan birga saqlang. Qaytarishda o'sha products va payments ni qaytadan yuboring.
// sotuvda
const { saleId } = await send('Sale', payload)
await db.save(orderId, { saleId, payload })
// vozvratda
const { saleId, payload } = await db.load(orderId)
await send('Refund', {
saleId,
amount: payload.totalAmount,
shouldPrintReceipt: true,
products: payload.products,
payments: payload.payments
})Agar buning o'rniga pozitsiyalarni buyurtmadan qaytadan qursangiz, sotuvdan beri narxlar yoki soliq sozlamalari o'zgargan bo'lishi mumkin va summalar dastlabki chekka mos kelmaydi — apparat uni rad etadi.
Qisman qaytarish
Faqat qaytarayotgan pozitsiyalarni yuboring va ularning amount ini (miqdorini) kamaytiring. price ni o'zgartirmang:
{
"saleId": 142,
"amount": 12500,
"shouldPrintReceipt": true,
"products": [ /* bitta pozitsiya, amount: 1 */ ],
"payments": [{ "paymentType": "Cash", "amount": 12500 }]
}saleId yo'q — vozvrat ham yo'q
Agar saleId ni saqlamagan bo'lsangiz, chekni API orqali qaytarib bo'lmaydi. Uni apparatda qo'lda qaytarish kerak bo'ladi.