Schemas
CountryCode
^[A-Z]{2}$Two-letter country code; normalized to uppercase. This format does not verify membership of the ISO 3166-1 catalogue.
PositiveDecimal
^(?!0+(?:\.0+)?$)(?:…Positive decimal as a string, using a dot, without commas or scientific notation. Up to 15 integer digits and 6 decimal places. Responses strip trailing decimal zeros.
WeightKilograms
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = string | |
| type = number |
^(?!0+(?:\.0+)?$)(?:…Positive decimal as a string, using a dot, without commas or scientific notation. Up to 15 integer digits and 6 decimal places. Responses strip trailing decimal zeros.
Address
streetStreet and building number.
postal_codePostal code as text to preserve leading zeros.
cityAddress locality.
country^[A-Z]{2}$ · requiredTwo-letter country code; normalized to uppercase. This format does not verify membership of the ISO 3166-1 catalogue.
Shipper
nameName or legal business name.
tax_country^[A-Z]{2}$ · requiredTwo-letter country code; normalized to uppercase. This format does not verify membership of the ISO 3166-1 catalogue.
tax_idTax ID normalized to uppercase without spaces or hyphens; length is checked after normalization. Spain validates the format and check character of DNI, NIE and entity NIF (CIF). Special K, L and M tax IDs are checked by format only: prefix, seven alphanumeric characters and a final letter. Other countries require alphanumeric format without tax checksum verification. Validation does not establish existence or tax registration.
Carrier
nameName or legal business name.
tax_country^[A-Z]{2}$ · requiredTwo-letter country code; normalized to uppercase. This format does not verify membership of the ISO 3166-1 catalogue.
tax_idTax ID normalized to uppercase without spaces or hyphens; length is checked after normalization. Spain validates the format and check character of DNI, NIE and entity NIF (CIF). Special K, L and M tax IDs are checked by format only: prefix, seven alphanumeric characters and a final letter. Other countries require alphanumeric format without tax checksum verification. Validation does not establish existence or tax registration.
Optional carrier address. If supplied, all Address fields are required; article 6 does not require it as a minimum data item.
TransportLocation
placeActual loading or unloading location, identifiable by site name or address. Together with city and country it must identify the location clearly; street and postal_code are optional. A consignee company's identity is not a mandatory minimum item.
cityLocality.
countryThe initial scope covers domestic transport in Spain; it does not replace the international CMR.
streetOptional street and building number of the loading or unloading location to identify it precisely.
postal_codeOptional postal code of the loading or unloading location, as text to preserve leading zeros.
AlternativeMeasure
value^(?!0+(?:\.0+)?$)(?:… · requiredPositive decimal as a string, using a dot, without commas or scientific notation. Up to 15 integer digits and 6 decimal places. Responses strip trailing decimal zeros.
unitExplicit measurement unit, up to 255 characters.
Goods
descriptionDescription of the nature of the goods.
Positive weight in kg, as a JSON number or a decimal string. Up to 15 integer digits and 6 decimal places. Responses normalise to a string and preserve precision; PDFs display up to 3 decimal places, using a decimal comma and dots for thousands. Use a decimal string to avoid losing precision with large values.
Alternative measurement when weight is difficult to determine. Send either this measurement or weight, never both.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · Required fields: weight_kg | |
| type = object · Required fields: alternative_measure |
Positive weight in kg, as a JSON number or a decimal string. Up to 15 integer digits and 6 decimal places. Responses normalise to a string and preserve precision; PDFs display up to 3 decimal places, using a decimal comma and dots for thousands. Use a decimal string to avoid losing precision with large values.
descriptionDescription of the nature of the goods.
Alternative measurement when weight is difficult to determine. Send either this measurement or weight, never both.
Vehicle
country^[A-Z]{2}$ · requiredTwo-letter country code; normalized to uppercase. This format does not verify membership of the ISO 3166-1 catalogue.
registrationRegistration normalized to uppercase without spaces or hyphens. Spain accepts current ordinary registrations, former provincial registrations and the special E series. Other countries accept 3 to 20 alphanumeric characters.
trailer_country^[A-Z]{2}$Two-letter country code; normalized to uppercase. This format does not verify membership of the ISO 3166-1 catalogue.
trailer_registrationTrailer or semi-trailer registration, normalized like the tractor registration. Spain requires the R series. Other countries accept 3 to 20 alphanumeric characters.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · Required fields: trailer_country, trailer_registration | |
| type = object · Required fields: country, registration |
trailer_country^[A-Z]{2}$ · requiredTwo-letter country code; normalized to uppercase. This format does not verify membership of the ISO 3166-1 catalogue.
trailer_registrationTrailer or semi-trailer registration, normalized like the tractor registration. Spain requires the R series. Other countries accept 3 to 20 alphanumeric characters.
country^[A-Z]{2}$Two-letter country code; normalized to uppercase. This format does not verify membership of the ISO 3166-1 catalogue.
registrationRegistration normalized to uppercase without spaces or hyphens. Spain accepts current ordinary registrations, former provincial registrations and the special E series. Other countries accept 3 to 20 alphanumeric characters.
SpecialAuthorization
numberAuthorization number or reference.
issuerIssuing authority, if supplied.
CreateDocumentRequest
transport_dateActual transport date in YYYY-MM-DD format; not the PDF creation timestamp.
Contractual shipper; may differ from the origin warehouse and the DeCA customer.
Carrier actually performing the transport, including subcontractors.
Nature and weight of the goods, or an alternative measurement where applicable. Send exactly one measurement.
Actual vehicle; if a trailer or semi-trailer is present, supply both trailer fields together.
reference^[A-Za-z0-9-]+(?![\s…Optional customer reference, unique per organization and environment and printed on the PDF. Identifies retries and allows retrieval by reference. It is not released when the document is deleted.
Special circulation authorization when required. Omit or send null if not applicable.
observationsRemarks requested by the parties for inclusion in the document.
Optional JSON object, retained and returned without semantic changes. Not printed on the PDF. Maximum serialized size 16 KiB and nesting depth 8.
DocumentResult
uuidUUID of the issued document.
reference^[A-Za-z0-9-]+(?![\s… · requiredCustomer reference or null.
created_atOriginal creation timestamp, in UTC.
urlFull HTTPS QR download URL including its secret. Do not log or publish it.
pdf_download_urlAuthenticated download URL; requires the owning credential's Bearer within 24 hours.
rectifies_uuidCorrected UUID, or null for an initial issue.
The request's unchanged metadata; null if omitted.
document_localePDF language selected from the organization at issue time. Preserved in the result; changing the organization language does not modify existing documents. Does not change JSON fields or API error messages.
DocumentSummary
uuidreference^[A-Za-z0-9-]+(?![\s… · requiredcreated_attransport_daterectifies_uuidDocumentList
ErrorResponse
All independently detected errors; no request data, secrets or stack traces.
RectifyDocumentRequest
transport_dateActual transport date in YYYY-MM-DD format; not the PDF creation timestamp.
Contractual shipper; may differ from the origin warehouse and the DeCA customer.
Carrier actually performing the transport, including subcontractors.
Nature and weight of the goods, or an alternative measurement where applicable. Send exactly one measurement.
Actual vehicle; if a trailer or semi-trailer is present, supply both trailer fields together.
reference^[A-Za-z0-9-]+(?![\s…Optional new reference for the corrective document, unique per organization and environment. Do not reuse the reference of the document identified in the URL.
Special circulation authorization when required. Omit or send null if not applicable.
observationsRemarks requested by the parties for inclusion in the document.
Optional JSON object, retained and returned without semantic changes. Not printed on the PDF. Maximum serialized size 16 KiB and nesting depth 8.
DeleteDocumentRequest
reasonReason for the error detected while generating the document.
confirm_not_deliveredMust be true to delete: confirms it has not been handed to the carrier or driver. false returns 409 DOCUMENT_ALREADY_DELIVERED.
confirm_not_usedMust be true to delete: confirms it has not been used for transport. false returns 409 DOCUMENT_ALREADY_USED.
DocumentStatus
statusDocument status. Does not include transport data, PDF, QR, metadata or dates.
DemoTokenResult
token^sk_demo_[0-9a-f]{64… · requiredYou can request an sk_demo_ token without an account or a registered organisation. It lasts 24 hours from issuance and works only from the public IP that requested it. Changing network or IP requires another token.
expires_atToken expiry time in UTC. All its documents and links expire at this instant.
document_localeLanguage of this token’s PDFs. Spanish by default.
DemoDocumentResult
uuidUUID of the issued document.
reference^[A-Za-z0-9-]+(?![\s… · requiredCustomer reference or null.
created_atOriginal creation timestamp, in UTC.
urlFull HTTPS QR download URL including its secret. Do not log or publish it.
pdf_download_urlYou can request an sk_demo_ token without an account or a registered organisation. It lasts 24 hours from issuance and works only from the public IP that requested it. Changing network or IP requires another token.
rectifies_uuidCorrected UUID, or null for an initial issue.
The request's unchanged metadata; null if omitted.
document_localeLanguage of this token’s PDFs. Spanish by default.
demoDemo only; always true. Absent from development and production results.
expires_atToken expiry time in UTC. All its documents and links expire at this instant.
qr_urlDemo only; alias of url.
pdf_urlDemo only; alias of pdf_download_url. Requires the demo token and its IP.