What is NVIT?
NVIT stands for Norsk Varer i Transitt (Norwegian Goods in Transit). It’s a customs rule set by the Norwegian Customs Authority (Tolletaten) that applies when Norwegian goods are transported between two places within Norway but pass through Sweden or Finland along the way — a common route for shipments heading to Northern Norway.
Even though this is a purely domestic move in terms of where the goods start and end, because the route crosses a Schengen land border, Norwegian customs law requires a formal transit declaration.
Why it matters now
A temporary exemption that allowed shippers to bypass NVIT requirements expired on 1 April 2026. From that date, full compliance is mandatory for all affected shipments.
⚠️ Non-compliant shipments will be held or refused at the Swedish or Finnish border crossing. There is no grace period.
When does NVIT apply?
NVIT applies when all three conditions are met:
- Shipper is located in Norway
- Receiver is located in Norway (typically Northern Norway: Nordland, Troms, Finnmark)
- The physical transport route passes through Sweden or Finland
The carriers most commonly routing shipments this way are Bring and PostNord. Always confirm with the carrier whether a specific product uses this route — not all Norwegian domestic services transit via Sweden or Finland.
Required customs data
The following data must be provided per goods line on each affected shipment:
| Field | Description | Format |
| HS Code | 6-digit Harmonized System tariff code | Numeric, exactly 6 digits (e.g. 610910) |
| Goods description | Plain-language description of the goods | Free text (English or Norwegian) |
| Gross weight | Weight of the goods per line | Kilograms |
| Number of units | Quantity of items on the line | Numeric |
| Unit of measure | Unit type | Code (e.g. PCE, KG, BOX) |
At the shipment level, the following packaging information is also required:
| Field | Description |
| Packaging type | Type of package (e.g. BOX, PAL, ENV) |
| Package count | Number of packages/colli in the shipment |
ℹ️ The HS code must be exactly 6 digits. Do not use 8- or 10-digit national tariff extensions. Tolletaten requires the internationally standardised 6-digit chapter/heading format.
ℹ️ The customer does not submit to NCTS directly. nShift passes the required goods data to the carrier (Bring / PostNord); the carrier handles the NCTS filing with Norwegian Customs.
How to send NVIT data in nShift Ship
Ship transmits customs data via the DetailGroups structure in the Shipment Server API request. This is the same mechanism used for paperless invoicing on international shipments.
GroupID 1 — Article Info (one row per goods line)
| KindID | Field | Description | Required |
| 7 | Description of goods | Plain-language goods description | ✅ |
| 18 | Commodity Code | 6-digit HS code | ✅ |
| 6 | Unit Weight | Weight per unit in kg | ✅ |
| 5 | No. of units / Quantity / No of Pieces |
Quantity / number of units on this line. The field name varies from carrier to carrier. | ✅ |
| 8 | Unit of Measure | Unit code (e.g. PCE) | ✅ |
| 4 | Country of Origin | 2-letter ISO country code | Recommended |
Packaging — Lines structure
Packaging type and count are passed via the Lines structure of the shipment request (not DetailGroups). Each entry represents a physical package type:
"Lines": [
{
"GoodsTypeName": "BOX",
"Number": 3,
"PkgWeight": 5000,
"LineWeight": 5000
}
]
Minimal NVIT DetailGroups example
"DetailGroups": [
{
"GroupID": 1,
"Rows": [
{
"RowNo": 1, "LineNo": 1,
"Details": [
{ "KindID": 7, "Value": "Woollen sweaters" },
{ "KindID": 18, "Value": "610910" },
{ "KindID": 6, "Value": "2.5" },
{ "KindID": 5, "Value": "10" },
{ "KindID": 8, "Value": "PCE" }
]
}
]
}
]
Carrier notes
-
Bring (INT 442 / Bringxml NO 142): Customs data is passed via DetailGroups as above. Bring submits the NCTS declaration on the customer's behalf. Confirm with the Bring EDI coordinator (integrasjon.norge@bring.com) that your customer account is NVIT-enabled.
-
PostNord (API 956): Confirm with PostNord which product/subcarrier handles the Northern Norway via Sweden route, and whether customs fields apply to that product.
Before you go live
Before sending your first NVIT-compliant shipment, work through the following checks to make sure your setup is complete.
| # | Check | What to verify |
| 1 | HS codes are set up | Your ERP or WMS must provide a 6-digit HS code for each product line. This is typically stored in your product master — confirm it is populated and correct before shipping. |
| 2 | Goods descriptions are meaningful | Each goods line needs a clear, plain-language description in English or Norwegian. Vague entries such as "goods" or "merchandise" will be rejected by Norwegian Customs (Tolletaten). |
| 3 | Weight is available at line level | Gross weight must be provided per goods line, not just as a total for the shipment. Check that your system can supply this breakdown. |
| 4 | Packaging types are mapped | Your packaging types must be mapped to the codes expected by your carrier (e.g. BOX, PAL, ENV). Check with your nShift implementation contact if you are unsure which codes to use. |
| 5 | Your carrier account is NVIT-enabled | Contact Bring or PostNord to confirm that your account has been enabled for transit declarations. This must be set up at the carrier side before any NVIT shipments can be processed. |
| 6 | Test shipment completed | Send at least one test shipment to a Northern Norway address and confirm that your carrier accepts the declaration before going live with production shipments. |
Production View example - Bring Intl (INT 442)
For Bring Intl (INT 442), NVIT customs information can be entered manually in the Details section in Production.
Activate the Details group
If the Details section is not visible in Production, it must first be activated:
- Go to Main > Production.
- Select Tools > Setup Current View.
- Open the Groups tab.
- Select Details in the list.
- Click OK.
The Details group will then be displayed at the bottom of the Production view.
If the required customs fields are not available in the Details group, they may also need to be enabled in the setup. Under the relevant setup level, create or open Details and enable the required CustomsArticle fields.
Enter the NVIT details
Specify the required number of Detail Lines in the Goods Information section. This creates the rows that can then be completed in the Details section.
For Bring Intl (INT 442), enter one row for each customs article:
| Field | Shipment field | Example |
|---|---|---|
| Quantity | dfld_CustomsArticle.Quantity | 10 |
| Country of origin | dfld_CustomsArticle.CountryOfOrigin | NO |
| Total Value | dfld_CustomsArticle.TotalValue | 2500.00 |
| Currency | dfld_CustomsArticle.Currency | NOK |
| Article No | dfld_CustomsArticle.ArticleNo | 610910 |
| Description of goods | dfld_CustomsArticle.DescrOfGoods | Woollen sweaters |
| Item Netto Weight (KGM) | dfld_CustomsArticle.NettoWeight | 25.0 |
Example with two detail lines:
Goods Line No: 1
Quantity: 10
Country of origin: NO
Total Value: 2500.00
Currency: NOK
Article No: 610910
Description of goods: Woollen sweaters
Item Netto Weight: 25.0
Goods Line No: 2
Quantity: 5
Country of origin: NO
Total Value: 1250.00
Currency: NOK
Article No: 620342
Description of goods: Cotton trousers
Item Netto Weight: 7.5For this NVIT setup, Article No contains the required 6-digit HS span. Each customs article should be entered on its own detail line and linked to the corresponding goods line.
Import Setup example - Bring Intl (INT 442)
For Bring Intl (INT 442), NVIT customs article data can be created through Import Setup.
The import file can contain both the shipment goods lines and the related customs article rows. All rows that belong to the same shipment must be grouped using ShipmentKeyNo->Shipment.
ShipmentKeyNo->Shipment should be mapped to a field that contains the same value on every row belonging to the same shipment. A common choice is the order number or another unique shipment reference.
For example:
ShipmentKeyNo->Shipment = <F2>If F2 contains the order number NVIT-EXAMPLE-001, then every goods line and customs detail line for that shipment must also contain NVIT-EXAMPLE-001 in F2.
Map the customs fields as follows:
| Import field | Shipment field | Example |
|---|---|---|
| F14 | Quantity.CustomsArticle->Shipment details | 10 |
| F15 | CountryOfOrigin.CustomsArticle->Shipment details | NO |
| F16 | TotalValue.CustomsArticle->Shipment details | 2500.00 |
| F17 | Currency.CustomsArticle->Shipment details | NOK |
| F18 | ArticleNo.CustomsArticle->Shipment details | 610910 |
| F19 | DescrOfGoods.CustomsArticle->Shipment details | Woollen sweaters |
| F20 | NettoWeight.CustomsArticle->Shipment details | 25.0 |
| F21 | Detail Link To Goods Line->Import | 1 |
| E1 | ShipmentKeyNo->Shipment | <F2> |
Detail Link To Goods Line->Import connects each customs article row to the corresponding goods line in the shipment. For example, value 1 links the customs article to goods line 1, while value 2 links it to goods line 2.
Example import file
BRING,NVIT-EXAMPLE-001,NVIT Testmottaker AS,Storgata 1,9008,Tromsø,NO,nvit@example.com,+4777000000,+4790000000,1,Woollen sweaters,0.5,,,,,,,,
BRING,NVIT-EXAMPLE-001,NVIT Testmottaker AS,Storgata 1,9008,Tromsø,NO,nvit@example.com,+4777000000,+4790000000,1,Cotton trousers,0.5,,,,,,,,
BRING,NVIT-EXAMPLE-001,NVIT Testmottaker AS,Storgata 1,9008,Tromsø,NO,nvit@example.com,+4777000000,+4790000000,0,,,10,NO,2500.00,NOK,610910,Woollen sweaters,25.0,1
BRING,NVIT-EXAMPLE-001,NVIT Testmottaker AS,Storgata 1,9008,Tromsø,NO,nvit@example.com,+4777000000,+4790000000,0,,,5,NO,1250.00,NOK,620342,Cotton trousers,7.5,2In this example, the first two rows create the shipment goods lines. The following rows create the related NVIT customs article details.
All rows use the same shipment key, NVIT-EXAMPLE-001, so they are imported as part of the same shipment.
For NVIT, ArticleNo.CustomsArticle contains the 6-digit HS span.
Import Setup example - Single goods line and single detail line
If the shipment contains only one goods line and one customs detail line, both can be imported on the same row.
In this case, the standard shipment and goods-line fields are followed directly by the NVIT customs article fields. There is no need to create separate rows for the goods line and customs detail.
Map the relevant fields as follows:
| Import field | Shipment field | Example |
|---|---|---|
| F11 | Number->Line | 1 |
| F12 | Contents->Line | Woollen sweaters |
| F13 | Weight->Line | 0.5 |
| F14 | Quantity.CustomsArticle->Shipment details | 10 |
| F15 | CountryOfOrigin.CustomsArticle->Shipment details | NO |
| F16 | TotalValue.CustomsArticle->Shipment details | 2500.00 |
| F17 | Currency.CustomsArticle->Shipment details | NOK |
| F18 | ArticleNo.CustomsArticle->Shipment details | 610910 |
| F19 | DescrOfGoods.CustomsArticle->Shipment details | Woollen sweaters |
| F20 | NettoWeight.CustomsArticle->Shipment details | 25.0 |
Example import row
BRING,NVIT-EXAMPLE-001,NVIT Testmottaker AS,Storgata 1,9008,Tromsø,NO,nvit@example.com,+4777000000,+4790000000,1,Woollen sweaters,0.5,10,NO,2500.00,NOK,610910,Woollen sweaters,25.0This single row creates both the shipment goods line and its corresponding customs detail.
Because there is only one goods line and one customs detail line, ShipmentKeyNo->Shipment and Detail Link To Goods Line->Import are not required for linking multiple import rows. These fields become relevant when the shipment data is split across several rows, for example when importing multiple goods lines or multiple customs detail lines.