Pedir el alta de una wallet de origen
POST/prefondeos/wallets-origenProbar
La llamada la hace tu navegador, contra el servidor que elijas arriba. Si la documentación no está servida desde el mismo origen que la API, el navegador puede bloquear la respuesta por CORS: en ese caso abre estas páginas desde la propia API (/docs) o usa el curl de arriba.
const url = 'http://localhost:3000/v1/prefondeos/wallets-origen';const options = { method: 'POST', headers: {'x-api-key': '<x-api-key>', 'Content-Type': 'application/json'}, body: '{"red":"TRC20","direccion":"example","etiqueta":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:3000/v1/prefondeos/wallets-origen \ --header 'Content-Type: application/json' \ --header 'x-api-key: <x-api-key>' \ --data '{ "red": "TRC20", "direccion": "example", "etiqueta": "example" }'Scope prefondeos:write. Exige Idempotency-Key. Queda pendiente hasta que una persona de nuestro equipo la aprueba (te llega prefondeo_wallet.activada o prefondeo_wallet.rechazada). Sólo wallets de autocustodia: nunca la de un exchange. Antes de aprobar te confirmamos el alta por tu canal habitual. Una wallet es de un solo cliente: si ya está registrada responde wallet_origen_en_uso, con el mismo mensaje sea de quien sea. En TRON (TRC20) la dirección va tal cual (las mayúsculas importan y se valida su checksum); en las redes EVM se guarda en minúsculas.
Authorizations
Sección titulada «Authorizations»Parameters
Sección titulada «Parameters»Header Parameters
Sección titulada «Header Parameters»Único por operación. El alcance es tu cuenta y el modo de la key: una sk_test_ y una sk_live_ no comparten keys. Dura 24 h. Reintentar con la misma key y payload devuelve la respuesta original, con el mismo código HTTP y la cabecera Idempotent-Replayed: true; con otro payload da 409 idempotency_key_reused. Los campos secretos (el url de una gift card, una apiKey nueva, un webhookSecret) sólo llegan en la primera respuesta: al repetir llegan en null.
Request Bodyrequired
Sección titulada «Request Bodyrequired»object
TRC20/TRON o una red EVM (ERC20, BEP20, POLYGON…)
Example
TRC20Responses
Sección titulada «Responses»Wallet pendiente (o de nuevo pendiente, si era tuya y estaba de baja)
Una wallet desde la que mandas USDT al prefondeo.
object
Tal cual en TRON; en minúsculas en EVM
pendiente hasta que la aprueba nuestro equipo; activa (sólo se acredita lo que llega desde una activa); rechazada; baja.
Activada en la cuenta de pruebas, sin el equipo
Example
{ "red": "TRC20", "estado": "pendiente"}idempotency_key_required, validation_failed, wallet_origen_invalida (formato, checksum, dirección cero o una wallet de recepción nuestra) o wallet_origen_red_no_soportada
object
object
Contexto estructurado del error cuando lo hay: qué límite se superó y de cuánto, qué campo es inválido, cuánto saldo había. No aparece en errores internos.
object
Código ESTABLE. Programa contra esto.
Example
{ "error": { "type": "invalid_request_error", "code": "insufficient_balance", "request_id": "req_8a0312ba896772bc441134cd" }}wallet_origen_en_uso
object
object
Contexto estructurado del error cuando lo hay: qué límite se superó y de cuánto, qué campo es inválido, cuánto saldo había. No aparece en errores internos.
object
Código ESTABLE. Programa contra esto.
Example
{ "error": { "type": "invalid_request_error", "code": "insufficient_balance", "request_id": "req_8a0312ba896772bc441134cd" }}