Consignee Stock Transfer
Move stock you still own between your own locations and consignee locations — a partner showroom, a customer site, a dealer’s shelf — in one document per direction, with no in-transit queue and no journal: the stock stays on your balance sheet at cost wherever it physically is. Company-level value is correct throughout, but the per-location figure at a consignee location that has never held the item is valued at zero, so read the company figure rather than the location one. Billing the consignee for what they sold is an ordinary sales invoice; the Consignment Billing applet, despite its name, is a supplier’s bill to you. Check the first Goods Issued Note you finalise before you trust the rest: read from the source, it is saved as the consignment-in document type and moves the quantity the opposite way to its name — see Lifecycle and effects.
Your job, and the screen for it
| The job | Screen or tab | Read |
|---|---|---|
| Send stock to a consignee location — as read, the issued note moves it the reverse way: finalise one for one unit, check Stock Balance, VOID if reversed | Consignment Goods Issued Note › + (Details, Line tabs), then FINAL on the listing | Consignment Goods Issued Note; Lifecycle and effects |
| Bring stock back from a consignee, in full or in part — FINAL is refused if the consignee location holds less than you return | Consignment Goods Received Note, then FINAL on the listing | Consignment Goods Received Note; Lifecycle and effects |
| Bill the consignee for what they sold — an ordinary sales invoice whose line carries the consignee location; not Consignment Billing, which is a supplier’s bill to you | Sales Invoice (Internal) applet | Related applets |
| See what is out on consignment — read the company figure: a consignee location that never held the item values it at zero | Stock Balance applet; Stock Report › Stock Movement | Lifecycle and effects |
| Clear away an abandoned draft note — RESET only clears the screen | DISCARD on the listing | Consignment Goods Issued Note |
| Set up consignee locations and a print format | Consignee Listing (Location Class CCSG); Settings › Printable Format Settings (PRINT needs it) | Before you can use it |
Overview
The Consignee Stock Transfer applet moves stock that you still own between your own locations and consignee locations — a partner showroom, a customer site or a dealer’s shelf where your goods sit until they are sold or returned. Consignee locations are ordinary locations flagged with location class CCSG; a Consignment Goods Issued Note is meant to send stock to one (as read, it posts the reverse; see Lifecycle and effects) and a Consignment Goods Received Note brings it back.
Unlike the two-step Stock Transfer, each note is a single document that moves both ends in the same posting, so there is no in-transit queue. That is what both notes are designed to do. Read from the source, only the Goods Received Note moves them the way its name says: the Goods Issued Note adds the quantity at your own location and takes it off the consignee’s, the reverse of sending it. That is an open product finding, so test one unit first (see Lifecycle and effects). Both notes carry quantity only and post nothing to the General Ledger — the stock stays on your balance sheet at cost wherever it physically is.

Where it fits
| Direction | Applet / document | Why |
|---|---|---|
| Upstream | Organisation | Companies and branches that a consignee location belongs to; the location itself is created in this applet’s Consignee Listing |
| Upstream | Inventory Item Maintenance / Doc Item Maintenance | Items and their tracking type (serial, batch, bin) |
| Downstream | Stock Balance, Stock Availability, Stock Report | Balance per location; the consignee location shows what is out on consignment |
| Sibling | Stock Transfer | Two-step transfer with a queue, for movements between your own locations |
| Sibling | Customer Consignment | The same movement in two documents with a queue between them. It bills nobody either — both applets move quantity only |
| Downstream | Sales Invoice (Internal) | What actually bills the consignee for what they sold. There is no consignment-specific customer document; see Related applets |
Modules: Inventory.
Screens and menus
| Menu | Purpose |
|---|---|
| Consignee Listing | Create and maintain locations (including consignee locations of class CCSG) |
| Consignment Goods Issued Note | Listing and create / edit of notes meant to send stock to a consignee location (as read, FINAL moves it the other way; test one unit first) |
| Consignment Goods Received Note | Listing and create / edit of notes that bring stock back from a consignee location |
Gear (Settings) menu: Field Settings (Application Settings), Default Selection, Printable Format Settings, plus Webhook and the permission listings. Personalisation: per-user Field Settings and Default Selection.
Consignee Listing

