API FONDYВерсия 1.0

Схема работы онлайн кассы Fondy — АТОЛ

Онлайн кассы. Схема

  1. Мерчант арендует ККТ у АТОЛ
  2. Мерчант подписывает договор с любым из ОФД на выбор
  3. Клиент выбирает товар на сайте магазина и нажимает кнопку “оплатить”
  4. Мерчант передает по платежному АПИ на Fondy информацию о товаре
  5. Fondy отображает клиенту платежную страницу для выбора метода оплаты и ввода платежных реквизитов
  6. В случае успешной оплаты, Fondy передает информацию о товаре на API АТОЛ, который балансирует запросы между несколькими ККТ
  7. ККТ при помощи фискального накопителя регистрирует кассовый чек в ОФД
  8. ОФД в свою очередь передает данные о кассовом чеке в ФНС
  9. ОФД высылает чек в электронном виде клиенту на email или в SMS
  10. Клиент в любой момент имеет возможность проверить факт регистрации своего чека на сайте ОФД

Регистрация покупки в ОФД

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

В запрос на покупку добавляется параметр reservation_data — это JSON, закодированный алгоритмом BASE64 и имеющий следующую структуру:

  • JSON

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

 
{
 "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
   }
 ]
}

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

Название параметра

Тип данных

Описание

Возможные значения

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://api.fondy.eu/api/get_atol_logs методом POST

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

{
 "order_id": "Test_2017_07_11_zVboAdG",
 "merchant_id": "1396424",
 "signature": "d0555af237077c335edc6b1ee440e00574190e9c"
}

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

order_idstring(1024)Идентификатор покупки, ранее осуществленной через протокол онлайн-кассы
merchant_idinteger(12)Уникальный идентификатор мерчанта. Выдается торговцу после регистрации.
signaturestring(40)Подпись заказа. Служит для проверки целостности и подлинности запроса от мерчанта на стороне сервера платежного шлюза. Алгоритм формирования подписи см. Формирование подписи запроса и ответа 

Пример ответа (JSON)

{
  "response": {
    "1002929009": {
      "callback": {
        "method": "POST",
        "postdata": {
          "status": "done",
          "uuid": "d5b82e5f-cf00-4745-b5ea-ef0db1ff8ea5",
          "timestamp": "14.07.2017 16:39:54",
          "error": "None",
          "callback_url": "http://api.fondy.eu/callback/atol/?id=1002929009",
          "payload": {
            "fiscal_receipt_number": "123",
            "fiscal_document_number": "12345",
            "ecr_registration_number": "1234567890123456",
            "shift_number": "456",
            "receipt_datetime": "14.07.2017 16:39:00",
            "fiscal_document_attribute": "1233211234",
            "fns_site": "www.nalog.ru",
            "total": "1",
            "fn_number": "9999011100001110"
          }
        }
      },
      "request": {
        "description": "atol_receipt_sell",
        "postdata": {
          "timestamp": "14.07.2017 16:39:53",
          "receipt": {
            "items": [
              {
                "price": 700,
                "sum": 140,
                "tax": "vat110",
                "name": "Миндаль жар.",
                "quantity": 0.2
              }
            ],
            "total": 1,
            "payments": [
              {
                "sum": 140,
                "type": 1
              }
            ],
            "attributes": {
              "sno": "osn",
              "email": "demo@fondy.eu",
              "phone": ""
            }
          },
          "external_id": "1002929009",
          "service": {
            "inn": "112233445573",
            "callback_url": "http://api.fondy.eu/callback/atol/?id=1002929009",
            "payment_address": "г. Москва, ул. Ленина, д.1 к.2"
          }
        },
        "url": "https://online.atol.ru/possystem/v3/ATOL-ProdTest-1/sell?tokenid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "headers": {
          "Content-Type": "application/json"
        },
        "timeout": 60,
        "method": "POST"
      },
      "response": {
        "status": "wait",
        "timestamp": "14.07.2017 16:39:50",
        "uuid": "d5b82e5f-cf00-4745-b5ea-ef0db1ff8ea5",
        "error": null
      },
      "type": "purchase"
    },
    "1002929010": {
      "callback": {
        "method": "POST",
        "postdata": {
          "status": "done",
          "uuid": "4de00189-2817-4aad-8e26-f81fdada3bcd",
          "timestamp": "14.07.2017 16:40:42",
          "error": "None",
          "callback_url": "http://api.fondy.eu/callback/atol/?id=1002929010",
          "payload": {
            "fiscal_receipt_number": "456",
            "fiscal_document_number": "567890",
            "ecr_registration_number": "1234567890654321",
            "shift_number": "789",
            "receipt_datetime": "14.07.2017 16:40:00",
            "fiscal_document_attribute": "2344322341",
            "fns_site": "www.nalog.ru",
            "total": "1",
            "fn_number": "99990111100000000"
          }
        }
      },
      "request": {
        "description": "atol_receipt_sell_refund",
        "postdata": {
          "timestamp": "14.07.2017 16:40:41",
          "receipt": {
            "items": [
              {
                "price": 700,
                "sum": 140,
                "tax": "vat110",
                "name": "Миндаль жар.",
                "quantity": 0.2
              }
            ],
            "total": 1,
            "payments": [
              {
                "sum": 140,
                "type": 1
              }
            ],
            "attributes": {
              "sno": "osn",
              "email": "demo@fondy.eu",
              "phone": ""
            }
          },
          "external_id": "1002929010",
          "service": {
            "inn": "112233445573",
            "callback_url": "http://api.fondy.eu/callback/atol/?id=1002929010",
            "payment_address": "г. Москва, ул. Ленина, д.1 к.2"
          }
        },
        "url": "https://online.atol.ru/possystem/v3/ATOL-ProdTest-1/sell_refund?tokenid=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy",
        "headers": {
          "Content-Type": "application/json"
        },
        "timeout": 60,
        "method": "POST"
      },
      "response": {
        "status": "wait",
        "timestamp": "14.07.2017 16:40:39",
        "uuid": "4de00189-2817-4aad-8e26-f81fdada3bcd",
        "error": null
      },
      "type": "reverse"
    }
  }
}