Asociar guías hijas a una guía master

Permite asociar uno o más lotes de guías a una guía master existente.

POST /guias-master/hijas v1.0.0
Autenticación
Bearer Token
Ambiente
Servidor de Desarrollo (DEV), Servidor de Pruebas, Servidor de Producción

Descripción

Permite asociar uno o más lotes de guías a una guía master existente.

⚠️ Precondición: Antes de asociar un lote, verificar mediante GET /guias-hijas/{idLote} que guiasProceso = 0.

Se pueden asociar hasta 5 lotes por solicitud. Para más de 5 lotes, realizar múltiples llamadas.

Rate limiting: 15 asociaciones por minuto por cliente.


Paso 5 de 6 en el flujo de nacionalización:

  1. Autenticación
  2. POST /guias-hijas
  3. GET /guias-hijas/{idLote} → verificar guiasProceso = 0
  4. POST /guias-master
  5. POST /guias-master/hijas ← AQUÍ
  6. POST /guias-master/nacionalizacion

🔐 Autenticación requerida

HeaderAuthorization: Bearer <access_token>
Token (TEST)POST https://api-test.coordinadora.tech/oauth/token
Token (PROD)POST https://api.coordinadora.tech/oauth/token
MétodoBasic Auth — Client ID como usuario, Client Secret como contraseña
BodyContent-Type: application/x-www-form-urlencoded · grant_type=client_credentials
Vigencia3600 segundos
HTTP 401Token no enviado, inválido o expirado

Las credenciales (Client ID y Client Secret) son entregadas por el Departamento de Tecnología de Coordinadora.

Quick Start

  1. Obtén tus credenciales de acceso (Bearer Token).
  2. Selecciona el ambiente y completa los parámetros requeridos.
  3. Envía la solicitud y procesa la respuesta.

Ejemplo rápido

Generando ejemplo…

Endpoint

POST /guias-master/hijas

Base URL https://api-dev.coordinadora.tech/nacionalizacion

Parámetros

Sin parámetros declarados.

Body *

{
    "$ref": "#/components/schemas/AsociacionGuiasHijasRequest"
}

Ejemplo de request

[]

Respuesta

200
Guías asociadas exitosamente.
{
    "isError": false,
    "data": {
        "guia_master": "MAWB-12345678",
        "total_guias_asociadas": 150,
        "total_peso_kg": 345.67,
        "lotes": [
            {
                "lote": "b7e6a3c6-3392-4d23-8f0a-1725841e7e4e",
                "guias": 100
            },
            {
                "lote": "264081134-1776785291254-9d6c97",
                "guias": 50
            }
        ],
        "mensaje": "Guías asociadas exitosamente",
        "tiempoProcesamiento": "123ms"
    }
}

Ejemplo de respuesta

200 Guías asociadas exitosamente.
{
    "isError": false,
    "data": {
        "guia_master": "MAWB-12345678",
        "total_guias_asociadas": 150,
        "total_peso_kg": 345.67,
        "lotes": [
            {
                "lote": "b7e6a3c6-3392-4d23-8f0a-1725841e7e4e",
                "guias": 100
            },
            {
                "lote": "264081134-1776785291254-9d6c97",
                "guias": 50
            }
        ],
        "mensaje": "Guías asociadas exitosamente",
        "tiempoProcesamiento": "123ms"
    }
}

Errores

400
Uno o más de los IDs de lote proporcionados no existen o son inválidos.
{
    "isError": true,
    "data": {
        "ok": "Datos de entrada inválidos",
        "mensaje": "Los siguientes lotes no existen o no tienen guías hijas: LOTE-INVALIDO-1",
        "detalle": "Uno o más lotes no fueron encontrados."
    }
}
401
No autorizado. El token de autenticación es inválido, ha expirado o no fue provisto.
Jwt is expired
404
La guía master especificada no fue encontrada.
{
    "isError": true,
    "data": {
        "ok": "La guía master no existe",
        "mensaje": "La guía master no existe",
        "detalle": "No se encontró la guía master con el ID proporcionado."
    }
}
409
Conflicto. La operación no se puede completar por una regla de negocio.
{
    "isError": true,
    "data": {
        "ok": "No se pueden asociar {totalNuevas} hijas. Ya hay {totalActual}. Límite {limite}",
        "mensaje": "No se pueden asociar {totalNuevas} hijas. Ya hay {totalActual}. Límite {limite}",
        "detalle": "Se ha superado el número máximo de guías que se pueden asociar a una master."
    }
}
500
Error interno del servidor.
{
    "isError": true,
    "data": {
        "ok": "Error interno del servidor",
        "mensaje": "Error interno del servidor",
        "detalle": "Ocurrió un error inesperado al procesar la solicitud."
    }
}