A grid of locations with Location Class and Status columns. + opens Create Location with Details (Company Name, Branch Name, Location Code, Location Name, Description, Location Class — CCSG for a consignee, blank / BASIC otherwise — commencement and closed dates, phone, mobile, fax, email, outlet type and size, currency, status) and Address (address lines 1–5, city, postal code, state, country). Editing adds Branch, Extension and Labels tabs; on the edit screen the Location Class list also shows a third option labelled TESTTTT, which saves CCSG — leftover test markup, not a third kind of location. These are the same locations the rest of the system uses; only the CCSG class makes a location selectable as the consignee side of a note.
Consignment Goods Issued Note

Listing columns: Doc No (Tenant / Company / Branch), Doc Short Code, Doc Description, Transaction Date, Location From, Location To, Ref #, Tracking ID, Status, Posting Status, created / updated by and date. Listing buttons act on the selected rows: FINAL (drafts), DISCARD (drafts), VOID (finals), PRINT (printable format).

Details tab: Location From (any active location — the list is not filtered by class, so consignee locations are offered here too; pick one of your own. Nothing pre-fills it), Location To (consignee locations only — class CCSG), Stock Transfer Good Issue Date, Doc No fields, Doc Description, Remarks, Reference #, Tracking ID. Line tab: + opens Create Line Item with Search Item, then Add Line Item with Item Details (Item Code, Item Name, Quantity) and, depending on the item’s sub-type, Serial Number, Batch Number or Bin Number.
The draft exists before you press anything. The listing’s + creates the note on the server straight away, and the moment both locations are filled in it is saved as an ordinary draft — so a note you walk away from with Back is already in the listing as a DRAFT. RESET only clears the screen; it does not remove that draft. The button on the note is labelled CREATE whether the note is new or you are changing an existing draft, and it saves the whole note each time. Tidy abandoned notes with DISCARD on the listing.


