● API en Producción Versión 1.2.0 🌐 saas.tks.com.pa OpenAPI 3.1 Bearer Token Auth

Integración Medsys Star ↔ TKS Suite

Especificación técnica oficial para la sincronización transaccional de órdenes de compra de medios publicitarios, arquitectura de staging contable, gestión de concurrencia y ciclo de facturación contable en TKS Suite.

1. Arquitectura y Principios de Integración

La integración entre Medsys Star y TKS Suite está estructurada bajo un patrón de Ingesta Asíncrona Desacoplada y Staging Contable. Su propósito es actuar como receptor de alta fidelidad de las órdenes operativas emitidas por la agencia, garantizando custodia completa de datos y continuidad del flujo comercial.

Principios de Diseño de la Plataforma

  • Preservación Fidedigna del Payload Crudo: Cada transmisión recibida se almacena de forma íntegra e inmutable en el registro de auditoría (raw_payload), salvaguardando la trazabilidad exacta de los datos emitidos por Medsys Star.
  • Staging Asíncrono y Auditoría Preventiva: Discrepancias comerciales, RUCs en trámite de actualización, variaciones en el cálculo de subtotales o ausencia del archivo PDF adjunto no impiden el ingreso de la transacción. El sistema acepta la orden en staging (HTTP 201/200) y marca automáticamente la bandera needs_review: true junto con el detalle en review_reason para su revisión por el equipo contable.
  • Separación del Momento de Facturación: La verificación formal de datos y la facturación definitiva se ejecutan de manera nativa dentro de TKS Suite al procesar la orden, no en la pasarela de ingesta.
  • Contrato Estructural Mínimo: Para asegurar máxima disponibilidad, el contrato requiere únicamente un Bearer Token autorizado, una estructura JSON válida y el identificador order.order_number.
  • Soporte Flexible de Estructura de Medios: La API acepta planes de medios multi-línea mediante la lista estándar items (recomendada para desglose detallado de pautas) así como estructuras de servicio único mediante item_detail, normalizando ambas de forma homogénea en la consola de pre-facturación.
1

Medsys Star

Genera la orden y transmite el payload JSON y PDF en Base64.

2

Edge API TKS

Autentica el token, valida order_number y resguarda el histórico inmutable.

3

Staging Contable

Contabilidad revisa advertencias señaladas y consolida la pauta para facturar.

4

Facturación Contable

Al procesarse y facturarse la orden, queda locked: true en el sistema.

Aislamiento y Unicidad por Agencia: El identificador order_number reside en un espacio de nombres determinado por la tupla (company_id, environment, order_number). Múltiples agencias vinculadas a la suite (por ejemplo, OMD y BBDO) operan de manera totalmente independiente y pueden procesar órdenes con numeraciones idénticas sin conflicto alguno.

1.2 Recepción de Importes e Impuestos (ITBMS)

TKS Suite opera como un receptor de órdenes y no interviene ni recalcula las liquidaciones realizadas por el sistema emisor (Medsys Star). Todos los importes se reciben y almacenan exactamente como vienen definidos en la orden:

  • Recepción Directa de Valores: Medsys Star transmite los montos resultantes de su propia liquidación (gross_cost, agency_fee, itbms_pct, itbms_amount y total). La API no impone fórmulas de cálculo al emisor.
  • Órdenes con y sin Impuesto: Los campos itbms_pct e itbms_amount son completamente opcionales. Si la orden no maneja impuesto (exenta o no gravada), se pueden enviar en 0 o simplemente omitirse del JSON.
  • Ingesta Tolerante sin Rechazos: Si entre los subtotales, ítems o total transmitido existiera alguna diferencia aritmética por redondeo o configuración propia del emisor, la orden nunca es rechazada. Ingresa directamente a staging con applied: true, registrándose la transacción fielmente y señalando cualquier observación para que el equipo contable de la agencia la atienda internamente en TKS Suite.

