Registro de Cambios
Registro fechado de cambios en la forma del cable orientados al partner — DTOs de solicitud/respuesta, códigos de error, disponibilidad de endpoints, esquemas de firma. Los cambios de infraestructura interna (CI/CD, observabilidad, plumbing de despliegue) están fuera de alcance.
Cada entrada se etiqueta:
- breaking — la forma del cable cambió de manera que requiere cambios de código del partner
- additive — campo nuevo, endpoint nuevo, tipo de evento nuevo, código de error nuevo; las integraciones preexistentes siguen funcionando
- fix — corrige una inconsistencia entre la documentación y el runtime, o entre la spec y la implementación
- deprecation — campo o endpoint marcado para remoción; aún funciona, pero planifique la migración
Los cambios incompatibles pre-GA aún se etiquetan para dar a los partners visibilidad sobre la evolución de la forma del cable. ARi no tiene tráfico de partners productivos contra las superficies incompatibles de abajo; las etiquetas existen para completitud, no para coordinación.
2026-04
2026-04-28
- breaking (fx): se removió el campo deprecado
external_user_iddel cuerpo de solicitud de FXgetQuote. El alcance por cliente para socios M2M ahora usacustomer_external_user_idexclusivamente. Los socios que estaban en el nombre legado deben renombrar en sus cuerpos de solicitud; los campos legados son descartados silenciosamente por el validador global (su alcance por cliente recae a la identidad del contexto del socio). Pre-GA — sin tráfico productivo de socios sobre el nombre legado. - additive (fx): el DTO hermano de solicitud M2m (
M2mFxOrderQuoteRequestDto) ahora declara la forma canónica orientada al socio paragetQuote. El filtro lo promueve en el documento M2M para que los SDKs de socio rendericen el cable limpio por audiencia. - docs: 11 nuevas guías de API hacia el socio — broker, external-accounts, stablecoin, customers, balances, market, treasury, trading, reconciliation, verifications, padron — cada una con Inicio rápido + enlaces cruzados a los documentos de referencia (en + es).
- docs: fx-orders.md reestructurado a la forma canónica XOR de monto — tres escenarios (anclado al origen, anclado al destino, solo-tasa), ciclo de vida de estado completo, tabla de códigos de error, y semántica de
customer_external_user_id. - docs: webhooks.md completado con recorrido de verificación HMAC (Node.js + Python), catálogo de tipos de evento (8 entregables a partners), política de reintentos (escalera 1m → 5m → 15m → 1h), estados de ciclo de vida (
active/suspended/inactive), y restricciones de URL/SSRF - docs: errors.md completado con el catálogo completo de 92 códigos organizado por dominio (
CLIENT-NET,DB-AML,DB-STC,DB-CMP,DB-CUS,DB-FX,DB-MNX,DB-PAD,DB-TRD,DB-TRF,DB-WAL,GW-STC) - docs: pagination.md, sandbox.md, authentication.md, idempotency.md completados — provienen del runtime de BFF/core-be, sin contenido aspiracional
2026-04-27
- fix: limpieza de nombres de competidores en las descripciones de la spec OpenAPI de FX y en el plan de auditoría — las descripciones ahora referencian la forma del cable directamente sin analogía
- breaking (rbac): se plegaron
custody-apiysecurities-catalog-apibajo el prefijo URLbroker-api. Los endpoints anteriormente bajo/custody/*y/securities-catalog/*ahora viven bajo/broker/*con los mismos scopes mapeados abroker-read/broker-admin - additive: proxy
/external-queryhabilitado vía la compuerta de rol developer (acceso de solo lectura mediado por agente para tenants de sandbox)
2026-04-25
- docs: los esquemas de solicitud de FX ahora expresan la restricción XOR
origin_amount/destination_amountvía OpenAPIoneOf— APIM impone la forma XOR en el gateway, no solo en BFF
2026-04-24
- breaking (fx): se eliminó
amount_sidede FXgetQuoteycreateOrder. Reemplazado por XOR de monto exclusivo — suministre exactamente uno deorigin_amount(anclado al origen) odestination_amount(anclado al destino). El campo discriminador desaparece del cable por completo - additive (errors): se registraron nuevos errores FX
DB-FX-411,DB-FX-412,DB-FX-417con anotaciones de emit-site refrescadas - deprecation (errors):
DB-FX-416deprecado junto con el pivote thin-lock — aún se emite en rutas legacy, remoción planificada - fix (errors): el texto de mensajes
DB-FX-413/414/415deja de referenciar nombres de SP internos; las cadenas hacia el partner ahora se ciñen al contrato, no a la implementación - fix (rename): completado el rename
anchor_side→amount_sidea través de columnas SQL, parámetros de stored-procedure, binds de Dapper, payload JSON del outbox, y DTOs HTTP (este rename fue superado la misma semana por la transición XOR de arriba; documentado por completitud)
2026-04-23
- fix (apim): deduplicadas las declaraciones de campos
anchor_sideyamounten la spec OpenAPI — APIM estaba retornando400 "Resource not found"opaco en solicitudes de cotización porque rechaza claves JSON duplicadas en el gateway
2026-04-22
- additive (fx): nuevo endpoint
/api/v1/fx/quoterespaldando el flujo SINPE (migración V031), con cobertura completa en spec APIM y pruebas end-to-end - additive (stablecoin): ingreso de webhooks cableado al tópico
stablecoin-webhook-inboundcon RBAC a nivel de suscripción para la identidad sender de func-stablecoin - additive (didit): tópicos KYC + AML introducidos con forma de sesión parametrizada; OpenAPI
v2 - fix: DTOs de ExternalQuery migrados a formato de cable snake_case; encabezados requeridos faltantes agregados a la spec
/external-query
2026-04-21
- additive (errors): registrados códigos de error de gateway stablecoin
GW-STC-001aGW-STC-010 - additive (bff-contract):
0.5.0publicado con correcciones de drift en DTO de transferencias
2026-04-19
- additive: SDK de errores tipados publicado como
@ariari/errorspara consumidores downstream (TypeScript) — validación Zod de invariante de tier incluida - docs: índice del catálogo de errores alineado con el estado codegen-completo; índice de flujos actualizado
2026-04-18
- additive (errors): respaldo completo de 67 códigos canónicos en
db.yamldesde 83 sitios THROW distintos; plataforma SDK andamiada (codegen + emisor MDX para dev-portal)
2026-04-17
- fix (apim):
/external-queryagregado a la spec OpenAPI del developer-portal — corregido el caso de ruta faltante donde APIM retornaba404porque la spec por-API no declaraba la ruta - fix (apim): parámetros de query
last-event-idytypesdel stream SSE marcadosrequired: false— habían quedado requeridos involuntariamente tras una auto-regen de BFF
2026-03
2026-03-11
- release: corrección del servicio de fondo de RLS; landing zone de IA introducida; SSE de dev-portal cableado; conjunto de docs expandido
2026-02
2026-02-23
- release: plataforma ARiSabe; motor PricingRules; docs de arquitectura de agentes
2026-02-22
- release: consolidación de migraciones V020; corrección de archivado ETL; regeneración de spec APIM
2026-02-20
- release: paridad CI con producción; correcciones de despliegue; cobertura de pruebas E2E; datos de siembra; docs de resiliencia
2026-02-17
- release: refactor de observabilidad; extracción de despliegue de BD; cobertura del suite E2E; corrección CORS de APIM
2026-02-12
- release: certificación E2E del producto; correcciones de seguridad; autoescalado; refactor de APIM
2026-02-10
- fix (vpn,apim): VPN de túnel único; control de acceso a API endurecido; rollout de hardening de APIM
2026-02-04
- additive (apim): operaciones de la API customers agregadas a la spec OpenAPI
- docs (fx-orders): docs de la API actualizados para el formato de reference-code
FXT-
2026-02-03
- docs: traducciones al español introducidas; estilizado de diagramas ASCII corregido; markdown de dev-portal movido a
public/para builds standalone
2026-01
2026-01-26
- additive (trading): docs de la API Trading Orders publicados; problemas de SP corregidos en la fuente
2026-01-25
- docs: referencias de dominio unificadas — endpoints de sandbox documentados en
sandbox-api.ariari.xyzysandbox-developers.ariari.xyz
2026-01-18
- breaking (naming):
transactionsconsolidado entransfersa través de las specs APIM y las pruebas end-to-end. Endpoints bajo/transactions/*removidos; operaciones equivalentes bajo/transfers/*
Compromisos de política de cambios
- 30 días de aviso anticipado antes de cualquier cambio incompatible en la forma del cable. El aviso se publica aquí con una fecha objetivo de efectividad.
- 6 meses de compatibilidad para campos deprecados después del anuncio de deprecación, salvo que la deprecación cierre una brecha de seguridad (en cuyo caso el cronograma es más corto y se enuncia en la entrada).
- Sin remociones silenciosas — cada campo, código de error, o tipo de evento removido aparece primero en esta página.
- Sin cambios semánticos silenciosos — si el significado de un campo cambia (p. ej. un enum de estado gana un nuevo valor, un campo numérico cambia precisión), aparece aquí incluso si la forma JSON es idéntica.
Vea también
- Autenticación, Idempotencia, Errores, Webhooks, Paginación, Sandbox — los documentos que reflejan el estado más reciente del contrato