Ir al contenido

API

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.

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

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 Importe del depósito como cadena decimal, por ejemplo "100".
currency string Un token activado en el proyecto del canal, por ejemplo USDT.
network string 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 + network tiene que ser un token activado en el proyecto y aceptado por el catálogo de Sandbox.
  • amount tiene 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.