1.3 Catálogo Exhaustivo de Motivos de Auditoría (review_reason)

Cuando una transacción ingresa a staging con needs_review: true, el sistema documenta la causa en review_reason mediante el siguiente catálogo estándar:

Motivo (review_reason) Condición Disparadora Resolución Contable en TKS Suite
Diferencia en cálculo de total financiero Variación entre los subtotales/impuestos y el total transmitido. Contabilidad coteja y valida el monto en TKS Suite sin alterar la orden en Medsys Star.
RUC de cliente ausente o no estándar El RUC viene vacío o con formato no estándar. Se asigna el RUC homologado en accounting_overrides sin alterar Medsys Star.
Documento PDF excede 5 MB Archivo entre 5 MB y 10 MB (almacenado sin binario en storage). La orden se registra completa; el PDF puede ser consultado en Medsys Star.
Base64 de PDF no decodificable Cadena Base64 corrupta o incompleta. La orden se registra en staging; el soporte digital se actualiza posteriormente.
Revisión archivada por orden facturada Recepción de cambio sobre una orden ya facturada. La orden activa permanece inalterada; se gestiona ajuste contable o Nota de Crédito en Sage si aplica.
Reemplazada por orden {replaces_order_number} Orden sustitutiva formal de una orden previa. Se valida el ciclo de facturación y se tramita la Nota de Crédito de la orden anterior.

2. Autenticación, Seguridad y Ambientes

El acceso a los servicios de ingesta de TKS Suite se gestiona a través del estándar Bearer Token HTTP. Las credenciales emitidas son custodiadas bajo algoritmos criptográficos SHA-256 para asegurar máxima protección perimetral.

2.1 Gestión Transparente de Ambientes (Sandbox y Producción)

Tanto el ambiente de pruebas (Sandbox) como el entorno productivo oficial operan sobre la misma infraestructura homogénea en https://saas.tks.com.pa/functions/v1/external-orders. El enrutamiento de la transacción hacia el ambiente correspondiente se realiza de forma automática según la firma del token provisto:

  • Token de Sandbox (prefijo tks_sandbox_...): Enruta la información al espacio de pruebas y homologación de la agencia, permitiendo validar flujos sin impacto contable ni tributario.
  • Token de Producción (prefijo tks_live_...): Direcciona la información al entorno contable activo para su auditoría y posterior facturación.
Cabecera HTTP Formato Descripción
Authorization Bearer <API_TOKEN> Token de autorización provisto por TKS Suite, configurado para la compañía y ambiente.
Content-Type application/json Define el formato de codificación del cuerpo (application/json; charset=UTF-8).
Arquitectura Multi-Empresa: En TKS Suite, cada agencia de medios cuenta con una entidad corporativa propia (company_id) y credenciales dedicadas. Las cuotas de consumo, límites de tasa y aislamiento de datos se evalúan por token a nivel de cada compañía.
Gobernanza del Código de Agencia (agency.code): Cada token de acceso está enlazado a la agencia respectiva. Si el payload contiene el campo agency.code, el sistema verifica que coincida con la agencia asignada al token (retornando 403 Forbidden en caso de discrepancia). Si se omite agency.code o el bloque agency, el sistema asocia de forma automática la transacción a la entidad autenticada.

2.2 Solicitud, Asignación y Rotación de Tokens

Los Bearer Tokens son emitidos y administrados de forma centralizada por TKS Technology:

  • Token de Pruebas (Sandbox): Con prefijo tks_sandbox_<hash>. Opera sobre bases de datos de homologación; permite simular transmisiones completas y pruebas en Postman sin alterar la contabilidad real.
  • Token de Producción: Con prefijo tks_live_<hash>. Enruta directamente hacia la compañía contable activa en TKS Suite y Sage 50.
  • Rotación Zero-Downtime: Para renovar credenciales periódicamente o ante incidentes de seguridad, el equipo de TI de la agencia solicita la rotación formal a la mesa técnica ([email protected]). TKS Technology habilita un token secundario activo en paralelo durante una ventana de transición de 72 horas para que Medsys Star aplique la nueva credencial sin corte ni interrupción transaccional.

