API DeCA

CountryCode

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

Código de país de dúas letras; normalízase a maiúsculas. O formato non comproba a pertenza ao catálogo ISO 3166-1.

Exemplo: ES

PositiveDecimal

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

Decimal positivo como string, con punto, sen coma nin notación científica. Ata 15 cifras enteiras e 6 decimais. A resposta elimina os ceros decimais finais.

Exemplo: 1850.000

WeightKilograms

oneOf
Debe cumprirse exactamente unha alternativa.

Táboa de alternativas

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

Decimal positivo como string, con punto, sen coma nin notación científica. Ata 15 cifras enteiras e 6 decimais. A resposta elimina os ceros decimais finais.

Exemplo: 1850.000

Address

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

Vía e número do domicilio.

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

Código postal como texto para conservar os ceros iniciais.

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

Localidade do domicilio.

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

Código de país de dúas letras; normalízase a maiúsculas. O formato non comproba a pertenza ao catálogo ISO 3166-1.

Exemplo: ES

Shipper

Cargador contractual; pode ser diferente do almacén de orixe e do cliente de DeCA.
name
​string · minLength: 1 · maxLength: 255 · obrigatorio

Nome ou razón social.

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

Código de país de dúas letras; normalízase a maiúsculas. O formato non comproba a pertenza ao catálogo ISO 3166-1.

Exemplo: ES
tax_id
​string · minLength: 1 · maxLength: 32 · obrigatorio

Identificador fiscal normalizado a maiúsculas sen espazos nin guións; a lonxitude compróbase tras normalizar. En España valídanse formato e carácter de control de DNI, NIE e NIF de entidades (CIF). Os NIF especiais K, L e M compróbanse só polo formato: prefixo, sete caracteres alfanuméricos e letra final. Para outros países esíxese formato alfanumérico sen verificar o control fiscal. Esta validación non acredita existencia nin alta censal.

​Address · obrigatorio

Carrier

Transportista que realiza efectivamente o transporte, incluído o subcontratado.
name
​string · minLength: 1 · maxLength: 255 · obrigatorio

Nome ou razón social.

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

Código de país de dúas letras; normalízase a maiúsculas. O formato non comproba a pertenza ao catálogo ISO 3166-1.

Exemplo: ES
tax_id
​string · minLength: 1 · maxLength: 32 · obrigatorio

Identificador fiscal normalizado a maiúsculas sen espazos nin guións; a lonxitude compróbase tras normalizar. En España valídanse formato e carácter de control de DNI, NIE e NIF de entidades (CIF). Os NIF especiais K, L e M compróbanse só polo formato: prefixo, sete caracteres alfanuméricos e letra final. Para outros países esíxese formato alfanumérico sen verificar o control fiscal. Esta validación non acredita existencia nin alta censal.

​object

Domicilio opcional do transportista. Se se envía, debe incluír todos os campos de Address; o artigo 6 non o esixe como dato mínimo.

TransportLocation

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

Lugar real de carga ou descarga, identificable polo nome da instalación ou o enderezo. Con city e country debe permitir identificalo claramente; street e postal_code son opcionais. A identidade da empresa destinataria non é un dato mínimo obrigatorio.

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

Localidade.

country
​string · enum · obrigatorio

O alcance inicial abrangue transportes interiores en España; non substitúe o CMR internacional.

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

Vía e número opcionais do lugar de carga ou descarga para precisar a súa localización.

postal_code
​string · minLength: 1 · maxLength: 255

Código postal opcional do lugar de carga ou descarga, como texto para conservar ceros iniciais.

AlternativeMeasure

