Conceptos
Integra en cuatro pasos
1
Configura la institución
Haz esto una vez, con el rol
editor. Define los límites de uso con PUT /v1/policy/limits; son obligatorios antes de la primera TED. Para las TEDs recibidas, define las vinculaciones de ISPB a organización con PUT /v1/policy/ispb-bindings. De forma opcional, define un horario de corte con PUT /v1/policy/window.2
Envía la TED
Envía El envío devuelve
X-Account-Id (la cuenta debitada) y X-Idempotency (una clave nueva para cada pago). Para mostrar la comisión antes de confirmar, llama a POST /v1/transfers/fee-quotes con los mismos campos.201 con el estado que la TED alcanzó en esta llamada, normalmente SUBMITTED.3
Síguela hasta la liquidación
Consulta
GET /v1/transfers/{transferId} hasta que status llegue a SETTLED, REJECTED o CANCELLED, o suscríbete a los eventos transfer.*. En REJECTED, rejection.source y rejection.code te dicen quién la rechazó y por qué.4
Gestiona las TEDs recibidas
Lístalas con
GET /v1/incoming-transfers. El crédito al cliente es automático. Solo status=MANUAL_REVIEW requiere una decisión de un operador (POST /v1/incoming-transfers/{incomingTransferId}/resolve-review), y POST /v1/incoming-transfers/{incomingTransferId}/return devuelve una TED que ya está acreditada.Estados
Una TED enviada pasa por estos estados. Los estados finales son
SETTLED, REJECTED y CANCELLED.
Una TED recibida pasa de
RECEIVED (decisión en curso) a CREDITED (acreditada al cliente), RECORDED (cuenta propia de la institución, final), RETURN_REQUESTED (TED Lerian no puede acreditarla) o MANUAL_REVIEW (espera a un operador; consulta reviewReason). Pasa de RETURN_REQUESTED a RETURNED cuando se devuelve. slaDeadlineAt es el plazo regulatorio de 60 minutos contado desde la liquidación interbancaria.
Autenticación y permisos
Cada llamada, excepto los health checks públicos, envía
Authorization: Bearer <token> emitido por Access Manager. Los roles predeterminados son editor (todas las operaciones), operator (todas las operaciones excepto las escrituras de políticas y de vinculaciones de ISPB) y viewer (lecturas, excepto las lecturas de conciliación).
Sin el permiso, o con una licencia del producto que no es válida para la organización:
403 TED-0071. Token ausente o inválido: 401 TED-0070.
Convenciones
- Tenant. Nunca de la ruta, del query ni del cuerpo.
- Montos. Strings decimales en BRL con dos decimales (
"1500.00"), nunca números JSON. - Fechas. RFC 3339 en UTC (
2026-10-22T13:05:12Z); los días comoYYYY-MM-DD. La ventana operativa usa la zona horaria de la institución (America/Sao_Paulo). - Idempotencia. Cada operación con efecto requiere
X-Idempotency(de 1 a 128 caracteres ASCII; usa un UUID). La misma clave con el mismo cuerpo devuelve la respuesta original conX-Idempotency-Replayed: truey sin nuevo efecto. Un cuerpo diferente devuelve422TED-0012. Si la primera solicitud todavía se está procesando, recibes409TED-0013(reintenta después deRetry-After). La repetición duraX-TTLsegundos (300 de forma predeterminada). EnPOST /v1/transfers, la clave queda vinculada a la transferencia que creó. - Protección contra duplicados.
POST /v1/transferspuede rechazar con409TED-0014una solicitud materialmente idéntica enviada poco después de otra, incluso con una clave diferente. Consulta la transferencia existente. - Paginación. Las listas devuelven
items,limit,next_cursoryprev_cursor. Pide hastalimit=100(20 de forma predeterminada) y siguenext_cursorhasta que seanull. El cursor es opaco. - Correlación. Envía
X-Request-Id(UUID) o recibe uno generado. Vuelve en cada respuesta e identifica la llamada para soporte. - Eventos. Cada transición se publica como un CloudEvent con
ce-typestudio.lerian.br-ted.<resource>.<event>:transfer.*,incoming_transfer.*eincoming_return.*. La entrega es al menos una vez; deduplica porce-id. - Entornos. La URL base es por instalación (BYOC o Lerian Cloud), y Lerian la proporciona.
Errores
Cada error es
application/problem+json (RFC 9457) con un code estable. Gestiona los errores por code. errors lista los campos inválidos de un 422.
Un 503 significa que la solicitud no tuvo efecto: reintenta más tarde con el mismo X-Idempotency. Hay tres excepciones:
TED-1000: el ledger no confirmó el resultado, y la operación ya puede estar en el ledger. Lee el estado del recurso antes de volver a actuar.TED-0080en un envío: la transferencia ya puede existir. Búscala conGET /v1/transfersantes de enviarla de nuevo.TED-1010en una cancelación: la respuesta del conector del STR es desconocida, y la solicitud de cancelación sigue registrada. Reintenta con el mismoX-Idempotencyy el mismoreason.
429 con Retry-After: gestiónala por el estado y espera ese tiempo antes de reintentar.
En un envío,
TED-0031, TED-1001, TED-1011 y TED-1013 nunca llegan como respuesta de error. Llegan en rejection.code de una transferencia con estado REJECTED, en la respuesta 201 o en una consulta posterior.
La lista de errores muestra cada código con su causa y su corrección.