Consignment Goods Received Note
The mirror image: Location From is restricted to consignee locations (class CCSG), Location To is one of your locations. Same tabs, line editor and listing buttons (FINAL, DISCARD, VOID, PRINT).
Configuration
Before you can use it
| Prerequisite | Where | Why |
|---|---|---|
| Company and branch | Organisation | A location must belong to a company and branch |
At least one location with class CCSG | Consignee Listing (this applet) | Without one, the consignee dropdown is empty and no note can be created |
| Items with the right tracking type | Doc Item Maintenance — the Sub Item Type, chosen when the item is created and locked at its first save | Serial / batch / bin tabs |
| Stock at Location From | — | Serial-tracked items must exist at the sending location. A received note is also refused at FINAL when the consignee location holds less than it returns; an issued note is not checked (see Lifecycle and effects) |
| Printable format (optional) | Settings > Printable Format Settings | For PRINT |
API permissions TNT_API_DOC_INTERNAL_CUSTOMER_CONSIGNMENT_IN_* and TNT_API_DOC_INTERNAL_CUSTOMER_CONSIGNMENT_OUT_* | Applet permission assignment | The Goods Issued Note is saved through the customer-consignment-in document type and the Goods Received Note through the out one, so a user needs both sets to work both menus |
No GL codes, tax codes or cashbooks are needed.
Applet settings
Settings > Field Settings is a placeholder: it opens this applet’s own screen of eight toggles that are connected to nothing, and its SAVE does nothing. So none of the settings this applet reads can be changed from any screen it offers — the three below, the HIDE_GENDOC_* button keys, the listing’s default filters, the fuzzy-search columns and the stock-balance column all stay at their defaults (off). The table says what each would do if it were set:
| Setting | What it controls | Default | Effect when changed |
|---|---|---|---|
| Enable auto popup | Nothing in this applet | off | Declared in the model; no settings screen this applet mounts offers it, and nothing in the applet reads it — the print dialog never opens by itself after FINAL. Earlier versions of this page described it as working |
DISABLE_EXPORT_PRINT_ON_DRAFT | Disable the PRINT button while any selected row is still DRAFT | off | Only finalised notes can be printed |
VERTICAL_ORIENTATION | Accordion (vertical) layout — on the Add Line Item screen only | off | The note itself and the Create Line Item search always open as side-by-side tabs; their layout switch is hard-coded, so turning this on changes one screen of the three |
Settings > Default Selection (and the personal Default Selection under Personalisation) shows Default Branch and Default Location, but neither screen saves: the form behind them is never loaded, so SAVE stores nothing. Nothing would pre-fill Location From anyway, because the note’s form looks for a default location that is never loaded. Pick Location From on every note. Settings > Printable Format Settings — the printable format stored as PRINTABLE. Set one here even if your branches already have default printable formats: PRINT stays disabled until this applet’s PRINTABLE is set (see Document behaviour settings).
The listing buttons read HIDE_GENDOC_FINAL_BUTTON, HIDE_GENDOC_DISCARD_BUTTON and HIDE_GENDOC_VOID_BUTTON from the same settings record, but no screen in this applet sets them — Field Settings is the placeholder described above — so they stay off. INCLUDE_* / ENABLE_* dimension, tax and custom-status keys are declared in the settings model and unused.
Document behaviour settings
| Setting | Effect |
|---|---|
HIDE_GENDOC_FINAL_BUTTON / HIDE_GENDOC_DISCARD_BUTTON / HIDE_GENDOC_VOID_BUTTON | Remove the listing action for everyone (no SHOW_* permissions are registered for this applet) |
DISABLE_EXPORT_PRINT_ON_DRAFT, PRINTABLE | PRINT is disabled whenever this applet’s PRINTABLE is not set, whatever the branch defaults are — so a branch default alone never makes PRINT usable. Once it is enabled, PRINT picks one format for everything you selected, from the first selected row: the branch’s default printable format for that row’s document type wins, and this applet’s PRINTABLE is used only when the branch has none (or the note carries no branch). An issued note looks for the branch default of the consignment-in type, not the out one |
No approval workflow, no custom statuses in use, no e-Invoice.
Who can change what
No client-side permissions are registered for consignee-stock-transfer in the applet registry; the listing code checks SHOW_GENDOC_FINAL_BUTTON, SHOW_GENDOC_DISCARD_BUTTON and SHOW_GENDOC_VOID_BUTTON but they are not seeded, so a HIDE_* setting hides the button for every role. Access is governed by the server-side document permissions — TNT_API_DOC_INTERNAL_CUSTOMER_CONSIGNMENT_IN_CREATE / READ / UPDATE / DELETE for the Goods Issued Note and the matching …_OUT_… set for the Goods Received Note — and location permissions.
Fields
Details
| Field | Meaning | Required | Notes |
|---|---|---|---|
Location From (locationSending, guid_store) | Where stock leaves | Yes | Issued note: your location; Received note: consignee (CCSG) location. Its company becomes the note’s company, and the Location To list is narrowed to that company’s active locations — so a consignee location must belong to the same company as the stock you send it |
Location To (locationReceiving, guid_store_2) | Where stock arrives | Yes | Issued note: consignee (CCSG) location; Received note: any active location of the same company, consignee ones included. Both locations are copied onto every line when the note is saved: one note moves stock between one pair of locations |
The rest of the Details tab is Stock Transfer Good Issue Date, the Doc No fields and Doc Short Code, Doc Description, Remarks, Reference #, Tracking ID, and the created / modified by and date stamps. Three things about them the screen does not say:
- The date is the date of both stock movements. It defaults to today, and on save it is written onto every line, so both ends of the move — and every cost worked out after it — are dated by it.
- Doc No is assigned by the server and cannot be typed over. The three numbers are three separate counters for this document type: across the tenant, within the company, and — despite the Branch label — within the company and the note’s Location From. Doc Short Code comes from the document type, so an issued note shows the consignment-in code (see Lifecycle and effects).
- Location From, Location To, Tracking ID and the date lock once the note is
FINAL.
Line item
A line is an item picked in Search Item, then Item Code, Item Name and Quantity on Add Line Item, plus the tracking tab the item’s sub-type calls for. What the screen does not tell you:
- For a serial-tracked item, Quantity is the number of serials you scanned. The field is overwritten as serials are added; otherwise it starts at 1 and must stay at 1 or more.
- Serials are checked against stock at Location From, as if they were being sold from there — so on a received note they must be at the consignee location. A serial that fails turns the Serial Number tab red; it does not stop the line being added, so read the tab before you save.
- Batch and bin rows are recorded beside the quantity, not added up into it. Each batch row needs a batch number, issue date, expiry date and a quantity of at least 1. The applet never compares their total with the line’s Quantity, so keeping the two equal is your check, before you finalise.
- No price or cost is entered. The line carries quantity only; cost is worked out by the stock ledger when the note is finalised.
Location (Consignee Listing)
Required: Company, Branch, Location Code, Location Name, Location Commencement Date, Address Line 1, City, Postal Code, State, Country. Set Location Class to CCSG for a consignee location.
Lifecycle and effects
Status (posting_status) | Meaning | Allowed next |
|---|---|---|
DRAFT (record status TEMP from + until both locations are chosen, then ACTIVE) | Editable | FINAL, DISCARDED |
FINAL | Posted to stock; header and lines read-only | VOID |
VOID | Reversed | — |
DISCARDED | Abandoned draft | — |
The two notes are two different document types, and the names run the other way from what you would guess. Read from the source, the Goods Issued Note is created, saved and numbered as INTERNAL_CUSTOMER_CONSIGNMENT_IN (short code CCSINN), and every line it adds carries the same type; the Goods Received Note is INTERNAL_CUSTOMER_CONSIGNMENT_OUT (CCSOUT). Neither carries money. The server does not take the direction from the screen: each type fixes its own quantity sign — plus for the in type, minus for the out type — whatever the applet sent.
On FINAL the backend writes two ledger lines per document line, and the second one is the part that is invisible from the screen. The first is the ordinary line at the note’s Location From, with the type’s sign. The second is a mirror line written at Location To, moving the opposite way and marked CSG — offset by 0.1 s so the two never collide in the chain: 0.1 s before for the in type, 0.1 s after for the out type. That mirror line is why both ends move together inside one document with no queue between them. Put together:
| Note | Saved as | At Location From | At Location To (the CSG mirror) |
|---|---|---|---|
| Goods Received (Location From is the consignee) | INTERNAL_CUSTOMER_CONSIGNMENT_OUT | − quantity at the consignee | + quantity at your location, 0.1 s later |
| Goods Issued (Location From is yours) | INTERNAL_CUSTOMER_CONSIGNMENT_IN | + quantity at your location | − quantity at the consignee, 0.1 s earlier |
The received note does what its name says. The issued note, as read, adds the quantity at your own location and takes it off the consignee location — the reverse of sending it. This page said the opposite until 2026-09-30. It is recorded as a product finding, and until it is settled treat it as the thing to check, not the thing to assume:
- Before you rely on the applet, finalise one issued note for one unit and look at Stock Balance. Location From should be one lower and the consignee location one higher. If they moved the other way, VOID the note — VOID reverses both lines — and raise it with BigLedger support before you issue more stock with this applet.
- Only the received note is stock-checked at FINAL. The listing’s FINAL does not ask for a stock check, and the server then checks by default — but it checks only lines that take stock out of a location. A received note’s own line takes the quantity off the consignee location, so a received note that tries to bring back more than the consignee location holds is refused at FINAL: the consignee location cannot be overdrawn that way. An issued note is not checked at either end: its own line adds stock (see the table above), and the mirror line that takes stock off the other location is written afterwards by the stock processor, outside the check. So an issued note can take a location below zero — as read, the consignee location — with nothing to stop it. Before you finalise an issued note, look at the balances at both locations in Stock Balance yourself.
No journal is posted, and the company’s unit cost is untouched — the movement is cost-neutral, and the company-level amount moves in the same proportion as the quantity. The CSG mirror goes further: it carries no company-level cost at all, so the consignee location’s line carries location-level costing and no company costing at all.
The per-location cost is a different number, and it does not follow the goods. Every inventory line carries two costs — company-level and location-level — each worked out along its own chain of lines. The location cost starts from the previous line at that location, not from the sending location. So the arrival is cost-neutral relative to the consignee location’s own history:
- if that location already holds the item, its unit cost stays exactly where it was;
- if it holds none but has held some before, the amount is re-seeded from its own last unit price;
- if it has never held the item, there is no previous line, the seed is zero, and the arrival is valued at zero at that location.
Company-level value is correct throughout. A per-location valuation for a consignee location — which is very often a location that has never held the item — is not a number to hand an auditor without knowing which of the three cases produced it. Read the company figure instead.
VOID reverses both ledger lines. There is no knock-off between an issued and a received note; a partial return is simply a received note for the returned quantity, and the balance at the consignee location is the running difference.
Related applets
- Stock Transfer — use it instead for movements between your own locations; it has the in-transit queue this applet deliberately lacks.
- Customer Consignment — the two-document version of this movement (Transfer Out, Transfer Queue, Transfer Receive). Like this applet, it moves quantity only and bills nobody.
- Sales Invoice (Internal) — what bills the consignee. The platform has no consignment-specific customer invoice: you raise an ordinary sales invoice for the units the consignee reports as sold. It relieves stock at the line’s own branch and location, so the line must carry the consignee location — or bring the sold quantity back with a Goods Received Note first and invoice from your own. Do not reach for the Consignment Billing applet: despite the name and the sales folder it is
INTERNAL_PURCHASE_CONSIGNMENT_INVOICE, amount signum −1, with an entity picker titled Select Supplier — the bill a consignor sends you. Raising it here books a payable to a supplier where you meant a receivable from a customer. - Stock Balance, Stock Availability, Stock Report — the consignee location’s balance is what is out on consignment; the Stock Summary by Location report counts these notes under Others.
- Organisation — company and branch that own the consignee location.
- Inventory Item Maintenance, Doc Item Maintenance — item tracking type.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Location To (issued) or Location From (received) dropdown is empty | No location has class CCSG, or the user lacks read permission on it | Set Location Class = CCSG in Consignee Listing; grant the location permission |
| Location dropdown was empty after an update | Fixed in July 2026 — the dropdown now keeps only ACTIVE locations | Update the applet |
| CREATE is disabled | Location From, Location To or the date is missing. A note with no lines is not refused — the line check is switched off, so an empty draft saves | Complete Details; check the Line tab before you save |
| FINAL is disabled on the listing | A selected row is not DRAFT + ACTIVE | Select drafts only |
| VOID is disabled | A selected row is not FINAL + ACTIVE | Select finalised notes only |
| PRINT is disabled | This applet’s PRINTABLE is not set — a branch default printable format does not enable the button — or DISABLE_EXPORT_PRINT_ON_DRAFT is on and a selected row is a draft | Pick a format in Settings > Printable Format Settings; finalise drafts first |
| FINAL of a received note is refused for stock | The consignee location holds less of the item than the note brings back; the server’s stock check covers received notes | Check the consignee balance in Stock Balance; return only what is there, or find the issued note that should have put it there |
| Location From is empty every time | Default Selection does not save, and the note does not look for a saved location anyway | Pick Location From by hand |
| Serial rejected on an issued note | The serial is not at Location From | Trace it in Stock Availability; transfer it there first |
| Consignee balance looks wrong, or negative | A Goods Issued Note posted in the reverse direction (see Lifecycle and effects) — issued notes are never stock-checked, so this can take the consignee location below zero — a received note was created without a matching issue, or a note was voided | Compare FINAL issued and received quantities per item and consignee location in Stock Report > Stock Movement |
| Buttons missing for all users | HIDE_GENDOC_*_BUTTON set — no SHOW_* permission exists to reopen them | Clear the setting |