Warehouse & Chain Procedure Declarations
This guide covers creating declarations for customs warehouse operations and chain procedures (Ketenregeling), which allow successive customs operations with simplified formalities.
Required Scopes: declarations:write, declarations:submit
Overview
Customs warehouses allow goods to be stored under customs supervision without paying import duties until they are released for free circulation. Chain procedures (Ketenregeling) enable streamlined processing when goods move through successive customs procedures.
Key Concepts
- Warehouse Entry (Placement): Placing goods into a customs warehouse (procedure 71 from 00)
- Warehouse Exit (Release): Removing goods from warehouse to free circulation (procedure 40 from 71)
- Chain Procedures: Linked customs operations with simplified requirements
- Advance Notification: Required for symbol D declarations before goods physically arrive
Warehouse Entry (Placement under Procedure 71)
Place imported goods into a customs warehouse where they can be stored without paying duties.
Basic Warehouse Entry
curl -X POST "https://app.borderbolt.com/api/v1/declarations/create" \
-H "Authorization: Bearer your-access-token" \
-H "Content-Type: application/json" \
-d '{
"reference": "WH-ENTRY-2026-001",
"submit_when_valid": false,
"dms_version": "4.1",
"declaration": {
"imex": "IM",
"office": "NL000396",
"symbol": "A",
"procedure": {
"current": "71",
"previous": "00"
},
"importer": {
"customer_code": "CUST001"
},
"warehouse": {
"licence": "NLCWP123456789012",
"licence_type": "U"
},
"goods_location": {
"type": "A",
"identification_type": "U",
"country": "NL",
"city": "Amsterdam"
},
"items": [
{
"description": "Electronic Components",
"hs_code": "85423190",
"taric": "00",
"country_of_origin": "CN",
"gross_weight": 500.00,
"net_weight": 450.00,
"invoice_value": 10000.00
}
]
}
}'Response
{
"success": true,
"declaration": {
"id": 12350,
"reference": "WH-ENTRY-2026-001",
"status": "DRF",
"workflow": "import",
"declaration_type": "H2",
"submitted": false,
"created_at": "2026-04-21T10:00:00.000000Z"
}
}The system automatically determines declaration_type: "H2" based on procedure code 71 (customs warehousing).
Warehouse Entry with Chain Procedures (DMS 4.1)
Enable chain procedures to allow future warehouse exits with simplified requirements:
curl -X POST "https://app.borderbolt.com/api/v1/declarations/create" \
-H "Authorization: Bearer your-access-token" \
-H "Content-Type: application/json" \
-d '{
"reference": "WH-ENTRY-CHAIN-2026-001",
"submit_when_valid": false,
"dms_version": "4.1",
"declaration": {
"imex": "IM",
"office": "NL000396",
"symbol": "Z",
"procedure": {
"current": "71",
"previous": "00"
},
"use_iiaa_procedure": true,
"use_ketenregeling": true,
"chain_continuation_possible": "yes",
"eidr_type": "max",
"importer": {
"customer_code": "CUST001"
},
"warehouse": {
"licence": "NLCWP123456789012",
"licence_type": "U"
},
"authorizations": [
{ "type": "EIR", "id": "NLEIRNL123456789012" },
{ "type": "CWP", "id": "NLCWPNL123456789012" }
],
"goods_location": {
"type": "A",
"identification_type": "U",
"country": "NL",
"city": "Amsterdam"
},
"items": [
{
"description": "Electronic Components",
"hs_code": "85423190",
"taric": "00",
"country_of_origin": "CN",
"gross_weight": 500.00,
"net_weight": 450.00,
"invoice_value": 10000.00
}
]
}
}'Chain Procedure Fields
| Field | Required | Type | Description |
|---|---|---|---|
use_iiaa_procedure | No | boolean | Enable Entry in Declarant’s Records procedure |
use_ketenregeling | No | boolean | Enable chain procedures (Ketenregeling) |
chain_continuation_possible | No | string | yes, no, or blank — Allow chain continuation |
eidr_type | Conditional | string | min or max — Data set level (required if IIAA procedure used) |
Authorization Required: Chain procedures require valid EIR (Entry in Records) and CWP (Customs Warehouse) authorizations. Use symbol Z for IIAA (DMS 4.1 only).
Advance Declaration for Warehouse Entry (Symbol D)
For advance declarations (lodged before goods arrive), send an advance notification after physical arrival:
# 1. Create warehouse entry declaration with symbol D
curl -X POST "https://app.borderbolt.com/api/v1/declarations/create" \
-H "Authorization: Bearer your-access-token" \
-H "Content-Type: application/json" \
-d '{
"reference": "WH-ENTRY-ADV-2026-001",
"submit_when_valid": true,
"dms_version": "4.1",
"declaration": {
"imex": "IM",
"office": "NL000396",
"symbol": "D",
"procedure": { "current": "71", "previous": "00" },
"use_iiaa_procedure": true,
"eidr_type": "max",
"importer": { "customer_code": "CUST001" },
"warehouse": { "licence": "NLCWP123456789012", "licence_type": "U" },
"items": [...]
}
}'
# 2. After acceptance and physical arrival, send advance notification
curl -X POST "https://app.borderbolt.com/api/v1/declarations/12350/send-presentation" \
-H "Authorization: Bearer your-access-token"Warehouse Exit (Release to Free Circulation)
Release goods from warehouse to free circulation (procedure 40 from 71).
Basic Warehouse Exit
curl -X POST "https://app.borderbolt.com/api/v1/declarations/create" \
-H "Authorization: Bearer your-access-token" \
-H "Content-Type: application/json" \
-d '{
"reference": "WH-EXIT-2026-001",
"submit_when_valid": false,
"dms_version": "4.1",
"declaration": {
"imex": "IM",
"office": "NL000396",
"symbol": "A",
"procedure": {
"current": "40",
"previous": "71"
},
"importer": {
"customer_code": "CUST001"
},
"warehouse": {
"licence": "NLCWP123456789012",
"licence_type": "U"
},
"items": [
{
"description": "Electronic Components",
"hs_code": "85423190",
"taric": "00",
"country_of_origin": "CN",
"gross_weight": 250.00,
"net_weight": 225.00,
"invoice_value": 5000.00,
"previous_documents": [
{ "type": "NCLE", "id": "WH-ENTRY-2026-001" }
]
}
]
}
}'Warehouse Exit with Chain Procedures
For goods entered with chain procedures enabled, the exit uses simplified requirements:
curl -X POST "https://app.borderbolt.com/api/v1/declarations/create" \
-H "Authorization: Bearer your-access-token" \
-H "Content-Type: application/json" \
-d '{
"reference": "WH-EXIT-CHAIN-2026-001",
"submit_when_valid": false,
"dms_version": "4.1",
"declaration": {
"imex": "IM",
"office": "NL000396",
"symbol": "A",
"procedure": {
"current": "40",
"previous": "71"
},
"use_iiaa_procedure": true,
"use_ketenregeling": true,
"importer": {
"customer_code": "CUST001"
},
"warehouse": {
"licence": "NLCWP123456789012",
"licence_type": "U"
},
"authorizations": [
{ "type": "EIR", "id": "NLEIRNL123456789012" }
],
"items": [
{
"description": "Electronic Components",
"hs_code": "85423190",
"taric": "00",
"country_of_origin": "CN",
"gross_weight": 250.00,
"net_weight": 225.00,
"invoice_value": 5000.00,
"previous_documents": [
{ "type": "NCLE", "id": "WH-ENTRY-2026-001" }
]
}
]
}
}'No Advance Notification Required: Warehouse exits with chain procedures do not require an advance notification. They are processed immediately as regular declarations.
Other Warehouse Exit Procedures
Procedure 44 (Release for Free Circulation with Simultaneous Re-export)
curl -X POST "https://app.borderbolt.com/api/v1/declarations/create" \
-H "Authorization: Bearer your-access-token" \
-H "Content-Type: application/json" \
-d '{
"declaration": {
"imex": "IM",
"office": "NL000396",
"procedure": { "current": "44", "previous": "71" },
"importer": { "customer_code": "CUST001" },
...
}
}'Procedure 51 (Active Improvement)
Release warehouse goods for active improvement (processing):
curl -X POST "https://app.borderbolt.com/api/v1/declarations/create" \
-H "Authorization: Bearer your-access-token" \
-H "Content-Type: application/json" \
-d '{
"declaration": {
"imex": "IM",
"office": "NL000396",
"procedure": { "current": "51", "previous": "71" },
"importer": { "customer_code": "CUST001" },
...
}
}'Procedure 53 (Temporary Importation)
curl -X POST "https://app.borderbolt.com/api/v1/declarations/create" \
-H "Authorization: Bearer your-access-token" \
-H "Content-Type: application/json" \
-d '{
"declaration": {
"imex": "IM",
"office": "NL000396",
"procedure": { "current": "53", "previous": "71" },
"importer": { "customer_code": "CUST001" },
...
}
}'Field Reference
Warehouse Object
| Field | Required | Type | Description |
|---|---|---|---|
licence | Yes | string | Warehouse authorization number (format: NLCWP + 12 digits) |
licence_type | Yes | string | Warehouse type code (e.g. U for public warehouse, R for private) |
Previous Documents for Warehouse Exit
When exiting warehouse (40/71, 44/71, etc.), reference the warehouse entry at item level:
| Field | Required | Type | Max | Description |
|---|---|---|---|---|
type | Yes | string | 4 | NCLE for warehouse entry reference, N951 for summary declaration |
id | No | string | 70 | Entry declaration reference or identifier |
You may also reference transit documents if goods arrived under transit:
{
"previous_documents": [
{ "type": "NCLE", "id": "WH-ENTRY-2026-001" },
{ "type": "N821", "id": "26NL123456789012345" }
]
}Authorizations
Chain procedures require specific authorization codes:
| Authorization Type | Description |
|---|---|
EIR | Entry in Records |
CWP | Customs Warehouse Procedure |
CGU | Comprehensive Guarantee |
C514 | Chain procedure authorization |
C506 | Monthly payment credit |
C505 | Guarantee waiver |
Complete Workflow Example
Here’s a complete workflow for warehouse entry and exit with chain procedures:
Step 1: Create and Submit Warehouse Entry Declaration
curl -X POST "https://app.borderbolt.com/api/v1/declarations/create" \
-H "Authorization: Bearer your-access-token" \
-H "Content-Type: application/json" \
-d '{
"reference": "WH-ENTRY-001",
"submit_when_valid": true,
"dms_version": "4.1",
"declaration": {
"imex": "IM",
"office": "NL000396",
"symbol": "D",
"procedure": { "current": "71", "previous": "00" },
"use_iiaa_procedure": true,
"use_ketenregeling": true,
"chain_continuation_possible": "yes",
"eidr_type": "max",
"importer": { "customer_code": "CUST001" },
"warehouse": {
"licence": "NLCWP123456789012",
"licence_type": "U"
},
"authorizations": [
{ "type": "EIR", "id": "NLEIRNL123456789012" },
{ "type": "CWP", "id": "NLCWPNL123456789012" }
],
"goods_location": {
"type": "A",
"identification_type": "U",
"country": "NL",
"city": "Amsterdam"
},
"items": [
{
"description": "Electronic Components",
"hs_code": "85423190",
"taric": "00",
"country_of_origin": "CN",
"gross_weight": 500.00,
"net_weight": 450.00,
"invoice_value": 10000.00
}
]
}
}'Step 2: Send Advance Notification (After Physical Arrival)
Required only for symbol D (advance) declarations:
curl -X POST "https://app.borderbolt.com/api/v1/declarations/12350/send-presentation" \
-H "Authorization: Bearer your-access-token"Step 3: Create and Submit Warehouse Exit Declaration
curl -X POST "https://app.borderbolt.com/api/v1/declarations/create" \
-H "Authorization: Bearer your-access-token" \
-H "Content-Type: application/json" \
-d '{
"reference": "WH-EXIT-001",
"submit_when_valid": true,
"dms_version": "4.1",
"declaration": {
"imex": "IM",
"office": "NL000396",
"symbol": "A",
"procedure": { "current": "40", "previous": "71" },
"use_iiaa_procedure": true,
"use_ketenregeling": true,
"importer": { "customer_code": "CUST001" },
"warehouse": {
"licence": "NLCWP123456789012",
"licence_type": "U"
},
"authorizations": [
{ "type": "EIR", "id": "NLEIRNL123456789012" }
],
"items": [
{
"description": "Electronic Components",
"hs_code": "85423190",
"taric": "00",
"country_of_origin": "CN",
"gross_weight": 250.00,
"net_weight": 225.00,
"invoice_value": 5000.00,
"previous_documents": [
{ "type": "NCLE", "id": "WH-ENTRY-001" }
]
}
]
}
}'Common Validation Errors
| Error | Description | Solution |
|---|---|---|
declaration.procedure.current required | Procedure code missing | Add procedure.current and procedure.previous |
declaration.items.*.hs_code too long | HS code must be 8 digits | Use 8-digit GN code; put the 2-digit TARIC suffix in taric field |
declaration.office required | Office code missing | Provide a valid customs office code (e.g. NL000396) |
| Missing previous document | Warehouse exit missing entry reference | Add previous_documents with type: "NCLE" at item level |
declaration.symbol invalid | Symbol Z used without DMS 4.1 | Symbol Z is only available for DMS 4.1 declarations |
Next Steps
- Declaration Submit API — Full field reference for all declaration types
- Declaration Lifecycle API — Submit and manage declarations
- Webhooks — Receive customs response notifications