3. Idempotencia, Concurrencia y Capacidad de Transmisión

La pasarela de TKS Suite incorpora mecanismos para absorber tráfico masivo continuo, asegurar idempotencia ante retransmisiones de red y resolver condiciones de carrera con total determinismo:

3.1 Garantía de Idempotencia y Detección de Cambios

  • Control con Cabecera Explícita: Los clientes pueden incluir la cabecera Idempotency-Key: <clave_cliente>. Retransmisiones subsiguientes con la misma clave devolverán la respuesta original registrada con status: "duplicate".
  • Generación Criptográfica Automática: Cuando la cabecera es omitida, TKS Suite construye una clave compuesta incorporando order_number, budget.rev, event y el hash SHA-256 del contenido íntegro del payload (payloadHash).
  • Determinación de Duplicado vs. Actualización:
    • Contenido Idéntico: Si arriba una petición con el mismo número de orden y revisión cuyo hash de contenido coincide con el activo, se reconoce como entrega redundante y retorna HTTP 200 OK con status: "duplicate".
    • Contenido Modificado: Si los datos comerciales o financieros presentan cambios bajo el mismo rev, TKS Suite actualiza el espejo en base de datos, resguarda la nueva versión en el histórico inmutable y retorna HTTP 200 OK con status: "updated".
  • Preservación Histórica de Revisiones: Si arriba una versión con número de revisión (budget.rev) inferior al activo en base de datos, el sistema salvaguarda la información registrándola en la bitácora histórica con la bandera applied: false y señalando needs_review: true, respondiendo HTTP 200 OK con status: "archived_historical_revision".

3.2 Resolución Determinista de Concurrencia

En transmisiones concurrentes o ráfagas paralelas que compartan el mismo número de revisión, TKS Suite resuelve la precedencia evaluando el timestamp provisto en order.updated_at (o sent_at):

  • Timestamp Entrante Superior: La transacción actualiza el registro operativo activo en staging (applied: true, status: "updated").
  • Timestamp Entrante Inferior o Igual: La transacción se preserva como registro de auditoría en el histórico (applied: false, status: "archived_historical_revision") sin sobreescribir el estado vigente.

Este mecanismo previene que variaciones de latencia en la red ocasionen inconsistencias durante procesos de migración o sincronizaciones masivas.

3.3 Capacidad de Transmisión y Soporte de Ráfaga (Burst Capacity)

La API opera con una ventana deslizante de 60 segundos con límite de 120 peticiones por minuto por compañía, con capacidad de ráfaga completa (full burst). La arquitectura tolera hasta 120 llamadas simultáneas o en paralelo dentro del minuto sin encolamiento forzado.

Esto permite a Medsys Star transferir lotes de más de 100 órdenes continuas con fluidez. El estado HTTP 429 se activa únicamente si la sumatoria de peticiones dentro de la ventana de 60 segundos excede el límite asignado.

Cabecera HTTP de Respuesta Descripción Técnica
X-RateLimit-Limit Cuota máxima permitida en la ventana deslizante (fijo en 120).
X-RateLimit-Remaining Peticiones disponibles para el cliente en la ventana actual.
X-RateLimit-Reset Timestamp UNIX en segundos para el restablecimiento de la cuota.
Retry-After Tiempo de espera sugerido en segundos en caso de recibir un HTTP 429 Too Many Requests (60 segundos).

3.4 Orden de Entrega de Eventos (Event Ordering)

