API для интеграции с Tilda

Техническая документация Universal Payment System. Версия 1.0 · 22 апреля 2026

1. Общее описание

ac8 — платформа бонусной лояльности для интернет-магазинов, построенных на Tilda. Встраивается в checkout через механизм Универсальная платёжная система и предоставляет покупателю возможность применить начисленные бонусы к текущему заказу до перехода к оплате денежными средствами.

ac8 не является расчётной небанковской организацией и не осуществляет приём денежных средств от покупателей. В случае частичной оплаты бонусами остаток суммы заказа взимается через действующую платёжную систему магазина (YooKassa, CloudPayments, Робокасса и т.д.), подключённую к Tilda параллельно.

Роль ac8 в цепочке: применитель скидки и эмитент бонусов. Платёжным агрегатором не является.

Формирование фискальных чеков в соответствии с 54-ФЗ и ФФД 1.05 осуществляется основной платёжной системой магазина, принимающей денежные средства. ac8 не является оператором фискальных данных, чеки не выдаёт, поля ФФД 1.05 в шаблоне не использует.

2. Сценарий оплаты

  1. Покупатель оформляет заказ в корзине Tilda и нажимает «Оплатить».
  2. Tilda делает POST на API URL шаблона ac8 с параметрами заказа и подписью.
  3. ac8 валидирует подпись, идентифицирует покупателя (Telegram-логин или magic-link на email), показывает доступный баланс бонусов и предлагает списать доступную сумму.
  4. Покупатель подтверждает списание.
  5. Если итоговая сумма заказа становится равной нулю — ac8 отправляет callback в Tilda с признаком успешной оплаты.
  6. Если остаётся непокрытая сумма — ac8 возвращает покупателя на страницу Tilda с модифицированным значением заказа для оплаты через основной платёжный шлюз магазина.

3. Endpoint

URL
https://api.ac8.ru/v1/tilda/pay
Метод
POST
Content-Type
application/x-www-form-urlencoded
Sandbox
https://api.ac8.ru/v1/tilda/pay?sandbox=1

4. Параметры запроса (Mapping)

Tilda передаёт перечисленные поля в теле POST-запроса. Колонка «Параметр Tilda» соответствует полю, настраиваемому в разделе Список соответствия полей шаблона.

Параметр ac8Параметр TildaТипОбяз.Описание
loginloginstringдаИдентификатор магазина в ac8, выдаётся при подключении
orderidorderidstringдаНомер заказа в формате <projectid>_<orderid>, например 8658431_00042. Формируется Tilda автоматически.
amountamountdecimalдаСумма заказа в основной валюте (рубли, а не копейки), две цифры после точки. Пример: 1500.00.
currencycurrencystringдаБуквенный код ISO-4217, например RUB, USD.
emailemailstringдаEmail покупателя
phonephonestringнетТелефон покупателя в формате E.164 (+79001234567)
namenamestringнетФИО покупателя
productsproductsjsonнетJSON-массив позиций корзины. Каждая позиция содержит name, quantity, price, sum. Доставка может приходить отдельной позицией. Цены могут уже включать применённые магазином скидки и промокоды Tilda.
successurlsuccessurlurlдаURL возврата при успехе
failurlfailurlurlдаURL возврата при отмене
signaturesignaturestringдаПодпись запроса (см. раздел 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}
]

Пример запроса от Tilda

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&currency=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...

5. Алгоритм подписи

Алгоритм
sha256 (hex, нижний регистр)
Кодировка
UTF-8
Разделитель
:: (два двоеточия)
Сортировка
фиксированный порядок, указанный в формуле ниже
Исключаются
signature, products

Формула

signature = 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"

6. Callback в Tilda (Notification URL)

После завершения операции на стороне ac8 отправляется POST-запрос на URL уведомлений, предоставленный Tilda через шаблон.

Тело callback

ПолеТипОписание
orderidstringНомер заказа, совпадает с исходным запросом
amountdecimalФактически оплаченная сумма (после применения бонусов)
statusstringPAID / CANCELLED / FAILED
signaturestringПодпись callback (формула аналогична запросу, см. ниже)

Формула подписи callback

signature = sha256(orderid + "::" + amount + "::" + status + "::" + secret)

Признак успешной оплаты

Заказ считается успешно оплаченным при status = PAID. Tilda может принять это значение в настройке «Значение признака успеха».

Ожидаемый ответ Tilda

ac8 ожидает в теле ответа текст OK (HTTP 200). В случае любого иного ответа выполняется повторная отправка callback с экспоненциальной задержкой: 30с, 2м, 10м, 30м, 1ч (максимум 5 попыток).

7. Возврат покупателя на Tilda

После завершения взаимодействия ac8 выполняет HTTP-редирект:

8. Тестовое окружение

Для отладки интеграции доступен sandbox-режим: добавление параметра ?sandbox=1 к endpoint возвращает фиктивный баланс 10 000 бонусов и подтверждает любое списание без реального движения средств.

Тестовые учётные данные

login
tilda-test
secret
test_secret_k8mWqR2pL

9. Безопасность

10. Контактная информация

Продукт
ac8 — loyalty-платформа для Tilda-магазинов
Сайт
https://ac8.ru
Техдокументация
https://docs.ac8.ru
Email интеграций
hello@ac8.ru
Организация
ИП Перетятько Анастасия Романовна
ОГРНИП
325774600602274
ИНН
503237573290