Customs release blocked
Why a declaration won't transition to released — and how to clear it.
3 min readLast updated 13 Apr 2026
A customs declaration that won't transition past cleared to released (or that bounces back to held) usually has one of a handful of root causes. Walk through them.
Common reasons
1. Permits required but not filled
If any declaration line has permit_required = true and permit_reference is empty, the declaration is blocked at submitted.
Fix: open the line, fill in permit_code, permit_authority, and permit_reference. Re-submit.
2. CIF / value mismatch with carrier docs
Customs may hold the declaration if your declared CIF doesn't reconcile with the carrier's freight invoice + insurance value.
Fix: re-confirm the CIF calculation. If your buy-side freight has changed, update the declaration's total_cif_value and re-submit.
3. Restricted or prohibited commodity
The HS code triggers a restriction (food, pharma, chemicals). Customs requires additional certification.
Fix: attach the missing certificate (Halal, COA, MSDS) to the declaration's documents tab. Re-submit.
4. Duty / VAT not paid
Some customs authorities won't release until duty is settled. CargoSurge tracks deposit / payment via the after-release Deposits panel.
Fix: record the deposit / payment in the Deposits ledger, then re-submit. The customs broker can release once duty is acknowledged.
5. The declaration is still in review
If state is under_review, customs hasn't decided yet. No action you can take from CargoSurge — wait or chase the broker.
6. Released by mistake → reopened
If the declaration is back in reopened status, an admin reopened a previously-released declaration (typically because of a release error). Resolve the underlying issue, then transition reopened → cleared → released.
Step-by-step diagnosis
- Open the declaration's detail page. Note the current status and any
heldreason. - If
held, read thehold_reasonfield — usually self-explanatory. - Open each declaration line — check
permit_required,permit_reference, and any HS-code restriction notice. - Open the documents tab — verify all required documents (per the destination country's requirements list) are attached.
- Verify CIF math: cargo value + freight + insurance =
total_cif_value. Mismatches block release in some jurisdictions. - If everything looks right, contact the customs broker — there may be an authority-side delay invisible to CargoSurge.
Common pitfalls
When to contact platform support
Customs holds are operational issues — the platform usually can't directly resolve them. Contact platform support if:
- The declaration is stuck in a state that won't transition even when you click the next action (UI bug).
- The duty calculator is producing wildly wrong numbers (HS code data issue).
- Customs webhook (release event from the authority) isn't updating the declaration despite you confirming release manually with the broker.
For everything else, the customs broker is your first call.
Was this article helpful?