API DeCA

CountryCode

string · pattern: ^[A-Z]{2}$

Código del país en dos letras; se normaliza a mayúsculas. El formato no comprueba la pertenencia al catálogo ISO 3166-1.

Ejemplo: ES

PositiveDecimal

string · pattern: ^(?!0+(?:\.0+)?$)(?:…

Decimal positivo como string, con punto, sin coma ni notación científica. Hasta 15 cifras enteras y 6 decimales. La respuesta elimina los ceros decimales finales.

Ejemplo: 1850.000

WeightKilograms

oneOf
Debe cumplirse exactamente una alternativa.

Tabla de alternativas

AlternativaCriterios de selección
type = string
type = number
Propiedades de Alternativa 1:
PositiveDecimal · pattern: ^(?!0+(?:\.0+)?$)(?:…

Decimal positivo como string, con punto, sin coma ni notación científica. Hasta 15 cifras enteras y 6 decimales. La respuesta elimina los ceros decimales finales.

Ejemplo: 1850.000

Address

street
​string · minLength: 1 · maxLength: 255 · obligatorio

Vía y número del domicilio.

postal_code
​string · minLength: 1 · maxLength: 255 · obligatorio

Código postal como texto para conservar ceros iniciales.

city
​string · minLength: 1 · maxLength: 255 · obligatorio

Localidad del domicilio.

country
​CountryCode · pattern: ^[A-Z]{2}$ · obligatorio

Código del país en dos letras; se normaliza a mayúsculas. El formato no comprueba la pertenencia al catálogo ISO 3166-1.

Ejemplo: ES

Shipper

Cargador contractual; puede ser distinto del almacén de origen y del cliente de DeCA.
name
​string · minLength: 1 · maxLength: 255 · obligatorio

Nombre o razón social.

tax_country
​CountryCode · pattern: ^[A-Z]{2}$ · obligatorio

Código del país en dos letras; se normaliza a mayúsculas. El formato no comprueba la pertenencia al catálogo ISO 3166-1.

Ejemplo: ES
tax_id
​string · minLength: 1 · maxLength: 32 · obligatorio

Identificador fiscal normalizado a mayúsculas y sin espacios ni guiones; la longitud se comprueba tras normalizar. En España se validan formato y carácter de control de DNI, NIE y NIF de entidades (CIF). Los NIF especiales K, L y M se comprueban solo por formato: prefijo, siete caracteres alfanuméricos y letra final. Para otros países se exige formato alfanumérico sin verificar su control fiscal. Esta validación no acredita existencia ni alta censal.

​Address · obligatorio

Carrier

Transportista que realiza efectivamente el transporte, incluido el subcontratado.
name
​string · minLength: 1 · maxLength: 255 · obligatorio

Nombre o razón social.

tax_country
​CountryCode · pattern: ^[A-Z]{2}$ · obligatorio

Código del país en dos letras; se normaliza a mayúsculas. El formato no comprueba la pertenencia al catálogo ISO 3166-1.

Ejemplo: ES
tax_id
​string · minLength: 1 · maxLength: 32 · obligatorio

Identificador fiscal normalizado a mayúsculas y sin espacios ni guiones; la longitud se comprueba tras normalizar. En España se validan formato y carácter de control de DNI, NIE y NIF de entidades (CIF). Los NIF especiales K, L y M se comprueban solo por formato: prefijo, siete caracteres alfanuméricos y letra final. Para otros países se exige formato alfanumérico sin verificar su control fiscal. Esta validación no acredita existencia ni alta censal.

​object

Domicilio opcional del transportista. Si se envía, debe incluir todos los campos de Address; el artículo 6 no lo exige como dato mínimo.

TransportLocation

place
​string · minLength: 1 · maxLength: 255 · obligatorio

Lugar real de carga o descarga, identificable por nombre de la instalación o dirección. Junto con city y country debe permitir identificarlo claramente; street y postal_code son opcionales. No se exige identificar a la empresa destinataria como dato mínimo.

city
​string · minLength: 1 · maxLength: 255 · obligatorio

Localidad.

country
​string · enum · obligatorio

El alcance inicial cubre transportes interiores en España; no sustituye al CMR internacional.

Valores admitidos:
ES
street
​string · minLength: 1 · maxLength: 255

Vía y número opcionales del lugar de carga o descarga para precisar su ubicación.

postal_code
​string · minLength: 1 · maxLength: 255

Código postal opcional del lugar de carga o descarga, como texto para conservar ceros iniciales.

AlternativeMeasure

Otra magnitud cuando resulte difícil determinar el peso. Enviar esta magnitud o el peso, nunca ambas.
value
​PositiveDecimal · pattern: ^(?!0+(?:\.0+)?$)(?:… · obligatorio

Decimal positivo como string, con punto, sin coma ni notación científica. Hasta 15 cifras enteras y 6 decimales. La respuesta elimina los ceros decimales finales.

Ejemplo: 1850.000
unit
​string · minLength: 1 · maxLength: 255 · obligatorio

Unidad explícita de la magnitud, hasta 255 caracteres.

Ejemplo: palés

Goods

Naturaleza y peso de la mercancía, o magnitud alternativa cuando corresponda. Enviar exactamente una medida.
description
​string · minLength: 1 · maxLength: 2000 · obligatorio

Descripción de la naturaleza de la mercancía.

​WeightKilograms

Peso positivo en kg, como número JSON o texto decimal. Hasta 15 cifras enteras y 6 decimales. La respuesta normaliza a texto y conserva la precisión; el PDF muestra hasta 3 decimales, con coma decimal y puntos de miles. Usa texto decimal para evitar pérdida de precisión en valores grandes.

Ejemplo: 1850.5
​AlternativeMeasure

Otra magnitud cuando resulte difícil determinar el peso. Enviar esta magnitud o el peso, nunca ambas.

oneOf
Debe cumplirse exactamente una alternativa.

Tabla de alternativas

AlternativaCriterios de selección
type = object · Campos obligatorios: weight_kg
type = object · Campos obligatorios: alternative_measure
Propiedades de Alternativa 1:
​WeightKilograms · obligatorio

Peso positivo en kg, como número JSON o texto decimal. Hasta 15 cifras enteras y 6 decimales. La respuesta normaliza a texto y conserva la precisión; el PDF muestra hasta 3 decimales, con coma decimal y puntos de miles. Usa texto decimal para evitar pérdida de precisión en valores grandes.

Ejemplo: 1850.5
description
​string · minLength: 1 · maxLength: 2000

Descripción de la naturaleza de la mercancía.

​AlternativeMeasure

Otra magnitud cuando resulte difícil determinar el peso. Enviar esta magnitud o el peso, nunca ambas.

Vehicle

Vehículo efectivo; si hay remolque o semirremolque, informar sus dos campos juntos.
country
​CountryCode · pattern: ^[A-Z]{2}$ · obligatorio

Código del país en dos letras; se normaliza a mayúsculas. El formato no comprueba la pertenencia al catálogo ISO 3166-1.

Ejemplo: ES
registration
​string · minLength: 1 · maxLength: 20 · obligatorio

Matrícula normalizada a mayúsculas y sin espacios ni guiones. Para España se admite la matrícula ordinaria vigente, las provinciales anteriores y la serie especial E. Para otros países, entre 3 y 20 caracteres alfanuméricos.

Ejemplo: 4827 MNL
trailer_country
​CountryCode · pattern: ^[A-Z]{2}$

Código del país en dos letras; se normaliza a mayúsculas. El formato no comprueba la pertenencia al catálogo ISO 3166-1.

Ejemplo: ES
trailer_registration
​string · minLength: 1 · maxLength: 20

Matrícula del remolque o semirremolque, normalizada como la del tractor. Para España se exige la serie R. Para otros países, entre 3 y 20 caracteres alfanuméricos.

Ejemplo: R 5832 BCD
oneOf
Debe cumplirse exactamente una alternativa.

Tabla de alternativas

AlternativaCriterios de selección
type = object · Campos obligatorios: trailer_country, trailer_registration
type = object · Campos obligatorios: country, registration
Propiedades de Alternativa 1:
trailer_country
​CountryCode · pattern: ^[A-Z]{2}$ · obligatorio

Código del país en dos letras; se normaliza a mayúsculas. El formato no comprueba la pertenencia al catálogo ISO 3166-1.

Ejemplo: ES
trailer_registration
​string · minLength: 1 · maxLength: 20 · obligatorio

Matrícula del remolque o semirremolque, normalizada como la del tractor. Para España se exige la serie R. Para otros países, entre 3 y 20 caracteres alfanuméricos.

Ejemplo: R 5832 BCD
country
​CountryCode · pattern: ^[A-Z]{2}$

Código del país en dos letras; se normaliza a mayúsculas. El formato no comprueba la pertenencia al catálogo ISO 3166-1.

Ejemplo: ES
registration
​string · minLength: 1 · maxLength: 20

Matrícula normalizada a mayúsculas y sin espacios ni guiones. Para España se admite la matrícula ordinaria vigente, las provinciales anteriores y la serie especial E. Para otros países, entre 3 y 20 caracteres alfanuméricos.

Ejemplo: 4827 MNL

SpecialAuthorization

Autorización especial de circulación cuando sea necesaria. Omitir o enviar null si no procede.
number
​string · minLength: 1 · maxLength: 255 · obligatorio

Número o referencia de la autorización.

issuer
​string · minLength: 1 · maxLength: 255

Organismo emisor, si se informa.

CreateDocumentRequest

transport_date
​string · date · obligatorio

Fecha real del transporte en formato YYYY-MM-DD; no es el instante de creación del PDF.

​Shipper · obligatorio

Cargador contractual; puede ser distinto del almacén de origen y del cliente de DeCA.

​Carrier · obligatorio

Transportista que realiza efectivamente el transporte, incluido el subcontratado.

​TransportLocation · obligatorio
​TransportLocation · obligatorio
​Goods · obligatorio

Naturaleza y peso de la mercancía, o magnitud alternativa cuando corresponda. Enviar exactamente una medida.

​Vehicle · obligatorio

Vehículo efectivo; si hay remolque o semirremolque, informar sus dos campos juntos.

reference
​string | null · minLength: 1 · maxLength: 120 · pattern: ^[A-Za-z0-9-]+(?![\s…

Referencia propia opcional, única por organización y entorno e impresa en el PDF. Identifica los reintentos y permite consultar por referencia. No se libera al eliminar el documento.

​SpecialAuthorization

Autorización especial de circulación cuando sea necesaria. Omitir o enviar null si no procede.

observations
​string | null · maxLength: 4000

Observaciones que los intervinientes soliciten hacer constar en el documento.

​object | null

Objeto JSON opcional, conservado y devuelto sin modificación semántica. No se imprime en el PDF. Máximo 16 KiB al serializarlo y 8 niveles de profundidad.

DocumentResult

uuid
​string · uuid · obligatorio

UUID del documento emitido.

reference
​string | null · pattern: ^[A-Za-z0-9-]+(?![\s… · obligatorio

Referencia del cliente o null.

created_at
​string · date-time · obligatorio

Instante original de creación, en UTC.

url
​string · uri · obligatorio

URL HTTPS completa de descarga por QR, incluido su secreto. No registrar ni publicar.

​object · obligatorio
pdf_download_url
​string · uri · obligatorio

URL de descarga autenticada; requiere Bearer de la credencial propietaria dentro de 24 horas.

rectifies_uuid
​string | null · uuid · obligatorio

UUID rectificado o null en una emisión inicial.

​CreateDocumentRequest · obligatorio
​object | null · obligatorio

La misma metadata de la petición; null si no se proporcionó.

document_locale
​string · enum · obligatorio

Idioma del PDF elegido al emitirlo según la organización. Se conserva en el resultado; cambiar el idioma de la organización no modifica documentos existentes. No cambia campos JSON ni mensajes de error de la API.

Valores admitidos:
es
ca
gl
ca-valencia
eu
en
pt-pt
fr

DocumentSummary

uuid
​string · uuid · obligatorio
reference
​string | null · pattern: ^[A-Za-z0-9-]+(?![\s… · obligatorio
created_at
​string · date-time · obligatorio
transport_date
​string · date · obligatorio
rectifies_uuid
​string | null · uuid · obligatorio

DocumentList

​DocumentSummary[] · obligatorio
​object · obligatorio

ErrorResponse

​object[] · minItems: 1 · obligatorio

Todos los errores independientes detectados; sin datos de petición, secretos ni trazas.

RectifyDocumentRequest

Todos los datos corregidos del transporte. El documento anterior se identifica en la URL. Si se incluye reference, debe ser una referencia nueva para el documento rectificativo.
transport_date
​string · date · obligatorio

Fecha real del transporte en formato YYYY-MM-DD; no es el instante de creación del PDF.

​Shipper · obligatorio

Cargador contractual; puede ser distinto del almacén de origen y del cliente de DeCA.

​Carrier · obligatorio

Transportista que realiza efectivamente el transporte, incluido el subcontratado.

​TransportLocation · obligatorio
​TransportLocation · obligatorio
​Goods · obligatorio

Naturaleza y peso de la mercancía, o magnitud alternativa cuando corresponda. Enviar exactamente una medida.

​Vehicle · obligatorio

Vehículo efectivo; si hay remolque o semirremolque, informar sus dos campos juntos.

reference
​string | null · minLength: 1 · maxLength: 120 · pattern: ^[A-Za-z0-9-]+(?![\s…

Referencia nueva del documento rectificativo, opcional y única por organización y entorno. No reutilizar la referencia del documento identificado en la URL.

​SpecialAuthorization

Autorización especial de circulación cuando sea necesaria. Omitir o enviar null si no procede.

observations
​string | null · maxLength: 4000

Observaciones que los intervinientes soliciten hacer constar en el documento.

​object | null

Objeto JSON opcional, conservado y devuelto sin modificación semántica. No se imprime en el PDF. Máximo 16 KiB al serializarlo y 8 niveles de profundidad.

DeleteDocumentRequest

reason
​string · minLength: 1 · maxLength: 2000 · obligatorio

Motivo del error detectado al generar el documento.

confirm_not_delivered
​boolean · obligatorio

Debe ser true para eliminar: confirma que no se ha entregado al transportista ni al conductor. false devuelve 409 DOCUMENT_ALREADY_DELIVERED.

confirm_not_used
​boolean · obligatorio

Debe ser true para eliminar: confirma que no se ha utilizado en un transporte. false devuelve 409 DOCUMENT_ALREADY_USED.

DocumentStatus

status
​string · enum · obligatorio

Estado del documento. No incluye información del transporte, PDF, QR, metadata ni fechas.

Valores admitidos:
active
deleted

DemoTokenResult

token
​string · pattern: ^sk_demo_[0-9a-f]{64… · obligatorio

Puedes solicitar un token sk_demo_ sin una cuenta ni un alta de organización. Dura 24 horas desde su emisión y solo funciona desde la IP pública que lo solicitó. Cambiar de red o de IP requiere solicitar otro token.

expires_at
​string · date-time · obligatorio

Caducidad del token en UTC. Todos sus documentos y enlaces vencen en este instante.

document_locale
​string · enum · obligatorio

Idioma de los PDF de este token. Español por defecto.

Valores admitidos:
es
ca
gl
ca-valencia
eu
en
pt-pt
fr

DemoDocumentResult

La demo añade demo: true, expires_at, qr_url (alias de url) y pdf_url (alias de pdf_download_url). document_locale es el idioma elegido al solicitar el token (es por defecto). Los datos y PDF temporales quedan separados del archivo real y no se cifran como los documentos reales.
uuid
​string · uuid · obligatorio

UUID del documento emitido.

reference
​string | null · pattern: ^[A-Za-z0-9-]+(?![\s… · obligatorio

Referencia del cliente o null.

created_at
​string · date-time · obligatorio

Instante original de creación, en UTC.

url
​string · uri · obligatorio

URL HTTPS completa de descarga por QR, incluido su secreto. No registrar ni publicar.

​object · obligatorio
pdf_download_url
​string · uri · obligatorio

Puedes solicitar un token sk_demo_ sin una cuenta ni un alta de organización. Dura 24 horas desde su emisión y solo funciona desde la IP pública que lo solicitó. Cambiar de red o de IP requiere solicitar otro token.

rectifies_uuid
​string | null · uuid · obligatorio

UUID rectificado o null en una emisión inicial.

​CreateDocumentRequest · obligatorio
​object | null · obligatorio

La misma metadata de la petición; null si no se proporcionó.

document_locale
​string · enum · obligatorio

Idioma de los PDF de este token. Español por defecto.

Valores admitidos:
es
ca
gl
ca-valencia
eu
en
pt-pt
fr
demo
​boolean · enum · obligatorio

Solo en la demo; siempre true. No aparece en resultados de desarrollo o producción.

Valores admitidos:
true
expires_at
​string · date-time · obligatorio

Caducidad del token en UTC. Todos sus documentos y enlaces vencen en este instante.

qr_url
​string · uri · obligatorio

Solo en la demo; alias de url.

pdf_url
​string · uri · obligatorio

Solo en la demo; alias de pdf_download_url. Requiere el token demo y su IP.