З Вересня 2024 року запрацювала програма "Національний кешбек" за якою покупці можуть отримати до 10% від вартості товарів українського виробництва.
Умови участі:
Як доєднатись до програми детальніше читайте за посиланням.
Далі розказуємо про останній пункт, а саме як коректно передавати дані в ДПС для участі в програмі.
Для того щоб дані передавались коректно потрібно оновити Device Manager до версії 5.198 або вище.
Для коректної передачі даних для участі в програмі "Національний Кешбек" потрібно виконати декілька пунктів.
В листопаді було частково доповнено дані для передачі в ДПС для участі в Національному кешбеку тому важливо звернути увагу на повний перелік даних.
До змін потрібно було:
Після останніх змін додатково потрібно:
З новими вимогами можна ознайомитись за посиланням.
Детальніше:
Для того щоб штрихкод передавався в ДПС та відображався в чеках потрібно в json body запиту до товару (fiscal.receipt.rows
) додати:
"code1"
- значення штрихкоду.
Якщо до всіх товарів у вас і раніше передавались штрихкоди при фіскалізації чеків, даний пункт можна пропустити.
Приклад запиту:
{
"ver": 6,
"device": "postgres1",
"type": 1,
"pay": {
"task": 1,
"cancelid": "000007"
},
"fiscal": {
"cashier": "",
"task": 1,
"receipt": {
"sum": 1,
"pays": [
{
"type": 0,
"sum": 1
}
],
"rows": [
{
"code1": "4044572307200",
"name": "Товар 1",
"cnt": 1,
"price": 1,
"cost": 1,
"taxgrp": 7,
"disc": 0
}
]
}
}
}
Приклад чеку:
Згідно вимог участі в "Національному кешбеку" потрібно обов'язково передавати 4 пункти даних які були отримані з терміналу, а саме
Проте вимогою податкової при проведенні безготівкових розрахунків за допомогою терміналів є вказувати всі дані по платіжному засобу згідно наказу 13
Які поля потрібно заповнити для коректної відправки даних в ДПС та відображення даних на чеку?
Якщо ви використовуєте термінал що підключено в Device Manager та робота з терміналом здійснюється через Device Manager в пакетному режимі цей пункт можна пропустити. Всі дані автоматично будуть додані в чек та передані в ДПС.
Якщо термінал підключено до вашої облікової системи тоді потрібно передати наступні дані до безготівкової оплати в масиві об'єктів fiscal.receipt.pays
.
Тег | Тип json даних | Зміст |
---|---|---|
bank_name | string | Назва банку еквайера. Необов'язкове поле. Вказується виключно як інформаційне поле для відображення в формі чеку назви банку еквайра. Дані вказані в це поле не відправляються в ДПС. |
bank_id | string | Ідентифікатор екваєра торгівця. Фактично є кодом мерчанту торгівця в системі банку. |
term_id | string | Ідентифіктор платіжного пристрою. Вказується внутрішній ідентифікатор терміналу який використовується. |
paysys | string | Назва платіжної системи до якої належить платіжний засіб покупця. |
rrn | string | Ідентифікатор трансакції, що надається еквайром та ідентифікує операцію в платіжній системі. |
cardmask | string | Замаскований згідно правил платіжної системи номер платіжного засобу(картки). |
auth_code | string | Код авторизації, що ідентифікує операцію в платіжній системі. |
show_additional_info | boolean | Показувати додаткову інформацію на друкованій формі чеку, а саме рядок "Комісія", якщо вона рівна 0 та поля для підпису касира і держателя ЕПЗ. Є необов'язковим. |
oper_type | string | Вид операції. Вказання найменування виду операції. Є необов'язковим. Якщо не заповнено - на чеку та в ДПС буде відображено "Оплата"(для чеків на продаж), та "Повернення"(для чеків на повернення) |
Приклад запиту
{
"ver": 6,
"device": "postgres1",
"type": 1,
"fiscal": {
"cashier": "",
"task": 1,
"receipt": {
"sum": 1,
"pays": [
{
"type": 2,
"sum": 1,
"oper_type": "Оплата",
"show_additional_info": false,
"paysys": "MASTER",
"rrn": "087619612907",
"cardmask": "XXXXXXXXXXXX5840",
"term_id": "S1K90HCY",
"bank_id": "S1K90HCY",
"bank_name": "ПриватБанк",
"auth_code": "075204"
}
],
"rows": [
{
"code1": "4044572307200",
"name": "Товар 1",
"cnt": 1,
"price": 1,
"cost": 1,
"taxgrp": 7,
"disc": 0
}
]
}
}
}
Приклад чеку
В деяких банків, як у прикладі у Приватбанку ідентифікатор мерчанту та терміналу однакові, проте вони можуть бути різні залежно від банку та протоколу роботи з терміналами.
Згідно вимог до участі в "Національному кешбеку" у чеку повернення обовязково вказувати номер фіскального чека по якому проводиться повернення. Та якщо повернення проводиться іншою фіскальною касою, потрібно додатково вказувати фіскальний номер каси, за яким проводилась операція продажу.
Для того щоб вказати в чек повернення фіскальний номер чеку на продаж або вказати фіскальний номер ПРРО потрібно в JSON body запиту для чеків повернення ("task": 2
) в fiscal.receipt
передати наступні значення:
"purchase_receipt_fisn"
- фіскальний номер чеку на продаж на основі якого здійснюється повернення.
"purchase_rro_fisn"
- фіскальний номер РРО або ПРРО з якого було здійснено оригінальний продаж товару по чеку вказаного в purchase_receipt_fisn
.
На чеку повернення після хедера чеку буде відображено фіскальний номер чеку продажу, якщо він наявний та номер ПРРО з якого проведено чек продажу якщо він наявний та не дорівнює фіскальному номеру каси по якій здійснбється повернення.
Якщо дані коректно передані ДПС у відповіді на фіскалізацію чеку повернення в об'єкті info
буде поверненно значення які було відправлено в ДПС.
Приклад запиту:
{
"ver": 6,
"device": "postgres5",
"type": 1,
"fiscal": {
"cashier": "",
"task": 2,
"receipt": {
"sum": 1,
"purchase_receipt_fisn": "TEST_gBrOUhU9r4M_Jg",
"purchase_rro_fisn": "999996655555555",
"pays": [
{
"type": 2,
"sum": 1,
"paysys": "MASTER",
"rrn": "087619612907",
"cardmask": "XXXXXXXXXXXX5840",
"term_id": "S1K90HCY",
"bank_id": "S1K90HCY",
"bank_name": "Приватбанк",
"auth_code": "CANCEL",
"oper_type": "Повернення",
"show_additional_info": false
}
],
"rows": [
{
"code1": "4044572307200",
"name": "Товар 1",
"cnt": 1,
"price": 1,
"cost": 1,
"taxgrp": 7,
"disc": 0
}
]
}
}
}
Приклад чеку
Згідно нових вимог для коректної ідентифікації чеку на продаж для коректного проведення повернення потрібно додатково передати час формування чеку на продаж.
Для цього потрібно в JSON body запиту для чеків повернення ("task": 2
) в fiscal.receipt
передати значення дати в параметр:
"purchase_receipt_dt"
- дата фіскалізації чеку на продаж по якому здійснюється повернення в форматі YYYYMMDD.
Приклад запиту:
{
"ver": 6,
"device": "postgres5",
"type": 1,
"fiscal": {
"cashier": "",
"task": 2,
"receipt": {
"sum": 1,
"purchase_receipt_fisn": "TEST_gBrOUhU9r4M_Jg",
"purchase_receipt_dt": "20241119",
"purchase_rro_fisn": "999996655555555",
"pays": [
{
"type": 2,
"sum": 1,
"paysys": "MASTER",
"rrn": "087619612907",
"cardmask": "XXXXXXXXXXXX5840",
"term_id": "S1K90HCY",
"bank_id": "S1K90HCY",
"bank_name": "Приватбанк",
"auth_code": "CANCEL",
"oper_type": "Повернення",
"show_additional_info": false
}
],
"rows": [
{
"code1": "4044572307200",
"name": "Товар 1",
"cnt": 1,
"price": 1,
"cost": 1,
"taxgrp": 7,
"disc": 0
}
]
}
}
}
Приклад чеку
Згідно інформації від ДПС максимально допустимий час різниці дати та часу авторизації оплати через термінал і дати та часу самого чеку - 5хв.
Якщо різниця більше як 5хв - це може бути причиною що кешбек не буде нараховано.
Так як час для фіскалізації чеку використовується як системний час на пристрої на якому встановлено Device Manager він можна більше ніж на 5хв. відрізнятись від часу на стороні серверу процесингу банку.
Для цього потрібно додатково передавати час авторизації оплати на терміналі для чеків на продаж.
Якщо ви використовуєте термінал що підключено в Device Manager та робота з терміналом здійснюється через Device Manager в пакетному режимі цей пункт можна пропустити. Дата та час авторизації оплати будуть автоматично отримані з терміналу, форматовані та передані в ДПС.
Якщо термінал підключено до вашої облікової системи тоді потрібно передати до безготівкової оплати в масиві об'єктів fiscal.receipt.pays
новий параметр purchase_dt
.
"purchase_dt"
- дата та час авторизації оплати на терміналі в форматі YYYYMMDDHHMMSS.
У візуалізації чеку даний час не відображається, лише передається в ДПС.
{
"ver": 6,
"device": "postgres1",
"type": 1,
"fiscal": {
"cashier": "",
"task": 1,
"receipt": {
"sum": 1,
"pays": [
{
"type": 2,
"sum": 1,
"oper_type": "Оплата",
"show_additional_info": false,
"paysys": "MASTER",
"rrn": "087619612907",
"purchase_dt": "20241119032646",
"cardmask": "XXXXXXXXXXXX5840",
"term_id": "S1K90HCY",
"bank_id": "S1K90HCY",
"bank_name": "ПриватБанк",
"auth_code": "075204"
}
],
"rows": [
{
"code1": "4044572307200",
"name": "Товар 1",
"cnt": 1,
"price": 1,
"cost": 1,
"taxgrp": 7,
"disc": 0
}
]
}
}
}