API DeCA

CountryCode

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

Código do país com duas letras; normalizado para maiúsculas. O formato não verifica a pertença ao catálogo ISO 3166-1.

Exemplo: ES

PositiveDecimal

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

Decimal positivo como string, com ponto, sem vírgula nem notação científica. Até 15 algarismos inteiros e 6 decimais. A resposta elimina os zeros decimais finais.

Exemplo: 1850.000

WeightKilograms

oneOf
Deve cumprir-se exatamente uma alternativa.

Tabela de alternativas

AlternativaCritérios de seleção
type = string
type = number
Propriedades de Alternativa 1:
PositiveDecimal · pattern: ^(?!0+(?:\.0+)?$)(?:…

Decimal positivo como string, com ponto, sem vírgula nem notação científica. Até 15 algarismos inteiros e 6 decimais. A resposta elimina os zeros decimais finais.

Exemplo: 1850.000

Address

street
​string · minLength: 1 · maxLength: 255 · obrigatório

Rua e número da morada.

postal_code
​string · minLength: 1 · maxLength: 255 · obrigatório

Código postal como texto para preservar zeros iniciais.

city
​string · minLength: 1 · maxLength: 255 · obrigatório

Localidade da morada.

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

Código do país com duas letras; normalizado para maiúsculas. O formato não verifica a pertença ao catálogo ISO 3166-1.

Exemplo: ES

Shipper

Carregador contratual; pode diferir do armazém de origem e do cliente da DeCA.
name
​string · minLength: 1 · maxLength: 255 · obrigatório

Nome ou denominação social.

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

Código do país com duas letras; normalizado para maiúsculas. O formato não verifica a pertença ao catálogo ISO 3166-1.

Exemplo: ES
tax_id
​string · minLength: 1 · maxLength: 32 · obrigatório

Identificador fiscal normalizado para maiúsculas sem espaços nem hífenes; o comprimento é verificado após normalização. Em Espanha validam-se formato e caráter de controlo de DNI, NIE e NIF de entidades (CIF). Os NIF especiais K, L e M são verificados apenas pelo formato: prefixo, sete carateres alfanuméricos e letra final. Para outros países exige-se formato alfanumérico sem verificação do controlo fiscal. A validação não comprova existência nem registo fiscal.

​Address · obrigatório

Carrier

Transportador que efetua realmente o transporte, incluindo o subcontratado.
name
​string · minLength: 1 · maxLength: 255 · obrigatório

Nome ou denominação social.

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

Código do país com duas letras; normalizado para maiúsculas. O formato não verifica a pertença ao catálogo ISO 3166-1.

Exemplo: ES
tax_id
​string · minLength: 1 · maxLength: 32 · obrigatório

Identificador fiscal normalizado para maiúsculas sem espaços nem hífenes; o comprimento é verificado após normalização. Em Espanha validam-se formato e caráter de controlo de DNI, NIE e NIF de entidades (CIF). Os NIF especiais K, L e M são verificados apenas pelo formato: prefixo, sete carateres alfanuméricos e letra final. Para outros países exige-se formato alfanumérico sem verificação do controlo fiscal. A validação não comprova existência nem registo fiscal.

​object

Morada opcional do transportador. Se fornecida, exige todos os campos de Address; o artigo 6 não a exige como dado mínimo.

TransportLocation

place
​string · minLength: 1 · maxLength: 255 · obrigatório

Local real de carga ou descarga, identificável pelo nome da instalação ou morada. Com city e country deve permitir identificá-lo claramente; street e postal_code são opcionais. A identidade da empresa destinatária não é um dado mínimo obrigatório.

city
​string · minLength: 1 · maxLength: 255 · obrigatório

Localidade.

country
​string · enum · obrigatório

O âmbito inicial abrange transportes internos em Espanha; não substitui o CMR internacional.

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

Rua e número opcionais do local de carga ou descarga para precisar a localização.

postal_code
​string · minLength: 1 · maxLength: 255

Código postal opcional do local de carga ou descarga, como texto para preservar zeros iniciais.

AlternativeMeasure

Outra grandeza quando for difícil determinar o peso. Envie esta grandeza ou o peso, nunca ambos.
value
​PositiveDecimal · pattern: ^(?!0+(?:\.0+)?$)(?:… · obrigatório

Decimal positivo como string, com ponto, sem vírgula nem notação científica. Até 15 algarismos inteiros e 6 decimais. A resposta elimina os zeros decimais finais.

Exemplo: 1850.000
unit
​string · minLength: 1 · maxLength: 255 · obrigatório

Unidade explícita da grandeza, até 255 carateres.

Exemplo: palés

Goods

Natureza e peso da mercadoria, ou grandeza alternativa quando aplicável. Envie exatamente uma medida.
description
​string · minLength: 1 · maxLength: 2000 · obrigatório

Descrição da natureza da mercadoria.

​WeightKilograms

Peso positivo em kg, como número JSON ou texto decimal. Até 15 algarismos inteiros e 6 decimais. A resposta normaliza para texto e conserva a precisão; o PDF apresenta até 3 decimais, com vírgula decimal e pontos para os milhares. Utilize texto decimal para evitar perda de precisão em valores elevados.

Exemplo: 1850.5
​AlternativeMeasure

Outra grandeza quando for difícil determinar o peso. Envie esta grandeza ou o peso, nunca ambos.

oneOf
Deve cumprir-se exatamente uma alternativa.

Tabela de alternativas

AlternativaCritérios de seleção
type = object · Campos obrigatórios: weight_kg
type = object · Campos obrigatórios: alternative_measure
Propriedades de Alternativa 1:
​WeightKilograms · obrigatório

Peso positivo em kg, como número JSON ou texto decimal. Até 15 algarismos inteiros e 6 decimais. A resposta normaliza para texto e conserva a precisão; o PDF apresenta até 3 decimais, com vírgula decimal e pontos para os milhares. Utilize texto decimal para evitar perda de precisão em valores elevados.

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

Descrição da natureza da mercadoria.

​AlternativeMeasure

Outra grandeza quando for difícil determinar o peso. Envie esta grandeza ou o peso, nunca ambos.

Vehicle

Veículo efetivo; se houver reboque ou semirreboque, preencha os dois campos em conjunto.
country
​CountryCode · pattern: ^[A-Z]{2}$ · obrigatório

Código do país com duas letras; normalizado para maiúsculas. O formato não verifica a pertença ao catálogo ISO 3166-1.

Exemplo: ES
registration
​string · minLength: 1 · maxLength: 20 · obrigatório

Matrícula normalizada para maiúsculas sem espaços nem hífenes. Em Espanha são admitidas a matrícula ordinária vigente, as provinciais anteriores e a série especial E. Para outros países, entre 3 e 20 carateres alfanuméricos.

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

Código do país com duas letras; normalizado para maiúsculas. O formato não verifica a pertença ao catálogo ISO 3166-1.

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

Matrícula do reboque ou semirreboque, normalizada como a do trator. Em Espanha exige-se a série R. Para outros países, entre 3 e 20 carateres alfanuméricos.

Exemplo: R 5832 BCD
oneOf
Deve cumprir-se exatamente uma alternativa.

Tabela de alternativas

AlternativaCritérios de seleção
type = object · Campos obrigatórios: trailer_country, trailer_registration
type = object · Campos obrigatórios: country, registration
Propriedades de Alternativa 1:
trailer_country
​CountryCode · pattern: ^[A-Z]{2}$ · obrigatório

Código do país com duas letras; normalizado para maiúsculas. O formato não verifica a pertença ao catálogo ISO 3166-1.

Exemplo: ES
trailer_registration
​string · minLength: 1 · maxLength: 20 · obrigatório

Matrícula do reboque ou semirreboque, normalizada como a do trator. Em Espanha exige-se a série R. Para outros países, entre 3 e 20 carateres alfanuméricos.

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

Código do país com duas letras; normalizado para maiúsculas. O formato não verifica a pertença ao catálogo ISO 3166-1.

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

Matrícula normalizada para maiúsculas sem espaços nem hífenes. Em Espanha são admitidas a matrícula ordinária vigente, as provinciais anteriores e a série especial E. Para outros países, entre 3 e 20 carateres alfanuméricos.

Exemplo: 4827 MNL

SpecialAuthorization

Autorização especial de circulação quando necessária. Omita ou envie null se não se aplicar.
number
​string · minLength: 1 · maxLength: 255 · obrigatório

Número ou referência da autorização.

issuer
​string · minLength: 1 · maxLength: 255

Organismo emissor, se indicado.

CreateDocumentRequest

transport_date
​string · date · obrigatório

Data real do transporte em formato YYYY-MM-DD; não é o instante de criação do PDF.

​Shipper · obrigatório

Carregador contratual; pode diferir do armazém de origem e do cliente da DeCA.

​Carrier · obrigatório

Transportador que efetua realmente o transporte, incluindo o subcontratado.

​TransportLocation · obrigatório
​TransportLocation · obrigatório
​Goods · obrigatório

Natureza e peso da mercadoria, ou grandeza alternativa quando aplicável. Envie exatamente uma medida.

​Vehicle · obrigatório

Veículo efetivo; se houver reboque ou semirreboque, preencha os dois campos em conjunto.

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

Referência própria opcional, única por organização e ambiente e impressa no PDF. Identifica novas tentativas e permite consultar por referência. Não é libertada ao eliminar o documento.

​SpecialAuthorization

Autorização especial de circulação quando necessária. Omita ou envie null se não se aplicar.

observations
​string | null · maxLength: 4000

Observações cuja inclusão no documento seja pedida pelos intervenientes.

​object | null

Objeto JSON opcional, conservado e devolvido sem alteração semântica. Não é impresso no PDF. Máximo de 16 KiB ao serializar e 8 níveis de profundidade.

DocumentResult

uuid
​string · uuid · obrigatório

UUID do documento emitido.

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

Referência do cliente ou null.

created_at
​string · date-time · obrigatório

Instante original de criação, em UTC.

url
​string · uri · obrigatório

URL HTTPS completa de descarga por QR, incluindo o segredo. Não registe nem publique.

​object · obrigatório
pdf_download_url
​string · uri · obrigatório

URL de descarga autenticada; requer Bearer da credencial proprietária no prazo de 24 horas.

rectifies_uuid
​string | null · uuid · obrigatório

UUID retificado ou null numa emissão inicial.

​CreateDocumentRequest · obrigatório
​object | null · obrigatório

A mesma metadata do pedido; null se não foi fornecida.

document_locale
​string · enum · obrigatório

Idioma do PDF escolhido na emissão segundo a organização. Conservado no resultado; alterar o idioma da organização não modifica documentos existentes. Não altera campos JSON nem mensagens de erro da API.

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

DocumentSummary

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

DocumentList

​DocumentSummary[] · obrigatório
​object · obrigatório

ErrorResponse

​object[] · minItems: 1 · obrigatório

Todos os erros independentes detetados; sem dados do pedido, segredos nem rastos.

RectifyDocumentRequest

Todos os dados corrigidos do transporte. O documento anterior é identificado na URL. Se reference for incluído, deve ser uma nova referência para o documento retificativo.
transport_date
​string · date · obrigatório

Data real do transporte em formato YYYY-MM-DD; não é o instante de criação do PDF.

​Shipper · obrigatório

Carregador contratual; pode diferir do armazém de origem e do cliente da DeCA.

​Carrier · obrigatório

Transportador que efetua realmente o transporte, incluindo o subcontratado.

​TransportLocation · obrigatório
​TransportLocation · obrigatório
​Goods · obrigatório

Natureza e peso da mercadoria, ou grandeza alternativa quando aplicável. Envie exatamente uma medida.

​Vehicle · obrigatório

Veículo efetivo; se houver reboque ou semirreboque, preencha os dois campos em conjunto.

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

Nova referência do documento retificativo, opcional e única por organização e ambiente. Não reutilize a referência do documento identificado na URL.

​SpecialAuthorization

Autorização especial de circulação quando necessária. Omita ou envie null se não se aplicar.

observations
​string | null · maxLength: 4000

Observações cuja inclusão no documento seja pedida pelos intervenientes.

​object | null

Objeto JSON opcional, conservado e devolvido sem alteração semântica. Não é impresso no PDF. Máximo de 16 KiB ao serializar e 8 níveis de profundidade.

DeleteDocumentRequest

reason
​string · minLength: 1 · maxLength: 2000 · obrigatório

Motivo do erro detetado ao gerar o documento.

confirm_not_delivered
​boolean · obrigatório

Deve ser true para eliminar: confirma que não foi entregue ao transportador nem ao condutor. false devolve 409 DOCUMENT_ALREADY_DELIVERED.

confirm_not_used
​boolean · obrigatório

Deve ser true para eliminar: confirma que não foi utilizado num transporte. false devolve 409 DOCUMENT_ALREADY_USED.

DocumentStatus

status
​string · enum · obrigatório

Estado do documento. Não inclui informação do transporte, PDF, QR, metadata nem datas.

Valores admitidos:
active
deleted

DemoTokenResult

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

Podes pedir um token sk_demo_ sem uma conta nem o registo de uma organização. Dura 24 horas a partir da emissão e funciona apenas a partir do IP público que o pediu. Mudar de rede ou de IP exige outro token.

expires_at
​string · date-time · obrigatório

Data de expiração do token em UTC. Todos os seus documentos e ligações expiram neste instante.

document_locale
​string · enum · obrigatório

Idioma dos PDF deste token. Espanhol por predefinição.

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

DemoDocumentResult

A demo acrescenta demo: true, expires_at, qr_url (alias de url) e pdf_url (alias de pdf_download_url). document_locale é o idioma escolhido ao solicitar o token (es por predefinição). Os dados e PDF temporários estão separados do arquivo real e não são encriptados como os documentos reais.
uuid
​string · uuid · obrigatório

UUID do documento emitido.

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

Referência do cliente ou null.

created_at
​string · date-time · obrigatório

Instante original de criação, em UTC.

url
​string · uri · obrigatório

URL HTTPS completa de descarga por QR, incluindo o segredo. Não registe nem publique.

​object · obrigatório
pdf_download_url
​string · uri · obrigatório

Podes pedir um token sk_demo_ sem uma conta nem o registo de uma organização. Dura 24 horas a partir da emissão e funciona apenas a partir do IP público que o pediu. Mudar de rede ou de IP exige outro token.

rectifies_uuid
​string | null · uuid · obrigatório

UUID retificado ou null numa emissão inicial.

​CreateDocumentRequest · obrigatório
​object | null · obrigatório

A mesma metadata do pedido; null se não foi fornecida.

document_locale
​string · enum · obrigatório

Idioma dos PDF deste token. Espanhol por predefinição.

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

Apenas na demo; sempre true. Não aparece nos resultados de desenvolvimento ou produção.

Valores admitidos:
true
expires_at
​string · date-time · obrigatório

Data de expiração do token em UTC. Todos os seus documentos e ligações expiram neste instante.

qr_url
​string · uri · obrigatório

Apenas na demo; alias de url.

pdf_url
​string · uri · obrigatório

Apenas na demo; alias de pdf_download_url. Exige o token demo e o seu IP.