En redes distribuidas, variaciones imprevistas de latencia pueden ocasionar que un evento ORDER_UPDATED arribe antes que el ORDER_CREATED original:

  • Ingesta Tolerante sin Fricción: Si TKS Suite recibe un evento ORDER_UPDATED con un order_number que no existe previamente en la base de datos, el sistema crea la orden automáticamente en staging contable con status: "created" y applied: true.
  • Cero Bloqueos Transaccionales: No se requiere retransmisión forzada del evento inicial ni se produce error 404 o 409, garantizando fluidez operativa y tolerancia ante entregas asíncronas desordenadas.

3.5 Política de Reintentos y Backoff Exponencial

Ante respuestas transitorias de red o capacidad (códigos HTTP 429, 500 o 503), el cliente de Medsys Star debe aplicar una política de reintentos con Backoff Exponencial y Jitter aleatorio:

  • Intervalos Recomendados: 1s, 2s, 4s, 8s (máximo 5 reintentos).
  • Respeto a Retry-After: Si la pasarela responde HTTP 429 Too Many Requests, el cliente debe esperar estrictamente los segundos indicados en la cabecera Retry-After antes del siguiente envío.
  • Garantía de Idempotencia: Gracias a la capa de idempotencia (por cabecera Idempotency-Key o hash criptográfico del payload), los reintentos automáticos son completamente seguros y no generarán duplicados ni inconsistencias en base de datos.

Estructura de Respuesta ante Límite de Tasa (HTTP 429 Too Many Requests):

{
  "error": "Límite de tasa excedido. Se permite un máximo de 120 peticiones por minuto.",
  "retry_after_seconds": 35
}

4. Especificación de Endpoints

4.1 Consulta de Estado y Bloqueo Fiscal de Orden

GET https://saas.tks.com.pa/functions/v1/external-orders?order_number={numero}

Permite a Medsys Star consultar en tiempo real el ciclo de vida de una orden, su estado contable y verificar si ya fue emitida en Factura Electrónica (locked: true).

Ejemplo de Respuesta HTTP 200 OK:

{
  "order_number": "50230",
  "billing_status": "pending",
  "locked": false,
  "invoice_number": null,
  "cufe": null,
  "invoiced_at": null,
  "credit_status": "none",
  "credited_amount": 0,
  "stored_rev": 0,
  "needs_review": false,
  "review_reason": null
}
Campo Tipo Valores Posibles y Descripción Técnica
order_number string Identificador de la orden de compra consultada.
billing_status string pending: En staging contable, disponible para auditoría o pre-facturación.
consolidated: Asociada a un lote de facturación agrupado.
invoiced: Orden procesada y facturada formalmente en el sistema contable.
cancelled: Orden formalmente anulada en fase de staging.
locked boolean true = Orden facturada. Medsys Star debe restringir modificaciones locales.
invoice_number string | null Número oficial asignado a la factura emitida (ej. FE-01-0000000104).
cufe string | null Identificador o código de control de la factura emitida (opcional).
invoiced_at string | null Timestamp ISO-8601 de facturación (ej. 2026-10-21T14:30:00Z).
credit_status string none: Sin notas de crédito asociadas.
partial: Nota de crédito parcial aplicada en TKS Suite.
total: Nota de crédito total aplicada (anulación de la orden).
credited_amount number Monto total acreditado mediante Notas de Crédito vinculadas.
stored_rev integer Número de revisión activa registrada en el espejo contable de TKS Suite.
needs_review boolean Indica si la transacción presenta advertencias que requieren revisión por el equipo contable.
review_reason string | null Detalle descriptivo de las observaciones señaladas para el proceso contable.

4.2 Ingesta y Actualización de Órdenes

POST https://saas.tks.com.pa/functions/v1/external-orders

Transmite la orden con sus datos de agencia, cliente, ítems de medios, finanzas y archivo PDF de respaldo. El único campo mandatorio para la ingesta es order.order_number.

Ejemplo de Payload JSON (Orden de Medios con Múltiples Servicios):

