Tranzmit · Payers API v1.0

El spec ya está en línea

Qué encontré en el archivo que mandó tecnología, qué corregí, y lo que queda abierto sin frenar nada.

15 de octubre de 2026 · 9:30 pm

6
errores
corregidos
5
enumeraciones
agregadas
37
esquemas
en el spec
10
endpoints
publicados
5
puntos abiertos
que no bloquean
✓

El spec pasa la validación limpio, sin errores ni advertencias, y la referencia interactiva ya está publicada en el portal de developers. El archivo corregido queda descargable desde ahí para que tecnología lo adopte como fuente.

01Para abrir

Referencia interactiva
tranzmit-developers.pages.dev/reference
Generada del spec. Cada endpoint con sus campos, tipos, enumeraciones y el ejemplo de respuesta.
La guía del flujo
tranzmit-developers.pages.dev
El portal narrativo: en qué orden llamar, los dos flujos, el ciclo de vida. Ahora con los dos enlaces nuevos en el índice.
El spec corregido
tranzmit-developers.pages.dev/openapi.yml
Para que tecnología lo reemplace en su repositorio.

02Los seis errores que traía

Cinco son el mismo error de dedo. No se ven leyendo el archivo, pero rompen cualquier herramienta que lo lea.

Cinco descripciones con una coma de más

Líneas 939, 950, 951, 968 y 969 — los campos created y clientTimestamp de PayoutAssignment, PayoutConfirmation y PayoutRejection.

La descripción decía create date-time in ISO-8601 format, utc dentro de una línea con llaves. En YAML, la coma dentro de las llaves separa campos: el texto se cortó en «format» y la palabra utc quedó interpretada como un campo del esquema que no existe. Se arregla poniendo la descripción entre comillas.

Un nullable sin tipo

Línea 959, el reasonCode de PayoutRejection. Declaraba que el campo puede venir nulo sin decir de qué tipo es. El validador lo rechaza porque no puede deducir qué generar.

03Lo que mejoré además

El spec estaba bien armado en estructura, pero le faltaban dos cosas que cambian mucho la experiencia de quien integra.

04Cinco cosas que vi y conviene revisar

No son errores del archivo. Son decisiones que alguien tiene que tomar, y dos de ellas tienen filo comercial.

La dirección no tiene código postal revisar con cumplimiento

La dirección del remitente y del beneficiario tiene country, state, city, line1 y line2. No hay campo de código postal.

Para una remesa que sale de Estados Unidos, el ZIP del remitente es un dato que normalmente se pide en el reporte regulatorio. Si un partner tiene que reportarlo y la API no lo transmite, el dato se pierde en el camino. Vale confirmarlo con cumplimiento antes de que un banco lo pregunte en la mesa.

Ningún campo es obligatorio afecta a los SDK

El objeto Transaction tiene 25 campos y el spec no marca ninguno como requerido. En la práctica el id, el referenceNumber y el status siempre vienen.

Mientras no se marquen, cualquier cliente generado los tratará como opcionales y el desarrollador del banco tendrá que verificar si vienen vacíos en cada uno de los 25. Es trabajo regalado y una fuente de errores evitable.

ATM-PICKUP no se puede consultar por lotes inconsistencia

Como método de entrega existen cinco: depósito, ventanilla, billetera, domicilio y cajero. Pero el parámetro de query-available solo acepta tres —depósito, domicilio y billetera.

Que falte ventanilla tiene sentido: ese flujo entra por número de referencia. Lo que no cuadra es cajero. Si un pagador ofrece retiro en cajero, hoy no tiene por dónde recibir esas transacciones.

No hay avisos: el partner tiene que preguntar onboarding

El spec no define webhooks. Eso significa que el pagador tiene que consultar query-available cada cierto tiempo para ver si hay transacciones nuevas, y el spec no dice cada cuánto es aceptable.

Es la primera pregunta que hace un equipo técnico serio. Conviene tener la respuesta escrita antes de que la hagan.

Los errores 400 y 500 solo están en un endpoint menor

payout-confirmation documenta los diez códigos de respuesta posibles. Los otros nueve endpoints documentan cuatro. Lo más probable es que todos puedan devolver un 500; conviene homologarlo.

05Lo que queda abierto

Nada de esto frena el proyecto: el spec está válido y publicado sin estos cinco puntos. Los dejo anotados para que estén a la vista el día que alguien pregunte, no como requisito.

#Punto abiertoCuándo va a importar
1La URL de producción El spec declara staging. Se agrega el día que el primer partner pase a vivo —una línea en el archivo.
2Cuáles campos son obligatorios Hoy ninguno está marcado. Funciona igual; el desarrollador que integre simplemente valida más de lo necesario.
3Los scopes del OAuth La lista está vacía. Si no se usan scopes, así está correcto.
4Límite de llamadas Si existe y no está escrito, el partner lo descubre cuando le respondan un 429.
5Cada cuánto consultar Sin webhooks, el partner pregunta en el intervalo que él decida. Vale fijarlo cuando haya varios conectados a la vez.

06Lo que sigue

Lo pesado ya está. Queda la parte que hace que esto se mantenga solo.

1. Que el spec viva en un repositorio

Hoy el archivo me llegó por Telegram. Mientras viaje así, cada versión es una copia distinta y nadie sabe cuál es la buena. Con el archivo en un repositorio, el cambio al spec y su publicación son el mismo movimiento.

2. Publicación automática

Un GitHub Action que valide el spec en cada cambio y republique el portal solo. Se escribe una vez y corre para siempre, sin que nadie —ni yo— tenga que acordarse.

3. Lo que el spec habilita gratis

Colección de Postman para que un partner pruebe sin escribir código, y un servidor simulado para que integre antes de que le demos acceso a staging. Las dos salen del mismo archivo y acortan semanas de onboarding.

4. ConsultaCuentaNueva

La segunda API quedó en pausa el 23 de septiembre, con el material armado y sin publicar. Si tecnología tiene también su spec, entra por el mismo camino.