Saltar al contenido principal

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 database
  • AUTHORIZATION_TOKEN_REQUIRED (401): Token missing or invalid in request headers
  • COMPANY_NOT_FOUND (Internal): User has no associated company (rejected before API response)
  • NOT_FOUND (404): Delivery not found for this company/service_code
  • FILE_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

Documento CMR en formato PDF descargado exitosamente. El archivo es transmitido como stream binario directo desde el servicio ecmr_back.

Response Headers
    Content-Type

    Tipo de contenido del archivo

    Content-Disposition

    Indica que el archivo debe ser descargado como adjunto con el nombre del archivo. Formato: attachment; filename="{service_code}.pdf"

    Content-Length

    Tamaño del archivo PDF en bytes

    Content-Encoding

    Tipo de codificación (siempre identity para este endpoint)

    Cache-Control

    Directiva de caché para evitar transformaciones