{
  "event": "ORDER_CREATED",
  "sent_at": "2026-10-20T18:00:00Z",
  "agency": {
    "code": "OMD",
    "name": "OMD Centroamérica"
  },
  "budget": {
    "code": "BUD-2026-OMD-009",
    "rev": 0,
    "date": "2026-10-20",
    "campaign": "Campaña Navideña McCafé 2026",
    "brand": "McCafé",
    "period": {
      "start": "2026-11-01",
      "end": "2026-12-31"
    }
  },
  "client": {
    "code": "CLI-MCD-01",
    "name": "Arcos Dorados Panamá S.A.",
    "ruc": "155667788-2-2020",
    "dv": "45",
    "email": "facturas.panama@arcosdorados.com",
    "payment_terms_days": 30
  },
  "order": {
    "order_number": "50230",
    "status": "ACTIVA",
    "updated_at": "2026-10-20T18:00:00Z",
    "concept": "Compra",
    "media_type": "TELEVISION",
    "submedia_type": "SPOT PRIME TIME",
    "provider": {
      "code": "PROV-MEDCOM",
      "name": "Corporación Medcom Panamá S.A.",
      "ruc": "45678-1-123456",
      "dv": "08",
      "email": "facturacion@medcom.com.pa"
    },
    "items": [
      {
        "service_description": "15 Spots Telemetro Prime Time 30s",
        "purchase_format": "ROTATIVO",
        "version": "Navidad V1",
        "ad_units": 15,
        "unit_cost": 200.00,
        "gross_cost": 3000.00,
        "itbms_pct": 7.00
      },
      {
        "service_description": "10 Spots RPC TV Rotativo 30s",
        "purchase_format": "ROTATIVO",
        "version": "Navidad V1",
        "ad_units": 10,
        "unit_cost": 200.00,
        "gross_cost": 2000.00,
        "itbms_pct": 7.00
      }
    ],
    "financials": {
      "currency": "USD",
      "gross_cost": 5000.00,
      "agency_fee": 0.00,
      "itbms_pct": 7.00,
      "itbms_amount": 350.00,
      "total": 5350.00
    },
    "personnel": {
      "planner": "Carlos Medina",
      "buyer": "Valeria Rios",
      "account_director": "Marissa Solano"
    },
    "custom_fields": {
      "product_code": "MCCAFE-NOV-DIC",
      "cost_center": "CC-PAN-MKT-01",
      "contract_ref": "MEDCOM-2026-998"
    },
    "replaces_order_number": null,
    "pdf": {
      "filename": "OC-50230-McCafe-OMD.pdf",
      "content_base64": "JVBERi0xLjQKJUZpbGUgY29udGVudCBkZW1v..."
    }
  }
}
Campo Tipo de Dato Especificación y Comportamiento
order.order_number string (obligatorio) Identificador unívoco de la orden de medios emitido por Medsys Star. Único campo mandatorio para la ingesta.
event string (opcional) Tipo de evento (ORDER_CREATED, ORDER_UPDATED, ORDER_CANCELLED). Para cancelaciones (ORDER_CANCELLED), los bloques auxiliares (budget, client, financials, items) son opcionales, requiriéndose únicamente order.order_number.
budget.rev number | string (opcional) Número de revisión de la orden. Se admite formato entero o string numérico (ej. 0 o "0"); el servidor lo procesa y devuelve normalizado como entero en sus respuestas.
order.status string (opcional) Estado operativo emitido por el sistema fuente (ej. ACTIVA, MODIFICADA, ANULADA).
order.concept string (opcional) Concepto comercial (ej. Compra, Agency Fee, Producción).
order.items / order.item_detail array | object (opcional) Estructura de servicios. Se admite lista multi-línea (items) o servicio único (item_detail), normalizándose en la consola contable.
order.replaces_order_number string | null (opcional) Referencia a una orden previa a la cual esta nueva transacción sustituye formalmente.
client.ruc y dv string (opcional) Identificación tributaria provista por la agencia. Se preserva íntegra tal como se recibe.
client.email string (opcional) Dirección de contacto comercial para notificaciones y facturación.
financials.* number | string (opcional) Montos de la orden. Se admiten valores numéricos o cadenas numéricas (ej. 5000.00 o "5000.00").
order.pdf object | null (opcional) Documento de respaldo digital. Si se incluye el objeto pdf, debe contener filename y content_base64. Se recomienda un tamaño máximo de 5 MB en archivo binario (~6.7 MB codificado en Base64).

