Техническая документация Universal Payment System. Версия 1.0 · 22 апреля 2026
ac8 — платформа бонусной лояльности для интернет-магазинов, построенных на Tilda. Встраивается в checkout через механизм Универсальная платёжная система и предоставляет покупателю возможность применить начисленные бонусы к текущему заказу до перехода к оплате денежными средствами.
ac8 не является расчётной небанковской организацией и не осуществляет приём денежных средств от покупателей. В случае частичной оплаты бонусами остаток суммы заказа взимается через действующую платёжную систему магазина (YooKassa, CloudPayments, Робокасса и т.д.), подключённую к Tilda параллельно.
Формирование фискальных чеков в соответствии с 54-ФЗ и ФФД 1.05 осуществляется основной платёжной системой магазина, принимающей денежные средства. ac8 не является оператором фискальных данных, чеки не выдаёт, поля ФФД 1.05 в шаблоне не использует.
POST на API URL шаблона ac8 с параметрами заказа и подписью.https://api.ac8.ru/v1/tilda/payPOSTapplication/x-www-form-urlencodedhttps://api.ac8.ru/v1/tilda/pay?sandbox=1Tilda передаёт перечисленные поля в теле POST-запроса. Колонка «Параметр Tilda» соответствует полю, настраиваемому в разделе Список соответствия полей шаблона.
| Параметр ac8 | Параметр Tilda | Тип | Обяз. | Описание |
|---|---|---|---|---|
login | login | string | да | Идентификатор магазина в ac8, выдаётся при подключении |
orderid | orderid | string | да | Номер заказа в формате <projectid>_<orderid>, например 8658431_00042. Формируется Tilda автоматически. |
amount | amount | decimal | да | Сумма заказа в основной валюте (рубли, а не копейки), две цифры после точки. Пример: 1500.00. |
currency | currency | string | да | Буквенный код ISO-4217, например RUB, USD. |
email | string | да | Email покупателя | |
phone | phone | string | нет | Телефон покупателя в формате E.164 (+79001234567) |
name | name | string | нет | ФИО покупателя |
products | products | json | нет | JSON-массив позиций корзины. Каждая позиция содержит name, quantity, price, sum. Доставка может приходить отдельной позицией. Цены могут уже включать применённые магазином скидки и промокоды Tilda. |
successurl | successurl | url | да | URL возврата при успехе |
failurl | failurl | url | да | URL возврата при отмене |
signature | signature | string | да | Подпись запроса (см. раздел 5) |
products[
{"name": "Кружка керамическая", "quantity": 2, "price": 450.00, "sum": 900.00},
{"name": "Книга рецептов", "quantity": 1, "price": 600.00, "sum": 600.00},
{"name": "Доставка СДЭК", "quantity": 1, "price": 350.00, "sum": 350.00}
]
POST /v1/tilda/pay HTTP/1.1
Host: api.ac8.ru
Content-Type: application/x-www-form-urlencoded
login=shop_demo&orderid=8658431_00042&amount=1850.00¤cy=RUB
&email=buyer%40example.com&phone=%2B79001234567&name=Иван%20Иванов
&products=%5B%7B%22name%22%3A%22Кружка%22%2C%22quantity%22%3A2%2C%22price%22%3A450.00%2C%22sum%22%3A900.00%7D%5D
&successurl=https%3A%2F%2Fshop.example.com%2Fsuccess
&failurl=https%3A%2F%2Fshop.example.com%2Ffail
&signature=9f5e3c41a2b6d9...
sha256 (hex, нижний регистр):: (два двоеточия)signature, productssignature = sha256(
login + "::" +
orderid + "::" +
amount + "::" +
currency + "::" +
email + "::" +
phone + "::" +
secret
)
secret — ключ, выдаваемый владельцу магазина в личном кабинете ac8 и вводимый в настройках шаблона Tilda. Ключ никогда не передаётся по сети.
// Входные данные
login = "shop_demo"
orderid = "00042"
amount = "1500.00"
currency = "RUB"
email = "buyer@example.com"
phone = "+79001234567"
secret = "sk_live_Rz9T4aQxW2mP"
// Строка для хеширования
"shop_demo::00042::1500.00::RUB::buyer@example.com::+79001234567::sk_live_Rz9T4aQxW2mP"
// Результат
signature = "9f5e3c41a2b6d90e8a47b1ce5f2d3c8b4e71a9d6f8c2b3e5a7d9f1c4b6e8a0d2"
После завершения операции на стороне ac8 отправляется POST-запрос на URL уведомлений, предоставленный Tilda через шаблон.
| Поле | Тип | Описание |
|---|---|---|
orderid | string | Номер заказа, совпадает с исходным запросом |
amount | decimal | Фактически оплаченная сумма (после применения бонусов) |
status | string | PAID / CANCELLED / FAILED |
signature | string | Подпись callback (формула аналогична запросу, см. ниже) |
signature = sha256(orderid + "::" + amount + "::" + status + "::" + secret)
Заказ считается успешно оплаченным при status = PAID. Tilda может принять это значение в настройке «Значение признака успеха».
ac8 ожидает в теле ответа текст OK (HTTP 200). В случае любого иного ответа выполняется повторная отправка callback с экспоненциальной задержкой: 30с, 2м, 10м, 30м, 1ч (максимум 5 попыток).
После завершения взаимодействия ac8 выполняет HTTP-редирект:
status = PAID — на значение поля successurl из исходного запросаfailurlДля отладки интеграции доступен sandbox-режим: добавление параметра ?sandbox=1 к endpoint возвращает фиктивный баланс 10 000 бонусов и подтверждает любое списание без реального движения средств.
tilda-testtest_secret_k8mWqR2pLHTTPS (TLS 1.2+).HTTP 401.secret может быть перегенерирован владельцем магазина в личном кабинете ac8 в любой момент.