Get CMR document in PDF format
GET/company/cmr/:service_code
Recupera el documento CMR (Carta de Porte Digital / eCMR) en formato PDF asociado a un servicio de transporte específico. El CMR es el documento legal obligatorio para el transporte internacional de mercancías por carretera según el Convenio CMR.
Objective
Permitir a las compañías descargar el documento eCMR oficial en formato PDF para su archivo, impresión o compartir con clientes y autoridades. El documento es generado por el servicio especializado ecmr_back y entregado como archivo binario.
Use Cases
- Una compañía necesita descargar el CMR para un envío que acaba de completarse
- Un cliente solicita el documento CMR oficial para su contabilidad
- Se requiere presentar el CMR a autoridades aduaneras en un control de transporte
- La compañía necesita archivar el CMR digitalmente por requisitos legales
Architecture Note
Este endpoint actúa como proxy hacia el servicio ecmr_back (microservicio especializado en gestión de documentos eCMR). El PDF es generado y entregado por ecmr_back, luego transmitido como stream binario al cliente.
Preconditions:
- User must be authenticated and exist in database
- User must belong to a valid company
- A delivery with the given service_code must exist for the company
- The delivery must have an associated eCMR document
Error Codes:
USER_NOT_FOUND(401): Authenticated user does not exist in databaseAUTHORIZATION_TOKEN_REQUIRED(401): Token missing or invalid in request headersCOMPANY_NOT_FOUND(Internal): User has no associated company (rejected before API response)NOT_FOUND(404): Delivery not found for this company/service_codeFILE_NOT_AVAILABLE(404): CMR PDF file not available in ecmr_back service- Service error (503): ecmr_back service unavailable or timeout
Validation Flow:
flowchart TD
A[Receive Request] --> B{User Authenticated?}
B -->|No| C[401 USER_NOT_FOUND]
B -->|Yes| D{Token Present?}
D -->|No| E[401 AUTHORIZATION_TOKEN_REQUIRED]
D -->|Yes| F{User Exists in DB?}
F -->|No| G[401 USER_NOT_FOUND]
F -->|Yes| H{Company Found?}
H -->|No| I[401 COMPANY_NOT_FOUND]
H -->|Yes| J{Delivery Exists?}
J -->|No| K[404 NOT_FOUND]
J -->|Yes| L{Call ecmr_back}
L -->|Success| M[200 PDF Binary]
L -->|File Not Found| N[404 FILE_NOT_AVAILABLE]
L -->|Service Error| O[503 Service Error]
Request
Responses
- 200
- 401
- 404
- 503
Documento CMR en formato PDF descargado exitosamente. El archivo es transmitido como stream binario directo desde el servicio ecmr_back.
Response Headers
Tipo de contenido del archivo
Indica que el archivo debe ser descargado como adjunto con el nombre del archivo. Formato: attachment; filename="{service_code}.pdf"
Tamaño del archivo PDF en bytes
Tipo de codificación (siempre identity para este endpoint)
Directiva de caché para evitar transformaciones
No autorizado - El usuario no está autenticado o el token es inválido. Posibles códigos de error:
USER_NOT_FOUND: El usuario autenticado no existe en la base de datosAUTHORIZATION_TOKEN_REQUIRED: Falta el token en los headers o es inválido
No encontrado - No existe un CMR disponible para el service_code proporcionado. Posibles causas:
- El código de servicio es incorrecto o no pertenece a esta compañía
- El delivery existe pero aún no se ha generado el CMR
- El archivo CMR fue eliminado o no está disponible en ecmr_back Códigos de error:
NOT_FOUND: El delivery no existe para esta compañíaFILE_NOT_AVAILABLE: El CMR no está disponible en ecmr_back
Servicio no disponible - Error al comunicarse con el servicio ecmr_back o timeout en la generación del PDF. Posibles causas:
- El servicio ecmr_back no está disponible
- Timeout esperando la generación del PDF (30 segundos máximo)
- Error interno en el servicio ecmr_back