Gestión Inteligente de Almacenamiento: Si el documento se sitúa entre ~5 MB y ~7.5 MB (dentro del límite de transporte HTTP de 10 MB), la transacción se procesa exitosamente en staging, registrándose sin persistir el archivo binario (pdf_stored: false) y señalando needs_review: true.

Protocolo ante Cargas Excedentes (HTTP 413): La pasarela HTTP cuenta con un límite físico de 10 MB por llamada. Si una solicitud supera este umbral retornando HTTP 413, el cliente de integración debe reintentar de inmediato la transmisión omitiendo el bloque pdf (o configurándolo como "pdf": null), asegurando el ingreso inmediato de la orden al staging contable.

Catálogo de Estados de Respuesta POST:

Código HTTP Valor de status Descripción del Resultado
HTTP 201 Created created Orden registrada exitosamente por primera vez en el staging contable (applied: true).
HTTP 200 OK updated Actualización exitosa del registro activo mediante una nueva versión o modificación de datos.
HTTP 200 OK duplicate Mensaje idéntico previamente procesado (entrega idempotente confirmada sin alteración en base de datos).
HTTP 200 OK archived_historical_revision Revisión con budget.rev o timestamp anterior a la versión activa; archivada en el histórico de auditoría con applied: false.
HTTP 200 OK revision_recorded_order_locked Orden ya facturada (locked: true); transacción registrada en histórico con applied: false y notificada para ajuste contable o Nota de Crédito.

Estructura de Respuesta Exitosa (HTTP 201 Created / 200 OK):

{
  "status": "created",
  "id": "f5c696bf-54df-4edb-9bb6-0062209e5ea5",
  "revision_id": "dd874da8-1d98-44d7-9533-0a3bdf39eafe",
  "order_number": "50230",
  "rev": 0,
  "locked": false,
  "needs_review": false,
  "review_reason": null,
  "change_class": "none",
  "changed_fields": [],
  "pdf_stored": true,
  "idempotency_key": "50230-0-ORDER_CREATED-a1b2c3d4",
  "environment": "production"
}

Estructura de Error 400 Bad Request:

Emitida exclusivamente ante un cuerpo JSON con sintaxis no parseable o ante la ausencia del identificador obligatorio order.order_number. El atributo field es null en errores generales de sintaxis:

{
  "error": "El campo order.order_number es obligatorio para identificar la orden",
  "field": "order.order_number"
}

5. Ciclo de Facturación, Ajustes Contables y Cancelaciones

Protección de Órdenes Facturadas: Cuando una orden alcanza el estado de facturación formal en TKS Suite, pasa a billing_status: "invoiced" y adquiere el estado locked: true. A partir de este momento, queda protegida contra sobreescrituras automáticas para mantener la integridad contable del registro emitido.
  • Inmutabilidad del Registro Facturado: Ningún mensaje externo posterior sobreescribe directamente los montos o datos de una orden ya facturada.
  • Custodia Transaccional en Órdenes Facturadas: Toda actualización enviada sobre una orden facturada es aceptada (HTTP 200 OK con status: "revision_recorded_order_locked"), resguardada en el histórico con applied = false y notificada al área contable (needs_review: true) para su correspondiente ajuste o gestión mediante Nota de Crédito.

5.1 Capa de Ajustes Contables (accounting_overrides)

