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

API

На странице

Чтение депозита

Прочитайте один депозит платёжного канала в любом состоянии — с зафиксированными комиссиями, суммами gross fee net и подтверждениями из блокчейна.

GET/v1/payment-channel-deposits/:payment_channel_deposit_id

API-ключ: Payment

Читает один депозит по идентификатору pcd_ в любом состоянии. Идентификатор, полученный из вебхука payment_channel.deposit.confirming, открывается здесь сразу, поэтому хранить payload вебхука только ради последующего поиска не нужно.

Ответ (200 OK)

{
  "id": "pcd_8ScRvL4jNq2XkB7mTfZdWu",
  "payment_channel_id": "pc_2QhKZv6mRt9WdA3nYpLbXf",
  "project_id": "prj_xFukZuAJZR06pLVBh3uwzv",
  "payment_channel_external_id": "customer-42",
  "status": "confirmed",
  "is_final": true,
  "is_test": false,
  "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": "9f4c1b7e30ad52c8ef6a1d84b0c39f27a5e6d138f4b90c72ae51d63b8407fc25",
  "transfer_id": "9f4c1b7e30ad52c8ef6a1d84b0c39f27a5e6d138f4b90c72ae51d63b8407fc25:41a614f803b6fd780986a42c78ec9c7f77e6ded13c:41c9f6a2b7d0138e54ca3b91f6072ed48a5c1e93b7:0",
  "source_address": "TW9s4RkAqBnLpVdX2ChYzUeGm7QfKt3NbZ",
  "destination_address": "TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9",
  "block_height": 68421905,
  "first_included_block_timestamp": 1767225900,
  "explorer_url": "https://tronscan.org/#/transaction/9f4c1b7e30ad52c8ef6a1d84b0c39f27a5e6d138f4b90c72ae51d63b8407fc25",
  "created_at": 1767225870,
  "updated_at": 1767225930,
  "confirmed_at": 1767225930
}

Поля

Поле Значение
id Идентификатор депозита (pcd_…). По нему выполняется дедупликация.
payment_channel_id, payment_channel_external_id Канал, принявший платёж, и заданный вами идентификатор этого канала.
status confirming, reorged или confirmed.
is_final true только для confirmed.
currency, network, chain_id, contract_address Какой токен пришёл и куда. contract_address — идентификатор токена в сети: адрес контракта в EVM и Tron, мастер-контракт жетона в TON, SPL-mint в Solana.
gross, fee, net Десятичные строки. net — то, что попадает на ваш баланс.
applied_fee_percent, customer_fee_percent Проценты комиссии, зафиксированные для этого депозита при зачислении.
tx_hash, transfer_id, block_height Подтверждения из блокчейна. transfer_id непрозрачен: сравнивайте его целиком, не разбирайте на части.
source_address Адрес плательщика, если сеть его раскрывает; иначе отсутствует.
destination_address Адрес канала, на который пришли деньги.
first_included_block_timestamp Когда транзакция впервые попала в блок.
explorer_url Ссылка на обозреватель блоков, если он есть для этой сети.
confirmed_at Проставляется один раз, при переходе депозита в confirmed.

Поле contract_address объявлено необязательным и пустует только у нативной монеты. Нативных монет среди принимаемых активов нет — значит, в любом депозите, который вы прочитаете, значение есть. То же правило для payment.contract_address описывает GET /v1/invoices/:id: оба ресурса разбирает один и тот же код.

Статусы

Статус Значение Финальный
confirming Обнаружен в цепочке, ждёт нужного числа подтверждений сети Нет
reorged Транзакция отменена реорганизацией цепочки Нет
confirmed Расчёт завершён, сумма net зачислена на баланс Да

confirmed необратим: достигнув его, депозит уже не меняет состояние. reorged — состояние покоя, но не финал: если та же транзакция снова попадёт в блок, тот же депозит вернётся в confirming и сможет подтвердиться. Идентификатор pcd_ при этом сохраняется, поэтому второго депозита на один платёж не появляется.

Состояния ошибки нет. Депозит, который был отменён реорганизацией и не вернулся в цепочку, просто остаётся в reorged.

Деньги фиксируются, а не пересчитываются

applied_fee_percent и customer_fee_percent — снимок на момент зачисления депозита. Последующая смена тарифа не меняет уже существующий депозит, и повторное чтение старого депозита возвращает те же gross, fee и net, что и раньше.

Для подтверждённого депозита в рабочей среде эти три суммы считываются из учётной записи, которая зачислила деньги на баланс, — это те же цифры, что и в вашей выписке, а не повторный расчёт. При комиссии 1,0 % депозит на 100 USDT покажет gross 100, fee 1, net 99.

Суммы передаются десятичными строками с обрезанными нулями в конце. Разбирайте их десятичным типом: двоичная плавающая точка теряет точность на масштабе стейблкоинов.

Ошибки

Код HTTP Когда
payment_channels_disabled 503 Платёжные каналы не включены для вашего аккаунта в этой среде.
payment_key_required 403 Запрос подписан ключом выплат (rk_).
payment_channel_deposit_not_found 404 Идентификатор не соответствует ничему, доступному этому ключу.
field_invalid_format 400 Сегмент пути не является корректным идентификатором pcd_.

Полный каталог — в Кодах ошибок.