Ir al contenido

Pedir el alta de una wallet de origen

POST/prefondeos/wallets-origenProbar
Cabeceras

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.

POST
/prefondeos/wallets-origen
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.

Idempotency-Key
string

Ú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.

Media typeapplication/json
object
red
required

TRC20/TRON o una red EVM (ERC20, BEP20, POLYGON…)

string
Example
TRC20
direccion
required
string
/^[A-Za-z0-9]{20,64}$/
etiqueta
string
<= 80 characters

Wallet pendiente (o de nuevo pendiente, si era tuya y estaba de baja)

Media typeapplication/json

Una wallet desde la que mandas USDT al prefondeo.

object
id
string format: uuid
red
string
direccion

Tal cual en TRON; en minúsculas en EVM

string
etiqueta
string
nullable
estado

pendiente hasta que la aprueba nuestro equipo; activa (sólo se acredita lo que llega desde una activa); rechazada; baja.

string
Allowed values: pendiente activa rechazada baja
simulada

Activada en la cuenta de pruebas, sin el equipo

boolean
motivo
string
nullable
aprobadaEn
string format: date-time
nullable
creadoEn
string format: date-time
actualizadoEn
string format: date-time
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

Media typeapplication/json
object
error
object
meta

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
key
additional properties
any
type
string
Allowed values: invalid_request_error authentication_error rate_limit_error upstream_error api_error
code

Código ESTABLE. Programa contra esto.

string
message
string
request_id
string
Example
{
"error": {
"type": "invalid_request_error",
"code": "insufficient_balance",
"request_id": "req_8a0312ba896772bc441134cd"
}
}

wallet_origen_en_uso

Media typeapplication/json
object
error
object
meta

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
key
additional properties
any
type
string
Allowed values: invalid_request_error authentication_error rate_limit_error upstream_error api_error
code

Código ESTABLE. Programa contra esto.

string
message
string
request_id
string
Example
{
"error": {
"type": "invalid_request_error",
"code": "insufficient_balance",
"request_id": "req_8a0312ba896772bc441134cd"
}
}