Hay una sola versión, v1, y sólo cambia de forma compatible. Esto es lo que podés dar por sentado, y lo que tu cliente tiene que tolerar.

Lo que no cambia dentro de v1

  • Los paths y los métodos de las cinco operaciones.
  • Los campos requeridos de cada request y de cada respuesta: no se quitan ni cambian de tipo.
  • Los seis momentos (surface) y los siete tipos de señal.
  • La forma común de los errores: type, title, status, detail, code, request_id, con las extensiones al nivel raíz.
  • Los prefijos de los ids.

Lo que puede cambiar sin aviso

El SDK ya lo hace: los tipos dejan pasar campos desconocidos, CrossUpApiError guarda en extensions lo que no conoce, y reason_codes es string[].

Lo incompatible, y cómo se avisa

Quitar un campo, cambiar un tipo, un path o el significado de un valor. Nada de eso entra en v1. Si hace falta, sale como v2 en otro path, v1 sigue viva, y el cambio se anuncia en Cambios antes de salir.

Qué versión del contrato estás mirando

Esta referencia se genera del contrato OpenAPI 3.1, y cada cambio queda en Cambios con la fecha y la operación que tocó.

Errores

Los once tipos, con su forma exacta.

Cambios

El historial del contrato y de los paquetes.