Durante la auditoría previa a la facturación, los especialistas contables pueden incorporar ajustes (tales como RUC homologado, centro de costos o razón social formal). TKS Suite administra estos parámetros en una capa desacoplada (accounting_overrides).

  • Independencia del Espejo: La recepción de eventos ORDER_UPDATED sincroniza los datos operativos de medios sin alterar ni sobreescribir los ajustes manuales definidos por contabilidad.
  • Prevalencia en la Facturación: Al formalizar la factura, el sistema toma con prioridad autoritativa los valores presentes en accounting_overrides, garantizando que el documento contable concuerde con los catálogos validados.

5.2 Protocolo de Sustitución de Órdenes (replaces_order_number)

Cuando una orden emitida en Medsys Star tiene por objeto sustituir formalmente a una orden anterior que ya completó su ciclo de facturación, se indica mediante order.replaces_order_number:

  • Integridad del Historial: La factura original previamente emitida en el sistema no se elimina ni se revierte de forma automática, preservando el histórico contable.
  • Gestión en TKS Suite: La orden original es etiquetada automáticamente con needs_review: true y la observación "Reemplazada por orden {nueva_orden}", requiriendo la gestión de la Nota de Crédito correspondiente en Sage / TKS Suite.
  • La nueva orden ingresa a staging contable como transacción activa para su correspondiente proceso de facturación.

5.3 Ciclo de Vida del Evento de Cancelación (ORDER_CANCELLED)

Al transmitirse una anulación mediante el evento ORDER_CANCELLED:

  • Órdenes en Staging Contable (billing_status != 'invoiced'): La orden transiciona a estado comercial status: "ANULADA" y estado de facturación billing_status: "cancelled", retornando HTTP 200 OK con status: "updated".
  • Órdenes Facturadas (locked: true, billing_status == 'invoiced'): Al existir una factura formalmente emitida, la solicitud se resguarda en el histórico (applied: false), señalando needs_review: true con el motivo "Solicitud de anulación recibida posterior a facturación. Requiere Nota de Crédito" y respondiendo HTTP 200 OK con status: "revision_recorded_order_locked".

6. Catálogo de Respuestas HTTP

Código Categoría Descripción y Comportamiento del Sistema
201 Created Éxito Orden registrada exitosamente en staging contable. Lista para revisión y posterior facturación.
200 OK Éxito Petición procesada: actualización aplicada, entrega idempotente confirmada o versión archivada en histórico.
400 Bad Request Error de Cliente Estructura JSON inválida o ausencia del identificador obligatorio order.order_number. Retorna { error, field }.
401 Unauthorized Seguridad Token de autenticación ausente, expirado o con firma no reconocida en la cabecera Authorization.
403 Forbidden Seguridad El token provisto no posee permisos para la agencia o compañía asociada a la orden.
404 Not Found Recurso La orden consultada en el método GET no existe en el espacio de la compañía y ambiente evaluados.
413 Payload Too Large Transporte El cuerpo total de la solicitud supera los 10 MB. El cliente debe retransmitir la orden omitiendo el archivo adjunto ("pdf": null) para asegurar el ingreso de la transacción a staging.
429 Too Many Requests Capacidad Límite de tasa alcanzado (máximo 120 peticiones por minuto en ventana deslizante de 60 segundos). Retorna { error, retry_after_seconds } junto a las cabeceras Retry-After y X-RateLimit-*.
500 Internal Server Error Servidor Condición anómala temporal en el servidor. Se recomienda reintentar mediante backoff exponencial.
503 Service Unavailable Servidor Servicio no disponible momentáneamente por ventana de mantenimiento o saturación transitoria.
Filosofía de Resiliencia en la Pasarela: La arquitectura de TKS Suite reserva los códigos 4xx exclusivamente para fallas estructurales o de seguridad que impiden el procesamiento de la llamada (autenticación inválida, JSON no parseable o violación de límites de red). Las inconsistencias de datos comerciales o fiscales se gestionan mediante el ciclo de vida contable en staging (needs_review y billing_status), garantizando la continuidad transaccional entre las plataformas de forma confiable y predecible.