Feature Overview
The 3PL Stock Regulations feature allows an external warehouse provider to send stock adjustments and physical inventory counts directly to Business Central, without requiring warehouse staff to manually enter journal lines. The 3PL posts data into a dedicated Item Journal Buffer in BC via the REST API. From there, a BC user reviews and transfers the buffer lines into the standard BC Item Journal or Physical Inventory Journal, and optionally posts them automatically.
Two types of stock regulation are supported. Stock adjustments (Item Journal type) are used when the 3PL needs to correct inventory — for example after a stock discrepancy is found. Positive quantities create positive adjustments, negative quantities create negative adjustments. Physical inventory counts (Phys. Inventory Journal type) are used when the 3PL sends a full counted quantity for an item at a location. BC can optionally calculate the expected quantity from the current item ledger entries or warehouse entries and include it in the journal line so the difference is visible before posting.
The buffer is a staging area: lines received from the 3PL accumulate in the 3PL Item Journal Buffer page until a BC user (or an automated process) triggers the transfer to the actual journal. A setup in Warehouse Manager Setup controls which journal template and batch the lines are written to, and whether they should be posted immediately upon transfer or left in the journal for manual review and posting.
Key Facts
| Topic | Detail |
|---|---|
| Buffer page | 3PL Item Journal Buffer |
| API entity | insertItemJrnlBuffer (v2.0, POST) |
| Supported journal types | Item (stock adjustment), Phys. Inventory (physical count) |
| Item identification | Item No. or GTIN |
| Tracking support | Lot No., Serial No. |
| Expected qty calculation | Optional — calculated from item ledger entries or warehouse entries |
| Auto-post option | Configurable per journal type in Warehouse Manager Setup |
Getting Started
- Open Warehouse Manager Setup.
- In the Setup 3rd Party Behavior → Stock Regulations section, set Adjust Jrnl. Template Name to an existing Item-type journal template.
- Set Item Adjustment Jrnl. Batch Name to an existing batch within that template.
- Optionally enable Post Adjustment Jrnl. Lines to automatically post adjustment lines when transferred from the buffer.
- Set Phys. Jrnl. Template Name to an existing Phys. Inventory journal template.
- Set Item Phys. Jrnl. Batch Name to a batch within that template.
- Optionally enable Post Phys. Invt. Journal Lines to automatically post physical inventory lines when transferred.
- Optionally enable Calculate Exp. Qty. (Base) if you want BC to calculate the expected inventory quantity when the 3PL sends a physical count. This allows BC to pre-fill the Qty. (Calculated) on the journal line.
- The 3PL can now POST to the
insertItemJrnlBufferendpoint to add lines to the buffer. - Open 3PL Item Journal Buffer, review the pending lines, and choose Update Physical Inventory Journal or Update Item Journal to transfer lines to the corresponding journal.
Related Features
The journals referenced in the Stock Regulations setup — Item Journal and Physical Inventory Journal — are standard Business Central functionality. The buffer simply pre-populates lines in those journals, after which standard BC posting rules apply. Connector Setup & Location Linking is a prerequisite: the 3PL must authenticate using a valid connector token when calling the insertItemJrnlBuffer endpoint.
User Stories
US-01: Configure the Item Journal for receiving 3PL stock adjustments
As a IT Manager
I want to configure which Item Journal template and batch 3PL stock adjustments are written to
So that adjustments from the 3PL land in a predictable, controlled journal batch
Setup:
- Open Warehouse Manager Setup.
- In Setup 3rd Party Behavior → Stock Regulations, set Adjust Jrnl. Template Name to an existing Item-type journal template (non-recurring).
- Set Item Adjustment Jrnl. Batch Name to an existing batch within that template.
- Save.
Note: Both the template and the batch must exist in BC before saving. BC will error if either does not exist when lines are transferred from the buffer.
US-02: Configure the Physical Inventory Journal for receiving 3PL stock counts
As a IT Manager
I want to configure which Physical Inventory Journal template and batch 3PL physical counts are written to
So that counted quantities from the 3PL appear in the correct journal for review and posting
Setup:
- Open Warehouse Manager Setup → Setup 3rd Party Behavior → Stock Regulations.
- Set Phys. Jrnl. Template Name to an existing Phys. Inventory journal template (non-recurring).
- Set Item Phys. Jrnl. Batch Name to an existing batch within that template.
- Save.
US-03: Enable automatic posting of stock adjustments when transferred from the buffer
As a IT Manager
I want to configure BC to automatically post Item Journal lines when they are transferred from the 3PL buffer
So that stock adjustments are applied immediately without requiring a separate posting step
Setup:
- Open Warehouse Manager Setup → Setup 3rd Party Behavior → Stock Regulations.
- Enable Post Adjustment Jrnl. Lines.
- Save. When a user chooses Update Item Journal on the 3PL Item Journal Buffer, BC writes the lines to the journal and immediately posts them.
Note: Use this option with caution in production. All lines transferred in one action are posted together. Ensure the 3PL data is validated before enabling auto-posting.
US-04: Enable automatic posting of physical inventory counts when transferred from the buffer
As a IT Manager
I want to configure BC to automatically post Physical Inventory Journal lines on transfer
So that stock counts from the 3PL are applied to BC inventory immediately
Setup:
- Open Warehouse Manager Setup → Setup 3rd Party Behavior → Stock Regulations.
- Enable Post Phys. Invt. Journal Lines.
- Save.
US-05: Enable expected quantity calculation for physical inventory counts
As a Warehouse Manager
I want to have BC calculate the expected inventory quantity when a physical count is received from the 3PL
So that the journal line shows the difference between what BC expects and what the 3PL counted, before posting
Setup:
- Open Warehouse Manager Setup → Setup 3rd Party Behavior → Stock Regulations.
- Enable Calculate Exp. Qty. (Base).
- Save. When the 3PL sends a physical count line, BC calculates the expected quantity from item ledger entries (or warehouse entries for bin-mandatory locations) and stores it on the buffer line. When transferred, the journal line's Qty. (Calculated) is pre-filled with this value.
Note: For bin-mandatory locations, the expected quantity is calculated from warehouse entries filtered by location, bin, item, and variant. For non-bin locations, it is calculated from item ledger entries. The calculation date is based on the date sent by the 3PL, or today's work date if no date is provided.
US-06: Receive a stock adjustment from the 3PL via the API
As a Logistics Coordinator
I want to have the 3PL send stock adjustment quantities to BC
So that inventory discrepancies found at the external warehouse are reflected in BC
Setup:
- Ensure the Item Journal template and batch are configured in Warehouse Manager Setup.
- The 3PL POSTs to the
insertItemJrnlBufferAPI endpoint with Template Type =Item, providing Item No. (or GTIN), Location Code, Quantity (positive for increase, negative for decrease), Unit of Measure Code, Bin Code (if applicable), and optionally a Reason Code and Date. - The line appears in the 3PL Item Journal Buffer page with Handled = false.
- A user reviews the line and chooses Update Item Journal to transfer it to the Item Journal.
US-07: Identify items by GTIN when sending buffer lines from the 3PL
As a Logistics Coordinator
I want to have the 3PL send stock lines using GTIN instead of BC item numbers
So that the 3PL does not need to maintain a mapping of BC item numbers in their system
Setup:
- Ensure items in BC have the GTIN field populated on the item card.
- The 3PL POSTs buffer lines with the gtin field populated instead of itemNo.
- BC looks up the item by GTIN and populates the Item No. automatically. If more than one item has the same GTIN, BC returns an error.
Note: GTIN lookup will fail if no item matches the GTIN, or if multiple items share the same GTIN. Ensure GTIN values are unique in BC.
US-08: Receive a physical inventory count from the 3PL
As a Warehouse Manager
I want to have the 3PL send a full physical stock count for an item
So that BC inventory can be reconciled against the actual quantity at the external warehouse
Setup:
- Ensure the Phys. Inventory Journal template and batch are configured in Warehouse Manager Setup.
- The 3PL POSTs to
insertItemJrnlBufferwith Template Type =Phys. Inventory, providing Item No. (or GTIN), Location Code, Bin Code (if applicable), and Quantity as the counted physical quantity in base units. - If Calculate Exp. Qty. (Base) is enabled, BC pre-fills the expected quantity on the buffer line.
- Open the 3PL Item Journal Buffer and review the line. Choose Update Physical Inventory Journal to transfer it.
US-09: Send a stock adjustment with lot number tracking from the 3PL
As a Warehouse Manager
I want to receive stock adjustments that include lot number information from the 3PL
So that the resulting item journal entry is fully traceable by lot
Setup:
- The 3PL POSTs to
insertItemJrnlBufferwith Template Type =Itemand includes the lotNo field. - The buffer line stores the lot number.
- When transferred to the Item Journal, the lot number is included on the journal line.
- On posting, the lot number is recorded in the resulting item ledger entry.
US-10: Send a physical count with serial number tracking from the 3PL
As a Warehouse Manager
I want to receive physical inventory count lines that include serial numbers
So that each serialised unit counted by the 3PL is individually recorded when the journal is posted
Setup:
- The 3PL POSTs to
insertItemJrnlBufferwith Template Type =Phys. Inventoryand includes the serialNo field. - The buffer line stores the serial number.
- The line is transferred and posted with the serial number assigned to the physical inventory entry.
US-11: Review pending buffer lines before transferring to the journal
As a Warehouse Manager
I want to review all pending 3PL stock lines in the buffer before they are transferred to the journal
So that I can verify the data looks correct and catch any obvious errors before they affect inventory
Setup:
- Open 3PL Item Journal Buffer (search for it or navigate from Warehouse Manager Setup).
- Review all lines where Handled = false. Check Item No., Location Code, Quantity, and Date.
- If a line looks incorrect, delete it from the buffer. Coordinate with the 3PL to re-submit corrected data if needed.
- When satisfied, choose Update Item Journal or Update Physical Inventory Journal to transfer the relevant lines.
US-12: Transfer buffer lines to the Item Journal and navigate to the journal for review
As a Warehouse Manager
I want to transfer adjustment buffer lines to the Item Journal and then open the journal directly
So that I can review the lines in their final format before posting
Setup:
- Open 3PL Item Journal Buffer.
- Choose Update Item Journal. BC confirms the action and transfers all unhandled lines of type Item to the configured journal batch.
- If Post Adjustment Jrnl. Lines is disabled, the lines remain in the journal unposted.
- Choose Item Journal from the action bar to navigate directly to the configured batch and review or edit lines before posting manually.
US-13: Transfer physical count buffer lines to the Physical Inventory Journal
As a Warehouse Manager
I want to transfer physical count buffer lines to the Physical Inventory Journal
So that I can review the counted vs. expected quantities before posting
Setup:
- Open 3PL Item Journal Buffer.
- Choose Update Physical Inventory Journal. BC transfers all unhandled lines of type Phys. Inventory to the configured batch.
- Choose Physical Inventory Journal from the action bar to navigate to the batch and review lines.
- The journal shows Qty. (Phys. Inventory) (from the 3PL) and Qty. (Calculated) (from BC). Review the difference before posting.
US-14: Include a reason code on stock adjustment lines sent by the 3PL
As a Logistics Coordinator
I want to have the 3PL include a reason code on stock adjustment API calls
So that the resulting item ledger entries explain why the adjustment was made
Setup:
- The 3PL includes the reasonCode field in the
insertItemJrnlBufferAPI payload. - The reason code is stored on the buffer line and transferred to the journal line.
- If the 3PL does not provide a reason code, the batch's default reason code is used instead.
Field Reference
| Field | Where to find it | What it does | Default |
|---|---|---|---|
| Adjust Jrnl. Template Name | Warehouse Manager Setup → Stock Regulations | Item journal template used for 3PL stock adjustments | — |
| Item Adjustment Jrnl. Batch Name | Warehouse Manager Setup → Stock Regulations | Journal batch within the adjustment template | — |
| Post Adjustment Jrnl. Lines | Warehouse Manager Setup → Stock Regulations | Automatically posts adjustment lines when transferred from the buffer | Off |
| Phys. Jrnl. Template Name | Warehouse Manager Setup → Stock Regulations | Phys. Inventory journal template used for 3PL stock counts | — |
| Item Phys. Jrnl. Batch Name | Warehouse Manager Setup → Stock Regulations | Journal batch within the physical inventory template | — |
| Post Phys. Invt. Journal Lines | Warehouse Manager Setup → Stock Regulations | Automatically posts physical inventory lines when transferred from the buffer | Off |
| Calculate Exp. Qty. (Base) | Warehouse Manager Setup → Stock Regulations | Pre-calculates expected inventory when a physical count buffer line is created | Off |
| Item No. | 3PL Item Journal Buffer | The BC item number of the stock to adjust or count | — |
| GTIN | 3PL Item Journal Buffer | GTIN used to look up the item if Item No. is not provided | — |
| Location Code | 3PL Item Journal Buffer | The location where the adjustment or count applies | — |
| Bin Code | 3PL Item Journal Buffer | The bin within the location (required for bin-mandatory locations on physical counts) | — |
| Variant Code | 3PL Item Journal Buffer | Item variant to adjust or count | — |
| Unit of Measure Code | 3PL Item Journal Buffer | Unit of measure for the quantity (defaults to item base UOM) | Base UOM |
| Quantity | 3PL Item Journal Buffer | The adjustment quantity (positive = increase, negative = decrease) or counted quantity | — |
| Qty. Calculated (Base) | 3PL Item Journal Buffer | Expected quantity calculated by BC (for physical counts when Calculate Exp. Qty. is enabled) | — |
| Template Type | 3PL Item Journal Buffer | Whether the line is a stock adjustment (Item) or physical count (Phys. Inventory) | Phys. Inventory |
| Date | 3PL Item Journal Buffer | Posting date for the journal line (defaults to work date if blank) | Work Date |
| Reason Code | 3PL Item Journal Buffer | Reason for the adjustment, transferred to the journal line | — |
| Lot No. | 3PL Item Journal Buffer | Lot number for tracked items | — |
| Serial No. | 3PL Item Journal Buffer | Serial number for tracked items | — |
| Handled | 3PL Item Journal Buffer | Indicates whether this line has been transferred to the journal | Off |
