API FONDYВерсия 1.0

Схема работы программного РРО

  1. Торговец регистрирует ПРРО в ГНС через подачу формы J/F1316603.
  2. Торговец регистрирует всех кассиров путем подачи формы J/F1391802.
  3. Торговец регистрируется в личном кабинете Fondy. Мы его называем мерчант-портал. Здесь же нужно загрузить ключи ПРРО. О том, как их получить, описано ниже.
  4. Из мерчант-портала ключи загружаются в модуль ПРРО, в котором автоматически активируется онлайн-касса Fondy.
  5. Модуль программного РРО, в свою очередь, получает от ГНС регистрационные данные кассира, ПРРО и объекта налогообложения и хранит их для дальнейшей фискализации покупок.
  6. В процессе покупки покупатель переходит на страницу с товаром или услугой интернет-торговца.
  7. Сайт интернет-магазина формирует классическую корзину для покупателя (если корзины нет, то достаточно описания товара или услуги при условии, что это одна номенклатура).
  8. Информация о корзине/товаре/услуге попадает на платежный шлюз Fondy. Это может быть сделано через:
    – один из более чем 60 готовых платежных модулей для CMS и конструкторов сайтов (таких как WebliumWixWooCommerceMagento и т.д.);
    – выставление онлайн-инвойса посредством мерчант-портала Fondy;
    – платежную кнопку или ссылку, которые можно создать в мерчант-портале;
    – прямую интеграцию с API Fondy – для простоты можно воспользоваться готовыми SDK для вашего языка разработки или мобильного приложения.
  9. Fondy формирует ссылку на платежную страницу, на которую интернет-магазин перенаправляет покупателя для ввода платежных данных банковской карты.
  10. Платежный шлюз Fondy списывает с карты покупателя средства.
  11. Модуль ПРРО фискализирует на сервере ГНС чек покупки, передавая содержимое корзины с описанием товаров и услуг.
  12. ПРРО отправляет чек покупателю на email. Пример чека можно посмотреть здесь.
  13. В конце дня ПРРО автоматически формирует Z-отчет и закрывает смену.
  14. В дальнейшем торговец может получить все отчеты, которые подтверждают фискализацию и необходимы для бухгалтерии, через мерчант-портал или API.

Фискализация покупки

Параметры, которые необходимо передавать дополнительно для интеграции с протоколом программного РРО

В запрос на покупку добавляется параметр 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/get_kkt_logs методом POST

Пример запроса (JSON)

{
  "request": {
    "order_id": "13731336126512",
    "merchant_id": "1396424",
    "signature": "2e4a8881c428037fdf266b18a29a282aba79ed58"
  }
}

Параметры запроса

order_idstring(1024)Идентификатор покупки, ранее осуществленной через протокол программного РРО
merchant_idinteger(12)Уникальный идентификатор мерчанта. Выдается торговцу после регистрации.
signaturestring(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://fondy.io/uploads/2021/fondy.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"
  }
}
 

Получение графической версии фискального  чека покупки

Запрос необходимо отправлять на https://pay.fondy.eu/kkt/ereceipt/check методом POST

Пример запроса (JSON)

{
  "request": {
    "transaction_id": "1499968937",
    "merchant_id": "1396424",
    "receipt_type": "receipt",
    "signature": "2e4a8881c428037fdf266b18a29a282aba79ed58"
  }
}

Параметры запроса

transaction_idstring(1024)Идентификатор фискализируемой транзакции. Берется из API Получение списка транзакций по платежу с признаком:

"tran_type": "purchase"
или "reverse"
merchant_idinteger(12)Уникальный идентификатор мерчанта. Выдается торговцу после регистрации.
receipt_typestring(1024)Тип чека
signaturestring(40)Подпись заказа. Служит для проверки целостности и подлинности запроса от мерчанта на стороне сервера платежного шлюза. Алгоритм формирования подписи см. Формирование подписи запроса и ответа

Пример ответа:

{
  "check_url": "https://merchportalfondy-ereceipt.s3.amazonaws.com/ereceipt/check_1499968937.pdf?AWSAccessKeyId=YYYYYYYYYYYYYYYYYYYYYY&Signature=XXXXXXXXXXXXXXXXXXXXXXXX%3D&Expires=1956257837"
}

Пример графического чека: ссылка

 

Хочу принимать платежи со всего мира!