Feature Overview
The heart of the Duty Reporting app is the duty entry ledger. Every time a duty-subject item is involved in a posted transaction, the app automatically creates one or more duty entries that reflect the duty obligation arising from that transaction. This happens without any manual intervention — the app subscribes to item posting events and creates the appropriate entries as part of the normal posting process.
Each duty entry carries a type that indicates where it sits in the duty lifecycle. The five entry types are Suspension (duty tracked but not yet payable, used for bonded warehouse receipts), Imposition (duty is payable — created when goods enter regular circulation), Carryforward (duty is already included in the purchase price, so no additional obligation arises), Settlement (created when an Imposition is included in a periodic duty settlement run), and Reimbursement (created when goods are sold duty-free and the previously imposed duty must be reclaimed).
The system traces the chain of item application entries to carry duty obligations forward across the supply chain. When a duty-subject item is purchased, an Imposition entry is created. When the same item is later sold, the system finds the Imposition entry via the item application ledger and creates a Settlement entry against it. If the sale is to a duty-free customer, a Reimbursement entry is created instead. This linkage is precise: each outbound duty entry carries an Applies-to Entry reference pointing to the inbound entry that generated the original obligation.
Duty entries cannot be unapplied. The system blocks re-application of item ledger entries that carry duty entries, because unapplication would destroy the traceability chain. Corrections are handled through the standard BC item correction mechanism, which creates mirror correction entries in the duty ledger.
Key Facts
| Topic | Detail |
|---|---|
| Duty entries page | Duty Entries (accessible from Item Duty Setup, Item Card, or search) |
| Entry creation | Automatic — triggered on item ledger entry posting for items with Item Duty Setup |
| Entry types | Suspension, Imposition, Settlement, Reimbursement, Carryforward |
| Imposition triggers | Purchase receipt (non-duty-free vendor), sales return receipt, transfer shipment out of customs warehouse |
| Suspension triggers | Purchase receipt into a Customs Warehouse location (Warehousekeeper duty) |
| Carryforward triggers | Purchase from a duty-free vendor (Gen. Bus. Posting Group in Duty Posting Setup with Duty-free = on) |
| Reimbursement triggers | Sale to a duty-free customer (exemption or duty-free posting group) |
| Settlement triggers | Running the Create Duty Settlement batch |
| Open flag | True while the entry has remaining quantity; False when fully settled or corrected |
| Correction entries | Created automatically when a posted item transaction is undone via the item correction mechanism |
| Unapplication | Blocked for item entries carrying duty |
Getting Started
- Confirm that Item Duty Setup exists for the item (see the Duty Setup article). Without this, no entries are created.
- Post a purchase receipt for the item — the system creates a Suspension or Imposition entry automatically depending on the vendor's posting group and whether the location is a customs warehouse.
- Open Duty Entries from the Item Card (via the Duty Reporting action) or from Item Duty Setup to inspect the entries.
- Post a sales shipment for the same item to confirm that an outbound duty entry is created and linked to the inbound entry.
- If no duty entries appear after posting, verify that the item has a valid Item Duty Setup line and that the app is enabled.
Related Features
Duty Entries depend entirely on Duty Setup — specifically Item Duty Setup, Duty Rates, and Duty Posting Setup — to determine what entries to create and at what rate. The Customs Warehouse feature introduces the Suspension entry type; without a Customs Warehouse Setup, all non-duty-free inbound transactions create Imposition entries. Open Imposition entries feed into Duty Settlement, Reimbursement, and Reporting, where they are converted into Settlement entries and linked to purchase invoice lines. The Replay Posting function in Item Duty Setup allows retroactive creation of duty entries if setup was added after items were already transacted.
User Stories
US-01: Understand what duty entry is created on a purchase receipt
As a Purchasing Agent
I want to understand what duty entry type is created when I receive goods
So that I can verify the system has handled the duty obligation correctly
Setup:
No setup required — entries are created automatically. The entry type depends on the following rules:
- If the vendor's Gen. Bus. Posting Group has a line in Duty Posting Setup for the item's Duty Code with Duty-free enabled → a Carryforward entry is created (settled immediately, no payable obligation).
- If the location is a Customs Warehouse and the Duty Code has Warehousekeeper enabled → a Suspension entry is created (duty tracked, not yet payable).
- In all other cases → an Imposition entry is created (duty is payable).
Open Duty Entries after posting to verify the entry type and duty amount.
US-02: Verify duty entries after a sales shipment
As a Sales Order Processor
I want to check the duty entries created after posting a sales shipment
So that I can confirm the duty settlement chain is correctly linked
Setup:
- Post a sales shipment for a duty-subject item.
- Open Duty Entries and filter on the item and posting date.
- Locate the outbound entry (negative quantity) — it should show the same Duty Code as the inbound entry and have an Applies-to Entry value pointing to the original Imposition entry.
- If the customer is duty-free, a Reimbursement entry is also created automatically.
Note: The system traces the item application chain to find the correct inbound duty entry to link against. If the item has been through multiple transfers or production steps, the applies-to chain may span several entries.
US-03: Check duty entries after a sales return
As a Sales Order Processor
I want to understand how duty is handled when a customer returns goods
So that I know whether the previously settled duty is correctly reversed
Setup:
- Post a sales return receipt for a duty-subject item.
- Open Duty Entries and check for a new positive entry for the returned quantity.
- If the original sale was to a duty-free customer, the return re-creates an Imposition entry (the goods are back in stock and duty is again payable).
- If the original sale was a standard duty sale, the return creates an Imposition entry for the returned quantity.
US-04: Check duty entries after a purchase return
As a Purchasing Agent
I want to understand how duty is handled when I return goods to a vendor
So that I know whether the duty obligation has been correctly reduced
Setup:
- Post a Purchase Return Shipment for a duty-subject item.
- Open Duty Entries and verify that a negative outbound entry has been created, applied against the original inbound Imposition entry.
- If the vendor is on a duty-free posting group, a Reimbursement entry is also created.
US-05: Check duty entries after a production output
As a Production Planner
I want to understand what duty entry is created when I post production output
So that I know how the duty on finished goods produced from duty-subject components is tracked
Setup:
- Post a production output journal for an item that has Item Duty Setup.
- Open Duty Entries and check for an entry with Entry Type Imposition.
- The Imposition entry for output is immediately marked as Settled if the location is not a Customs Warehouse. If it is a Customs Warehouse with Allow Output Posting enabled, a Suspension entry is created instead.
Note: Output entries that are immediately settled represent production output where the duty obligation flows through from the components. The roll-up mechanism (see the Duty Settlement article) is used when the duty content of a finished item should reflect the accumulated duty from its BOM components.
US-06: Check duty entries after a production consumption
As a Production Planner
I want to verify how duty is handled when components are consumed in production
So that I understand whether the component's duty obligation is transferred to the finished good or settled at consumption
Setup:
- Post a consumption journal for a duty-subject component.
- Open Duty Entries and locate the outbound entry for the consumption. It should apply against the original Imposition entry for the component.
- If the consumption location has Allow Duty-free Consumption enabled (customs warehouse), the Imposition is force-settled and a Reimbursement entry is created — net duty is zero.
- If the location is not a customs warehouse, the outbound entry follows the standard carryforward chain.
US-07: Understand the Carryforward entry type
As a Accountant
I want to understand when Carryforward entries are created
So that I know why some purchases do not generate a payable duty obligation
Setup:
No action required — Carryforward entries are created automatically. They occur when:
- A purchase is received from a vendor whose Gen. Bus. Posting Group matches a Duty-free line in Duty Posting Setup for the relevant Duty Code.
Carryforward entries are immediately marked as Settled = true. They still appear in Duty Entries for traceability, but they do not appear in the settlement run and require no further action. Their purpose is to track the duty content of goods whose duty was already handled by the supplier.
US-08: Retroactively create duty entries for an item added to setup after posting
As a Business Manager
I want to create duty entries for historical transactions when a new item is added to Item Duty Setup
So that the duty ledger reflects the correct obligation even for transactions that were posted before the setup was added
Setup:
- Ensure the Item Duty Setup line exists for the item and duty code.
- Open Item Duty Setup and select the relevant line.
- Choose Create Duty Entries (Replay Posting) from the actions.
- Confirm the dialog — the system will reprocess all posted item ledger entries for this item/duty combination and create the corresponding duty entries.
- Review the result message showing how many item ledger entries were processed.
Note: The system will block this action if duty entries with a non-zero duty amount already exist for the combination, unless all existing entries are unsettled and have zero value (in which case they are deleted and recreated). This prevents overwriting a live duty ledger. Do not run this on combinations that are already in active use unless you are certain no existing entries should be preserved.
US-09: Understand how duty entries are corrected when a posted transaction is reversed
As a Accountant
I want to understand how the duty ledger is updated when a posted transaction is reversed using the standard BC correction mechanism
So that I know the duty entries remain accurate after a correction
Setup:
- When a posted item transaction is reversed in BC (e.g. using Undo Receipt or a correction item journal), the system automatically creates mirror correction entries in Duty Entries.
- The corrected base entry is closed (Open = false, Settled = true, Correction = true).
- A new correction entry with the opposite quantity is inserted, also marked as Correction.
- The net effect on the duty ledger is zero for the corrected transaction.
Note: The system will block the correction if the duty entry to be corrected is already linked to an item charge line in a purchase invoice or credit memo (i.e., it has already been included in a settlement or reimbursement document). You must delete the purchase invoice/credit memo line first before the correction can proceed.
US-10: Understand why item re-application is blocked for duty items
As a Accountant
I want to understand why I cannot unapply item ledger entries for duty-subject items
So that I know how to handle situations where I need to change the application
Setup:
No setup action is possible — re-application is permanently blocked for item entries carrying duty entries. This is by design: the duty entry chain is tightly linked to the item application chain, and unapplying would break the traceability of duty obligations.
If you need to correct a transaction, use the standard BC item correction/reversal mechanism, which creates proper correction duty entries rather than modifying existing ones.
US-11: Review duty entries for a specific item and duty code
As a Accountant
I want to view all duty entries for a specific item and duty code
So that I can reconcile the duty ledger and understand the open obligations
Setup:
- Open Item Duty Setup and find the line for the item and duty code.
- Choose Duty Entries from the actions. The page opens pre-filtered to that item and duty code.
- Review the entries. Key columns to focus on: Entry Type, Quantity, Remaining Quantity, Duty Amount, Open, Settled, Applies-to Entry.
- Open entries (Open = true) with Entry Type = Imposition represent outstanding payable duty. These will be included in the next settlement run.
US-12: Understand the Applies-to Entry chain
As a Accountant
I want to trace how duty entries are linked across the supply chain
So that I can follow the full journey of a duty obligation from receipt to settlement
Setup:
- Open Duty Entries and find an outbound entry (negative quantity).
- Note the Applies-to Entry value — this points to the inbound entry whose duty obligation this outbound entry is applying against.
- Look up the referenced entry number to find the original Imposition or Suspension entry.
- For Carryforward entries, the chain may go deeper: the system walks the chain until it finds the entry whose item ledger entry matches its parent item ledger entry (the original inbound).
Field Reference
| Field | Where to find it | What it does | Default |
|---|---|---|---|
| Entry No. | Duty Entries | Auto-incremented unique identifier | — |
| Item No. | Duty Entries | The item this entry relates to | — |
| Duty Code | Duty Entries | The duty code that generated this entry | — |
| Entry Type | Duty Entries | Suspension, Imposition, Settlement, Reimbursement, or Carryforward | — |
| Quantity | Duty Entries | Quantity in the item's unit of measure | — |
| Remaining Quantity | Duty Entries | Quantity not yet matched by settlement or reimbursement entries | — |
| Duty Rate | Duty Entries | Rate applied on this entry (0 for Suspension) | — |
| Duty Amount | Duty Entries | Calculated duty amount (Quantity × Qty. per UoM × Duty Rate) | — |
| Posting Date | Duty Entries | Date of the underlying item transaction | — |
| Location Code | Duty Entries | Location where the item transaction occurred | — |
| Customs Warehouse | Duty Entries | Indicates the entry was posted to/from a customs warehouse location | Off |
| Open | Duty Entries | True while the entry has remaining quantity | True |
| Settled | Duty Entries | True once fully settled or marked as carryforward | False |
| Applies-to Entry | Duty Entries | Points to the inbound entry this outbound entry applies against | — |
| Item Ledger Entry No. | Duty Entries | The item ledger entry that triggered this duty entry | — |
| Parent Item Ledger Entry No. | Duty Entries | The originating inbound item ledger entry in the application chain | — |
| Correction | Duty Entries | Indicates the entry is part of a transaction correction | Off |
| Closed by Entry | Duty Entries | Entry No. of the correction entry that closed this entry | — |