DMS10047
Also known as: declaration data required, AANGIFTE GEGEVEN VERPLICHT
DMS10047 is the error code AANGIFTE GEGEVEN VERPLICHT in table A99. A data element that is mandatory on this declaration is missing, and the location in the message names the field.
What does DMS10047 say according to the code book?
The Codeboek Douane of 17 February 2026 sets at DMS10047 the line AANGIFTE GEGEVEN VERPLICHT. It is an acceptance-blocking error. The field that the location names must be filled before DMS accepts the declaration. There is no MRN until that field has a real value from a source document or from master data. Mandatory depends on the declaration type, the procedure and sometimes on another field that you have already filled. An IMA requires different header data than an STO. A declaration with reverse charge requires a valid VAT number. A consignment under inspection requires the reference to the CHED. The code itself does not name that distinction. The location does. DMS10048 is the mirror: AANGIFTE GEGEVEN NIET TOEGESTAAN. That field may precisely not stand there for this type. Anyone who solves 10047 by filling a field that is forbidden for this type, swaps one rejection for the other. Read the declaration type first, then the field. DMS is the Dutch system.
Which fields often fall under this?
On the header: EORI of the declarant, office of entry, requested procedure, form of representation. On the item line: goods code, net mass, customs value, country of origin, or a document code that TARIC makes mandatory. Those are the blanks that stop a declaration most often, because they are required on almost every IMA. The code book also has more specific codes for the same kind of gap. DMS12074, EORI-NUMMER AANGEVER VERPLICHT. DMS12072, DOUANEWAARDE VERPLICHT. DMS12081, GOEDERENCODE ONGELDIG. 10047 is the general rule. The specific code is more precise. If both come back, you follow the specific location. A mandatory data element can also be a repetition: at least one package type, at least one supporting document of a given type. Zero repetitions is then the same as an empty field. The location points to the group, not to a single character in a text box. Adding a space in the goods description does not create a package type.
How do you fill the field without guessing?
Take the value from the source document or from the master data, not from a previous declaration of another consignment. You copy an EORI from the customer card that you have checked against the EU register. You copy a goods code from the article card that you have checked against DTV and TARIC. A net mass comes from the packing list, not from an estimate. Guessing to make the rejection go away makes the next check more expensive. A made-up document code or a made-up authorisation can let the 10047 disappear and produce a recovery or a document check on the substance. The code asks for the real mandatory data, not for a fill. If the field is mandatory because TARIC requires a supporting document, and that document is not physically there, then the declaration is too early. Wait for the certificate, or choose the procedure that is allowed without that document. Filling in a number that does not stand on the paper is not a solution of 10047. It is a new error.
What if you cannot find the field on your screen?
The XML path is the source. Translate it to the screen field. If the screen field is missing, you are in the wrong declaration screen: an IMA screen for an STO, or a DECO screen for a consignment above the threshold. The type determines which fields exist. A field that is mandatory on an IMA may not be offered on an H7 screen. Some mandatory data sit in a nested block that your software only shows if you tick a box. Representation, reverse charge, warehouse, preference: each block has its own mandatory children. 10047 on a child often means that the block is open without the content. Close the block if it does not apply. Fill the children if it does. Keep the raw error message. A shortened text on the screen can say 10047 without the path. Without the path you search the whole declaration. With the path you search in one block. If your software discards the path, ask for the DMSFUNCREJ payload.
How do you prevent 10047 in a regular flow?
Turn the mandatory fields into master data. What is the same on every consignment of this client does not belong to be typed by hand in the file. What changes per consignment belongs from the document with a source label, so an empty field is visible before filing. A batch e-commerce flow fails at scale on 10047 if the feed leaves a mandatory H7 field empty: value, description, addressee. That is not a DMS whim. That is the data set. Refuse the consignment in the intake, not only in the rejection. DMS is the Dutch import and export system. A mandatory data element in DMS is not necessarily mandatory in NCTS. A T1 misses different fields. Do not mix the lists. A field you learned to fill on an IMA can be forbidden on a transit declaration, and then you trade 10047 for 10048 by copying the IMA habit.
How does this relate to an incomplete declaration?
An incomplete declaration may supply certain fields later. That does not make those fields optional in the sense of 10047. The fields that remain mandatory for the incomplete set stay mandatory. 10047 on such a field means that you have supplied too little even for the incomplete set. The permission to complete later is a short list, not a general waiver. The NRV codes in the additional information steer the time limit of the completion. They do not switch 10047 off. Anyone who files an incomplete IMA without the mandatory header data gets the same acceptance refusal as on a full IMA. The supplementary declaration has its own rules. Data that stood in the first declaration must come back in the supplementary message or be changed on purpose. Other codes, such as DMS222AA, concern that. 10047 remains the simple one: this field must be there now.