Страницы оплаты без хранения средств.
Создавайте, просматривайте и отменяйте платежи на сервере. Клиенты платят на ваш собственный адрес TRON.
Создание платежа
Ограничение частоты: 30 запросов / 60 секунд (создание · на мерчанта). Общие счётчики и дополнительные лимиты по IP.
curl -X POST https://api.dedyx.com/api/v1/payments \
-H 'X-API-Key: YOUR_API_KEY' \
-H 'Idempotency-Key: order-1024' \
-H 'Content-Type: application/json' \
-d '{
"amount": "49.00",
"merchant_wallet": "TRzsBvFUhcvsy45ebmaKZ9EXw7zUorVkUm",
"description": "Order #1024"
}'| Поле | Тип | Правила |
|---|---|---|
amount | Десятичная строка | 0.01–99999999.99; не более двух знаков после точки; без округления. |
merchant_wallet | Адрес TRON | Корректный адрес под вашим контролем. Приватные ключи не передаются. |
description | Необязательная строка | До 500 символов. Видна на публичной странице оплаты. |
Неизвестные поля отклоняются. Валюта и сеть фиксированы: USDT в TRON/TRC-20. Настройте callback_url через настройки вебхука мерчанта, а не в этом запросе.
{
"payment_id": "pay_0123456789abcdef0123456789abcdef",
"expected_amount": "49.00",
"status": "PENDING",
"payment_url": "https://pay.dedyx.com/checkout/pay_0123456789abcdef0123456789abcdef"
}Жизненный цикл платежа
| Статус | Значение |
|---|---|
| PENDING | Ожидается подтверждённый перевод на точную сумму. |
| CHECKING | Срок отправки истёк. Не отправляйте средства. Мы ещё 10 минут проверяем перевод, отправленный вовремя; сумма остаётся зарезервированной. |
| PAID | Платёж подтверждён; событие вебхука поставлено в очередь. |
| EXPIRED | Окно оплаты завершилось. Если средства отправлены, обратитесь к продавцу. |
| CANCELED | Отменён продавцом; отправленные в блокчейн средства не возвращаются. |
| REVIEW | Перевод требует ручной сверки. Это не автоматическое подтверждение оплаты. |
Сумма должна точно совпадать, а время в блокчейне — находиться между created_at и expires_at. Меньший или больший перевод записывается для сверки, а заказ продолжает ожидать точную сумму. Отдельные переводы автоматически не суммируются.
Поздние переводы и платежи по отменённым или истёкшим заказам требуют сверки. Dedyx не перемещает и не возвращает средства.
Повторное использование адреса кошелька
Используйте один адрес для одновременных заказов с разными точными суммами. На один адрес и сумму допускается только один незавершённый заказ PENDING/CHECKING/REVIEW; 7, 7.0 и 7.00 резервируют одну сумму. После PAID, CANCELED или EXPIRED её можно использовать снова. Сумма остаётся зарезервированной на 10 минут CHECKING и освобождается после обработки окончательного истечения воркером. Каждый заказ требует одного перевода полной точной суммы в его окне оплаты; частичные переводы не складываются.
Например, создайте в 15:58 три заказа на 5.00, 7.00 и 9.00 USDT на один адрес. Подтверждённый перевод 7.00 USDT в соответствующем окне оплачивает только заказ на 7.00; остальные ждут. Перевод с временем до создания заказа не может его оплатить. До выполнения заказа дождитесь PAID через защищённый API или проверенного вебхука.
Один адрес не может принадлежать разным мерчантам. Для каждого нового заказа используйте новый ключ идемпотентности. Ранее записанные события транзакций нельзя применить повторно.
Повторный перевод старого клиента в окне нового заказа с точной суммой нового заказа неотличим от оплаты нового заказа. Например, после истёкшего заказа на 7.00 создаётся новый на 7.00; поздний перевод первого клиента в новом окне может оплатить второй заказ. Перевод на 7.00 как часть заказа на 9.00 также может оплатить открытый заказ на 7.00. Если нужно более строгое сопоставление, используйте отдельный адрес для каждого заказа.
Безопасные повторы
Idempotency-Key принимает 8–128 ASCII-букв, цифр и ._:-. Идентичные повторы в пределах стандартного срока хранения 24 часа возвращают исходный 201 ответ с Idempotency-Replayed: true. Изменённое тело с тем же ключом возвращает 409. Повтор содержит ответ создания; актуальный статус запрашивайте через details.
Без этого заголовка повтор после потери ответа может создать нежелательный заказ, когда предыдущий завершится. После истечения хранения сначала сверяйте состояние, затем повторяйте.
Чтение, список и отмена
Ограничение частоты: 120 запросов / 60 секунд (общие чтения · на мерчанта). Общие счётчики и дополнительные лимиты по IP.
Защищённый details содержит ID транзакции, индекс события, callback URL и причину сверки. Публичный метод страницы оплаты не раскрывает эти поля.
Ограничение частоты: 120 запросов / 60 секунд (общие чтения · на мерчанта). Общие счётчики и дополнительные лимиты по IP.
Ответ: {items, next_cursor}. Начните без курсора, затем передавайте возвращённый курсор. null означает конец. Limit: 1–100. Курсоры относятся к аутентифицированному мерчанту.
Ограничение частоты: 120 запросов / 60 секунд (общие чтения · на мерчанта). Общие счётчики и дополнительные лимиты по IP.
Прежняя пагинация offset: limit 1–100, offset 0–10000.
Ограничение частоты: 120 запросов / 60 секунд (публичный статус · на токен платежа). Общие счётчики и дополнительные лимиты по IP.
API-ключ не нужен. Используйте токен из payment_url. Все посетители одного платежа делят счётчик статуса; он независим от чтений мерчанта.
Ограничение частоты: 60 запросов / 60 секунд (отмена · на мерчанта). Общие счётчики и дополнительные лимиты по IP.
Отменить можно только активный заказ PENDING. Отмена не возвращает средства из блокчейна.
Проверка после срока отправки
После expires_at не отправляйте средства. CHECKING продолжается до verification_until (expires_at плюс 10 минут). Адрес и сумма остаются зарезервированными. Подтверждённый точный перевод с временем блока в исходном окне ещё может оплатить заказ в CHECKING. После verification_until своевременные переводы требуют ручной сверки, даже если воркер был перезапущен или задержался. Отмена исключает автоматическое подтверждение. Обнаружение может занять несколько минут после подтверждения в блокчейне в зависимости от индексации, расписания проверок и ёмкости сервиса. Ответы API содержат server_time для таймера страницы; это не доказательство успешного сканирования блокчейна.
Кошельки и вывод с бирж
QR-код платежа содержит только адрес получателя. Выберите USDT в сети TRON и введите точную сумму в кошельке. Автозаполнение суммы для отдельных кошельков на страницах оплаты сейчас отключено.
TronLink, TokenPocket и OKX Wallet проходят проверку совместимости. Их протоколы перевода, входа и подключения различаются, поэтому доступны QR адреса и ручной ввод суммы; универсальное автозаполнение не заявляется. При выводе с Binance и OKX выберите USDT и TRON (TRC-20), затем проверьте точную сумму получения после комиссии. На Binance используйте Receive amount, если доступно; Withdrawal amount может уменьшить поступление продавцу на комиссию. Заявка на вывод до дедлайна может попасть в блок позже и потребовать сверки.
| Приложение | QR / подготовка приложения | iOS · сканер / камера | Android · сканер / камера |
|---|---|---|---|
| Trust Wallet | QR адреса + ручная сумма на странице оплаты; автозаполнение отключено | Не зафиксировано / не проверено на телефоне | Не зафиксировано / не проверено на телефоне |
| TronLink | QR адреса + ручная сумма; DeepLink перевода требует входа и отправителя | Не проверено на телефоне / не проверено на телефоне | Не проверено на телефоне / не проверено на телефоне |
| TokenPocket | QR адреса + ручная сумма; перевод DApp использует свой протокол | Не проверено на телефоне / не проверено на телефоне | Не проверено на телефоне / не проверено на телефоне |
| OKX Wallet | QR адреса + ручная сумма; TRON App Connect требует сессию | Не проверено на телефоне / не проверено на телефоне | Не проверено на телефоне / не проверено на телефоне |
| Вывод с бирж Binance / OKX | QR адреса / копирование; вручную выберите TRON и точную сумму получения | Не проверено на телефоне / не проверено на телефоне | Не проверено на телефоне / не проверено на телефоне |
Обычный QR адреса и копирование доступны. Форматы отдельных кошельков требуют отдельной проверки совместимости до выпуска.