На странице
Симуляция депозита
Проведите депозит канала в песочнице через confirming reorged или confirmed и получите те же вебхуки, что даёт настоящий платёж в блокчейне.
API-ключ: Payment (песочница)
Только для песочницы. Создаёт на канале один новый депозит и доводит его до запрошенной стадии, отправляя те же вебхуки и возвращая тот же контракт депозита, что и настоящий платёж. Блокчейн и внешние провайдеры при этом не задействованы.
Тело запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
amount |
string | Да | Сумма депозита десятичной строкой, например "100". |
currency |
string | Да | Токен, включённый в проекте канала, например USDT. |
network |
string | Да | Код сети, в которой приходит токен, например TRC20. |
stage |
string | Нет | confirming, reorged или confirmed. По умолчанию confirmed. |
{
"amount": "100",
"currency": "USDT",
"network": "TRC20",
"stage": "confirmed"
}
Стадии
Любой вызов начинается с события payment_channel.deposit.confirming — ровно как настоящее обнаружение платежа. Параметр stage определяет, где остановиться:
| Стадия | Конечное состояние | Отправленные вебхуки |
|---|---|---|
confirming |
confirming |
confirming |
reorged |
reorged |
confirming, затем reorged |
confirmed |
confirmed |
confirming, затем confirmed |
Каждый вызов создаёт новый депозит с новым pcd_. Чтобы проверить отмену с последующим возвратом того же платежа в цепочку, нужен сценарий на реальных платежах: симулятор повторное включение не воспроизводит.
Ответ (200 OK)
Полный контракт депозита, по форме идентичный Чтению депозита.
{
"id": "pcd_7VjMrK3fXd9BzQ4tLnWyGh",
"payment_channel_id": "pc_2QhKZv6mRt9WdA3nYpLbXf",
"project_id": "prj_xFukZuAJZR06pLVBh3uwzv",
"payment_channel_external_id": "customer-42",
"status": "confirmed",
"is_final": true,
"is_test": true,
"currency": "USDT",
"network": "TRC20",
"chain_id": 728126428,
"contract_address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
"gross": "100",
"fee": "1",
"net": "99",
"applied_fee_percent": 1.0,
"customer_fee_percent": 0,
"tx_hash": "4c8a2f61d05be79341ac6b28e5f0d97341b6ce80a2f5d3719b04ec6a582f1d37",
"transfer_id": "sandbox:payment-channel-deposit:9a1f7c3e5b8d42069e7a15c0d3b64f28",
"destination_address": "TQ5mVdC8yPjRs2NbHfW7ZkXe1LoAu4Tg6r",
"block_height": 0,
"first_included_block_timestamp": 1767225600,
"explorer_url": "https://tronscan.org/#/transaction/4c8a2f61d05be79341ac6b28e5f0d97341b6ce80a2f5d3719b04ec6a582f1d37",
"created_at": 1767225600,
"updated_at": 1767225600,
"confirmed_at": 1767225600
}
Два поля отличаются от настоящего депозита, и оба — честные метки, а не случайность: block_height равен 0, а transfer_id имеет префикс sandbox:. Именно эти значения не дают строке из песочницы попасть в сканирование цепочек. Ссылка explorer_url построена по синтетическому хешу — транзакции по ней не существует ни в одной сети.
Деньги в песочнице виртуальные. fee и net рассчитываются по комиссиям, зафиксированным в самом депозите, и сумма попадает на баланс песочницы так же, как настоящий депозит попадает на рабочий.
Правила
- —Канал должен быть каналом песочницы, а подпись — ключом
Paymentиз песочницы. Ключ рабочей среды отклоняется до того, как что-либо будет создано. - —Пара
currency+networkдолжна быть включена в проекте и приниматься каталогом песочницы. - —
amountдолжен укладываться в точность токена. Сумма с лишними знаками после запятой отклоняется, а не округляется молча до другого числа.
Ошибки
| Код | HTTP | Когда |
|---|---|---|
payment_channels_disabled |
503 | Платёжные каналы не включены для вашего аккаунта в этой среде. |
payment_key_required |
403 | Запрос подписан ключом выплат (rk_). |
payment_channel_simulation_sandbox_only |
403 | Канал относится к рабочей среде. |
payment_channel_not_found |
404 | Идентификатор не соответствует ничему, доступному этому ключу. |
currency_not_enabled_for_project |
400 | Токен не включён в проекте канала. |
acceptance_disabled |
503 | Токен сейчас не принимается к зачислению. |
amount_too_many_decimals |
400 | В amount больше знаков после запятой, чем поддерживает токен. |
field_must_be_positive |
400 | amount равен нулю или отрицателен. |
field_invalid_enum |
400 | Неизвестное значение currency, network или stage. |
Общий сценарий работы с песочницей — в Тестировании, полный каталог кодов — в Кодах ошибок.