
An accepted declaration proves the message was syntactically admissible. It does not prove the code was right.
The most dangerous sentence in an import department is five words long: "we have always declared it that way". A declaration accepted and released is not a validation of the classification. Documentary control is not systematic, post-clearance audit can arrive years later, and the acceptance of a message says nothing about the correctness of the heading used.
An inherited code must therefore be revalidated, not rolled forward. Here is the protocol.
The five controls, and what makes them fail
Review of an inherited code — one blocking item is enough to stop reuse
- Today's product is the one from back thenComposition, process, function, presentation. A change of supplier is often enough to change the material.
- The tariff edition has not moved on this lineCheck the integrated tariff as at today, not an archived extract.
- The original file exists and is readableDescription, candidates compared, decisive rule, approver. If none of that exists, the code was never examined.
- The supplementary unit is still the expected oneIt changes more often than the rate, and silently.
- No new measure has attached to the lineLicence, technical control, sanitary measure, trade-defence measure.
- The code comes from a broker template, with no fileBlocking: there is nothing to verify, it has to be classified.
- The code was copied from a "similar" articleBlocking: commercial proximity is not tariff proximity.
What an accepted declaration proves
What a release obtained establishes
What it does not establish
About the message
The mandatory fields were populated and internally consistent.
That the value declared in each field was the right one.
About the classification
The line existed in the edition in force that day.
That it was the line applicable to those goods.
About control
The channel used did not trigger a blocking check.
That a post-clearance audit will not cover this declaration.
About duration
Nothing beyond the transaction concerned.
That the same code remains valid on the next transaction.
A release is a flow event, not a substantive decision. It creates no acquired right over the classification used.
The review procedure
- 01
Extract the population, not the line
Every declaration bearing this code over the retention period, across all articles. A review covering a single line misses the essential point: reuse.
- 02
Rebuild the original file
The technical sheet of the time, the tariff extract, the reason for the choice. If the file is empty, treat it as a new classification, not as a verification.
- 03
Replay the decision on the current product
Without looking at the inherited code. A reviewer who knows the answer always finds it again — that is the main bias in this exercise.
- 04
Compare the two results
Identical: record the review and its date. Different: freeze reuse, cost the affected population, and decide on the regularisation route.
- 05
Fix the source, not just the line
Article record, ERP mapping, broker template, automation rule. Correcting a declaration without correcting its source guarantees the error returns.
What triggers a review, and how often
Events that force an immediate review
Change of supplier or origin, change in composition or process, a new HS or national tariff edition, publication of a contrary classification decision, notification of an audit, or the creation of a trade-defence measure on the heading.
Periodic review, absent any event
By sample, prioritised on cumulative value and number of reuses rather than alphabetical order. Lines declared rarely but carrying a large rate gap deserve as much attention as high-volume lines.
Cost it before choosing the route
54
Declarations concerned
Population that reused the decision
12.5 pts
Rate gap
Between the line declared and the correct line
675k
MAD gross exposure
54 × 100,000 × 12.5%
That amount is gross: it ignores the VAT reassessed on the corrected base, late-payment surcharges and any penalties. It is nonetheless enough to settle the only question that matters at this stage: voluntary regularisation or wait. The applicable framework derives from the Foreign Trade Law 13-89 and from texts published on the Official Gazette portal.
Check codes in the tariff, not in the ERP
The ERP contains what someone entered into it. The tariff contains what is in force. Verification always happens in the second, and the result is carried into the first — never the other way round.
8517130000Open the tariff record 8471300000Open the tariff recordWhat the review must leave behind
A review that produces only an oral confirmation did not happen. The minimum deliverable: the review date, the population examined, the code confirmed or corrected, the decisive rule, the approver, and the event that will reopen the file. Those six fields fit on one register line, and they are what turns a habit into a documented control.
Edition changes are tracked with the WCO correlation tables; the current state of lines in force is consulted in ADIL.
Related articles

Classify a product catalogue with HS codes that stay maintainable
Classifying 4,000 references is not classifying 4,000 times. How to build families on stable attributes and handle the exceptions first.

Calculating Moroccan customs duties by product
Import duty, the parafiscal levy and VAT do not share a base. The full cascade, the order of operations, and the documents that make the figure reproducible.

Find a Moroccan HS code without relying on a keyword match
Keyword search returns plausible wording, not defensible headings. The attribute-led method that produces a code you can stand behind.

How to choose a customs broker and freight forwarder in Morocco
Comparing fees says nothing about the quality of a declarant. The mandate, the hard-file test, and the evidence they owe you back.