Перейти к содержимому

API

На странице

Симуляция депозита

Проведите депозит канала в песочнице через confirming reorged или confirmed и получите те же вебхуки, что даёт настоящий платёж в блокчейне.

POST/v1/sandbox/payment-channels/:payment_channel_id/simulate-deposit

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.

Общий сценарий работы с песочницей — в Тестировании, полный каталог кодов — в Кодах ошибок.