Outra magnitude cando sexa difícil determinar o peso. Envía esta magnitude ou o peso, nunca ambas.
value
​PositiveDecimal · pattern: ^(?!0+(?:\.0+)?$)(?:… · obrigatorio

Decimal positivo como string, con punto, sen coma nin notación científica. Ata 15 cifras enteiras e 6 decimais. A resposta elimina os ceros decimais finais.

Exemplo: 1850.000
unit
​string · minLength: 1 · maxLength: 255 · obrigatorio

Unidade explícita da magnitude, ata 255 caracteres.

Exemplo: palés

Goods

Natureza e peso da mercadoría, ou magnitude alternativa cando corresponda. Envía exactamente unha medida.
description
​string · minLength: 1 · maxLength: 2000 · obrigatorio

Descrición da natureza da mercadoría.

​WeightKilograms

Peso positivo en kg, como número JSON ou texto decimal. Ata 15 cifras enteiras e 6 decimais. A resposta normaliza a texto e conserva a precisión; o PDF mostra ata 3 decimais, con coma decimal e puntos de milleiros. Usa texto decimal para evitar perda de precisión en valores grandes.

Exemplo: 1850.5
​AlternativeMeasure

Outra magnitude cando sexa difícil determinar o peso. Envía esta magnitude ou o peso, nunca ambas.

oneOf
Debe cumprirse exactamente unha alternativa.

Táboa de alternativas

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

Peso positivo en kg, como número JSON ou texto decimal. Ata 15 cifras enteiras e 6 decimais. A resposta normaliza a texto e conserva a precisión; o PDF mostra ata 3 decimais, con coma decimal e puntos de milleiros. Usa texto decimal para evitar perda de precisión en valores grandes.

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

Descrición da natureza da mercadoría.

​AlternativeMeasure

Outra magnitude cando sexa difícil determinar o peso. Envía esta magnitude ou o peso, nunca ambas.

Vehicle

Vehículo efectivo; se hai remolque ou semirremolque, informa os dous campos xuntos.
country
​CountryCode · pattern: ^[A-Z]{2}$ · obrigatorio

Código de país de dúas letras; normalízase a maiúsculas. O formato non comproba a pertenza ao catálogo ISO 3166-1.

Exemplo: ES
registration
​string · minLength: 1 · maxLength: 20 · obrigatorio

Matrícula normalizada a maiúsculas e sen espazos nin guións. Para España admítense a matrícula ordinaria vixente, as provinciais anteriores e a serie especial E. Para outros países, entre 3 e 20 caracteres alfanuméricos.

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

Código de país de dúas letras; normalízase a maiúsculas. O formato non comproba a pertenza ao catálogo ISO 3166-1.

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

Matrícula do remolque ou semirremolque, normalizada como a do tractor. Para España esíxese a serie R. Para outros países, entre 3 e 20 caracteres alfanuméricos.

Exemplo: R 5832 BCD
oneOf
Debe cumprirse exactamente unha alternativa.

Táboa de alternativas

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

Código de país de dúas letras; normalízase a maiúsculas. O formato non comproba a pertenza ao catálogo ISO 3166-1.

Exemplo: ES
trailer_registration
​string · minLength: 1 · maxLength: 20 · obrigatorio

Matrícula do remolque ou semirremolque, normalizada como a do tractor. Para España esíxese a serie R. Para outros países, entre 3 e 20 caracteres alfanuméricos.

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

Código de país de dúas letras; normalízase a maiúsculas. O formato non comproba a pertenza ao catálogo ISO 3166-1.

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

Matrícula normalizada a maiúsculas e sen espazos nin guións. Para España admítense a matrícula ordinaria vixente, as provinciais anteriores e a serie especial E. Para outros países, entre 3 e 20 caracteres alfanuméricos.

Exemplo: 4827 MNL

SpecialAuthorization

Autorización especial de circulación cando sexa necesaria. Omítea ou envía null se non procede.
number
​string · minLength: 1 · maxLength: 255 · obrigatorio

Número ou referencia da autorización.

issuer
​string · minLength: 1 · maxLength: 255

Organismo emisor, se se informa.

CreateDocumentRequest

transport_date
​string · date · obrigatorio

Data real do transporte en formato YYYY-MM-DD; non é o instante de creación do PDF.

​Shipper · obrigatorio

Cargador contractual; pode ser diferente do almacén de orixe e do cliente de DeCA.

​Carrier · obrigatorio

Transportista que realiza efectivamente o transporte, incluído o subcontratado.

​TransportLocation · obrigatorio
​TransportLocation · obrigatorio
​Goods · obrigatorio

Natureza e peso da mercadoría, ou magnitude alternativa cando corresponda. Envía exactamente unha medida.

​Vehicle · obrigatorio

Vehículo efectivo; se hai remolque ou semirremolque, informa os dous campos xuntos.

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

Referencia propia opcional, única por organización e contorno e impresa no PDF. Identifica os reintentos e permite consultar por referencia. Non se libera ao eliminar o documento.

​SpecialAuthorization

Autorización especial de circulación cando sexa necesaria. Omítea ou envía null se non procede.

observations
​string | null · maxLength: 4000

Observacións que os intervenientes soliciten facer constar no documento.

​object | null

Obxecto JSON opcional, conservado e devolto sen modificación semántica. Non se imprime no PDF. Máximo 16 KiB ao serializalo e 8 niveis de profundidade.

DocumentResult

uuid
​string · uuid · obrigatorio

UUID do documento emitido.

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

Referencia do cliente ou null.

created_at
​string · date-time · obrigatorio

Instante orixinal de creación, en UTC.

url
​string · uri · obrigatorio

URL HTTPS completa de descarga por QR, incluído o seu segredo. Non a rexistres nin publiques.

​object · obrigatorio
pdf_download_url
​string · uri · obrigatorio

URL de descarga autenticada; require o Bearer da credencial propietaria dentro de 24 horas.

rectifies_uuid
​string | null · uuid · obrigatorio

UUID rectificado ou null nunha emisión inicial.

​CreateDocumentRequest · obrigatorio
​object | null · obrigatorio

A mesma metadata da petición; null se non se proporcionou.

document_locale
​string · enum · obrigatorio

Idioma do PDF escollido ao emitilo segundo a organización. Consérvase no resultado; cambiar o idioma da organización non modifica documentos existentes. Non cambia campos JSON nin mensaxes de erro da API.

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

DocumentSummary

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

DocumentList

​DocumentSummary[] · obrigatorio
​object · obrigatorio

ErrorResponse

​object[] · minItems: 1 · obrigatorio

Todos os erros independentes detectados; sen datos de petición, segredos nin trazas.

RectifyDocumentRequest

Todos os datos corrixidos do transporte. O documento anterior identifícase na URL. Se se inclúe reference, debe ser unha referencia nova para o documento rectificativo.
transport_date
​string · date · obrigatorio

Data real do transporte en formato YYYY-MM-DD; non é o instante de creación do PDF.

​Shipper · obrigatorio

Cargador contractual; pode ser diferente do almacén de orixe e do cliente de DeCA.

​Carrier · obrigatorio

Transportista que realiza efectivamente o transporte, incluído o subcontratado.

​TransportLocation · obrigatorio
​TransportLocation · obrigatorio
​Goods · obrigatorio

Natureza e peso da mercadoría, ou magnitude alternativa cando corresponda. Envía exactamente unha medida.

​Vehicle · obrigatorio

Vehículo efectivo; se hai remolque ou semirremolque, informa os dous campos xuntos.

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

Referencia nova do documento rectificativo, opcional e única por organización e contorno. Non reutilices a referencia do documento identificado na URL.

​SpecialAuthorization

Autorización especial de circulación cando sexa necesaria. Omítea ou envía null se non procede.

observations
​string | null · maxLength: 4000

Observacións que os intervenientes soliciten facer constar no documento.

​object | null

Obxecto JSON opcional, conservado e devolto sen modificación semántica. Non se imprime no PDF. Máximo 16 KiB ao serializalo e 8 niveis de profundidade.

DeleteDocumentRequest

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

Motivo do erro detectado ao xerar o documento.

confirm_not_delivered
​boolean · obrigatorio

Debe ser true para eliminar: confirma que non se entregou ao transportista nin ao condutor. false devolve 409 DOCUMENT_ALREADY_DELIVERED.

confirm_not_used
​boolean · obrigatorio

Debe ser true para eliminar: confirma que non se utilizou nun transporte. false devolve 409 DOCUMENT_ALREADY_USED.

DocumentStatus

status
​string · enum · obrigatorio

Estado do documento. Non inclúe información do transporte, PDF, QR, metadata nin datas.

Valores admitidos:
active
deleted

DemoTokenResult

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

Podes solicitar un token sk_demo_ sen conta nin alta dunha organización. Dura 24 horas desde a súa emisión e só funciona desde a IP pública que o solicitou. Cambiar de rede ou de IP require solicitar outro token.

expires_at
​string · date-time · obrigatorio

Caducidade do token en UTC. Todos os seus documentos e ligazóns vencen neste instante.

document_locale
​string · enum · obrigatorio

Idioma dos PDF deste token. Castelán por defecto.

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

DemoDocumentResult

A demo engade demo: true, expires_at, qr_url (alias de url) e pdf_url (alias de pdf_download_url). document_locale é o idioma escollido ao solicitar o token (es por defecto). Os datos e PDF temporais están separados do arquivo real e non se cifran como os documentos reais.
uuid
​string · uuid · obrigatorio

UUID do documento emitido.

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

Referencia do cliente ou null.

created_at
​string · date-time · obrigatorio

Instante orixinal de creación, en UTC.

url
​string · uri · obrigatorio

URL HTTPS completa de descarga por QR, incluído o seu segredo. Non a rexistres nin publiques.

​object · obrigatorio
pdf_download_url
​string · uri · obrigatorio

Podes solicitar un token sk_demo_ sen conta nin alta dunha organización. Dura 24 horas desde a súa emisión e só funciona desde a IP pública que o solicitou. Cambiar de rede ou de IP require solicitar outro token.

rectifies_uuid
​string | null · uuid · obrigatorio

UUID rectificado ou null nunha emisión inicial.

​CreateDocumentRequest · obrigatorio
​object | null · obrigatorio

A mesma metadata da petición; null se non se proporcionou.

document_locale
​string · enum · obrigatorio

Idioma dos PDF deste token. Castelán por defecto.

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

Só na demo; sempre true. Non aparece en resultados de desenvolvemento ou produción.

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

Caducidade do token en UTC. Todos os seus documentos e ligazóns vencen neste instante.

qr_url
​string · uri · obrigatorio

Só na demo; alias de url.

pdf_url
​string · uri · obrigatorio

Só na demo; alias de pdf_download_url. Require o token demo e a súa IP.