En esta página
Simular depósito
Lleva un depósito de canal en Sandbox hasta la etapa que elijas y recibe los mismos webhooks que produce un pago real confirmado en cadena.
Clave de API: Payment · Entorno: solo Sandbox
Crea un depósito nuevo en el canal y lo lleva hasta la etapa que pidas, emitiendo los mismos webhooks y produciendo el mismo contrato de depósito que un pago real. No interviene ninguna blockchain ni ningún proveedor.
Cuerpo de la petición
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
amount |
string | Sí | Importe del depósito como cadena decimal, por ejemplo "100". |
currency |
string | Sí | Un token activado en el proyecto del canal, por ejemplo USDT. |
network |
string | Sí | El código de la red por la que llega el token, por ejemplo TRC20. |
stage |
string | No | confirming, reorged o confirmed. Por defecto, confirmed. |
{
"amount": "100",
"currency": "USDT",
"network": "TRC20",
"stage": "confirmed"
}
Etapas
Toda llamada arranca emitiendo payment_channel.deposit.confirming, igual que una detección real. stage decide dónde para:
| Etapa | Termina en | Webhooks emitidos |
|---|---|---|
confirming |
confirming |
confirming |
reorged |
reorged |
confirming y después reorged |
confirmed |
confirmed |
confirming y después confirmed |
Cada llamada crea un depósito nuevo, con un pcd_ nuevo. Para ejercitar una reorganización seguida de la reinclusión de ese mismo pago, usa un flujo parecido al de producción en lugar de dos depósitos simulados: el simulador no reincluye.
Respuesta (200 OK)
El contrato de depósito completo, con la misma forma que Obtener depósito.
{
"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
}
Dos campos se ven distintos de los de un depósito real, y los dos son marcas honestas más que descuidos: block_height vale 0 y transfer_id va con el espacio de nombres sandbox:…. Esos valores son justo lo que mantiene una fila simulada fuera de todos los caminos que escanean cadenas. La explorer_url se genera a partir de un hash sintético: la transacción a la que apunta no existe en ninguna cadena.
El dinero de Sandbox es virtual. fee y net salen de las tarifas de la foto que lleva el propio depósito, y el importe cae en tu saldo de Sandbox igual que un depósito real cae en el de producción.
Reglas
- —El canal tiene que ser un canal de Sandbox y tienes que firmar con una clave Payment de Sandbox. Una clave de producción se rechaza antes de crear nada.
- —La pareja
currency+networktiene que ser un token activado en el proyecto y aceptado por el catálogo de Sandbox. - —
amounttiene que caber en la precisión decimal del token. Un importe con demasiados decimales se rechaza en lugar de redondearse en silencio hasta otro número.
Errores
| Code | HTTP | Cuándo |
|---|---|---|
payment_channels_disabled |
503 | Los canales de pago no están activados para tu cuenta en este entorno. |
payment_key_required |
403 | La petición se firmó con una clave Payout (rk_). |
payment_channel_simulation_sandbox_only |
403 | El canal es un canal de producción. |
payment_channel_not_found |
404 | El id no resuelve a nada que esta credencial pueda ver. |
currency_not_enabled_for_project |
400 | El token no está activado en el proyecto del canal. |
acceptance_disabled |
503 | El token no se acepta ahora mismo para cobros. |
amount_too_many_decimals |
400 | amount tiene más decimales de los que admite el token. |
field_must_be_positive |
400 | amount es cero o negativo. |
field_invalid_enum |
400 | Un currency, network o stage desconocido. |
Consulta Pruebas para el flujo de trabajo completo de Sandbox y Códigos de error para el catálogo completo.