Параметри, які необхідно передавати додатково для інтеграції з протоколом програмного РРО
У запит на купівлю додається параметр reservation_data – це JSON, закодований алгоритмом BASE64, який має таку структуру:
{ "products": [ { "id": 1, "name": "Мигдаль жар.", "price": 700.00, "total_amount": 140.00, "quantity": 0.2 }, { "id": 2, "name": "Кешью очищ.", "price": 850.00, "total_amount": 127.5, "quantity": 0.15 } ] }
Примітка
Якщо параметр reservation_data не передається, то чек буде сформовано з 1 одиниці товару з вартістю, зазначеною в параметрі amount та описом, зазначеним у order_desc
Назва параметра | Тип даних | Опис | Можливі значення |
id | integer(12) | порядковий номер товару в кошику покупця | |
name | string(1000) | закодований опис продукту UTF-8 | |
price | decimal(19,2) | сума одиниці товару з крапкою – роздільником копійок | 123.55 400.00 15 |
total_amount | decimal(19,2) | сума товару з урахуванням кількості або ваги з крапкою – роздільником копійок | 123.55 400.00 15 |
quantity | decimal(19,2) | кількість товарів у кошику або їхня вага | 1 0.78 |
У запит на разщеплення на https://pay.fondy.eu/api/settlement додається параметр reservation_data – це JSON, закодований алгоритмом BASE64, який має таку структуру:
{ "products": [ { "id": 1, "name": "Мигдаль жар.", "price": 700.00, "total_amount": 140.00, "quantity": 0.2 }, { "id": 2, "name": "Кешью очищ.", "price": 850.00, "total_amount": 127.5, "quantity": 0.15 } ] }
Примітка
Якщо параметр reservation_data не передається, то фіскалізація відбуватися не буде.
{ "order": { "server_callback_url": "https://site.com/callback", "currency": "UAH", "amount": 10000, "order_type": "settlement", "order_id": "test642819XXXXXX2111_split1", "operation_id": "test642819XXXXXX2111", "order_desc": "test order", "merchant_id": 1396424, "receiver": [ { "requisites": { "amount": 600000, "settlement_description": "Призначення платежу", "merchant_id": 500001, "reservation_data": "ewogInByb2R1Y3RzIjogWwogICB7CiAgICAgImlkIjogMSwKICAgICAibmFtZSI6ICLQodCy0LjQvdC90ZYg0LrRgNC40LvQuNGI0LrQuCIsCiAgICAgInByaWNlIjogMTAwMC4wMCwKICAgICAidG90YWxfYW1vdW50IjogNjAwMC4wMCwKICAgICAicXVhbnRpdHkiOiA2CiAgIH0KIF0KfQ==" }, "type": "merchant" }, { "requisites": { "amount": 400000, "settlement_description": "Призначення платежу", "merchant_id": 600001, "reservation_data": "ewogInByb2R1Y3RzIjogWwogICB7CiAgICAgImlkIjogMSwKICAgICAibmFtZSI6ICLQodCy0LjQvdC90ZYg0LrRgNC40LvQuNGI0LrQuCIsCiAgICAgInByaWNlIjogMTAwMC4wMCwKICAgICAidG90YWxfYW1vdW50IjogNDAwMC4wMCwKICAgICAicXVhbnRpdHkiOiA0CiAgIH0KIF0KfQo=" }, "type": "merchant" } ] } }
В результаті розщеплення, на кожного мерчанта-отримувача, у якого налаштовано онлайн-касу в Мерчант-порталі, буде сформовано окремий фіскальний чек зі списком його товарів. При цьому, платник отримає окремий лист по кожному фіскальному чеку, якщо його email був вказаний при покупці.
Запит необхідно надсилати на https://pay.fondy.eu/api/get_kkt_logs методом POST
{ "request": { "order_id": "13731336126512", "merchant_id": 1396424, "signature": "2e4a8881c428037fdf266b18a29a282aba79ed58" } }
order_id | string(1024) | Ідентифікатор покупки, раніше здійсненої через протокол програмного РРО |
merchant_id | integer(12) | Унікальний ідентифікатор мерчанта. Видається торговцю після реєстрації. |
signature | string(40) | Підпис замовлення. Служить для перевірки цілісності та автентичності запиту від мерчанта на стороні сервера платіжного шлюзу. Алгоритм формування підпису див. Формування підпису запиту і відповіді |
Формат відповіді.
{ "response": { "1499968937": { "request": { "CHECKPAY": [ { "SUM": "80.00", "PAYSYS": [ { "NAME": "ПЛАТІЖНА СИСТЕМА MasterCard", "AUTHCD": "46049Z", "EPZDETAILS": "444444XXXXXX1111", "ACQUIRETRANSID": "024046466130" } ], "PAYFORMCD": 1, "PAYFORMNM": "Електронним платіжним засобом" } ], "CHECKBODY": [ { "CODE": 476657827, "COST": "80.00", "NAME": "Заказ №", "PRICE": "80.00", "VALCD": "980", "VALNM": "грн.", "AMOUNT": 1, "UNITNM": "од.", "VALSYMCD": "UAH", "DESCRIPTION": "desc" } ], "CHECKHEAD": { "TIN": "3263608852", "UID": "0E9B042D-888D-452C-B36B-12F283B76B02", "VER": 1, "ORGNM": "ТЕСТОВИЙ ПЛАТНИК", "CASHIER": "Тестовий платник", "DOCTYPE": 0, "LOGOURL": "https://logo.io/uploads/2021/logo.png", "OFFLINE": "false", "POINTNM": "ФОП Тестовий", "ORDERNUM": 4765, "ORDERDATE": "28122021", "ORDERTIME": "103735", "POINTADDR": "УКРАЇНА, ТЕРНОПIЛЬСЬКА ОБЛ., М. ТЕРНОПІЛЬ, м.Тернопіль, вул.Корольова,7/185", "DOCSUBTYPE": 0, "CASHDESKNUM": 1, "CASHREGISTERNUM": 4000000000 }, "CHECKTOTAL": { "SUM": 80, "RNDSUM": "0.00", "NORNDSUM": 80, "NOTAXSUM": 80 } }, "response": { "UID": "0E9B042D-888D-452C-B36B-12F283B76B02", "VER": "1", "ORDERNUM": "4765", "ERRORCODE": "0", "ORDERDATE": "28122021", "ORDERTIME": "103717", "ORDERTAXNUM": "123456789" }, "type": "purchase" }, "response_status": "success" } }
{ "request": { "transaction_id": "1499968937", "merchant_id": 1396424, "receipt_type": "receipt", "signature": "2e4a8881c428037fdf266b18a29a282aba79ed58" } }
transaction_id | string(1024) | Ідентифікатор фіскалізованої транзакції. Береться з API Отримання списку транзакцій за платежем з ознакою:"tran_type": "purchase" або "reverse" або "capture" |
merchant_id | integer(12) | Унікальний ідентифікатор мерчанта. Видається торговцю після реєстрації. |
receipt_type | string(1024) | Тип чека:"receipt" або "zreport" |
signature | string(40) | Підпис замовлення. Служить для перевірки цілісності та автентичності запиту від мерчанта на стороні сервера платіжного шлюзу. Алгоритм формування підпису див. Формування підпису запиту і відповіді |
Приклад відповіді:
{ "check_url": "https://merchportal-ereceipt.s3.amazonaws.com/ereceipt/check_1499968937.pdf?AWSAccessKeyId=YYYYYYYYYYYYYYYYYYYYYY&Signature=XXXXXXXXXXXXXXXXXXXXXXXX%3D&Expires=1956257837" }