After installation, configure Ventoo Shipping in two steps:
-
Carrier Setup – one record per carrier (for example Planzer) with connection and authentication data.
-
Shipping Setup – global default values (default carrier, auto-print, default pickup from company).
Configure a carrier
The carrier setup holds all connection, authentication and master data for a carrier. Each carrier is identified by a code that references the Business Central Shipping Agent code.
Open the carrier list
-
Use the search (Tell Me) to find Carrier Setup.
-
Choose New to create a new carrier record.
-
Choose Edit to open the Carrier Setup Card.
General
|
Field |
Description |
|---|---|
|
Code |
Unique carrier code. References the Business Central shipping agent ( |
|
Description |
Display name of the carrier. |
|
Carrier Type |
Selects the technical connector. Possible values: (no carrier) and Planzer. The value determines which code executes the API calls. |
|
Enabled |
Controls whether the carrier may be used to create labels. Disabled carriers are rejected during processing. |
Connection
|
Field |
Description |
|---|---|
|
Base URL Test |
API endpoint for the test environment. |
|
Base URL Production |
API endpoint for the production environment. |
|
Use Production |
When enabled, the production URL is used; otherwise the test URL is used. |
Note: When an environment is copied into a sandbox (for example production → sandbox for testing), Use Production is automatically switched off on all carrier setups. This prevents the test environment from accidentally sending real shipping labels to the carrier – the same way Business Central disables email sending and job queue tasks on a copy. To test against the production carrier API from within the sandbox, switch Use Production back on manually per carrier. This applies to copies made from this version onward; a sandbox that was copied before this version still needs the toggle switched off once by hand.
OAuth 2.0 authentication
Ventoo Shipping uses the OAuth 2.0 client-credentials flow. Client ID and Client Secret are stored in Business Central IsolatedStorage and are not held in plain text in the table.
|
Field |
Description |
|---|---|
|
OAuth Token URL |
URL of the carrier token endpoint. |
|
OAuth Client ID |
Client ID for the carrier. Stored encrypted on validate and shown masked as |
|
OAuth Client Secret |
Client Secret for the carrier. Stored encrypted on validate and shown masked as |
|
OAuth Scope |
Optional scope parameter if required by the carrier. |
Label defaults
|
Field |
Description |
|---|---|
|
Default Label Format |
Default output format. Possible values: PDF or ZPL. |
|
Default Label Resolution (dpi) |
Default resolution in DPI. Mainly required for ZPL (for example |
Date Defaults
These fields control how the Pickup Date and Delivery Date are pre-filled when a label is created for this carrier. Because lead times depend on the carrier, the setting lives on the carrier rather than in the global shipping setup.
|
Field |
Description |
|---|---|
|
Pickup Date Base |
Source document field used as the basis for the pickup date. If the selected field is empty (for example on manual labels), the work date is used as a fallback. |
|
Default Pickup Date Offset |
Number of days added to the pickup base date. Example: base = Shipment Date, offset = 1 → pickup date = shipment date + 1 day. |
|
Delivery Date Base |
As Pickup Date Base, but for the delivery date. |
|
Default Delivery Date Offset |
As Default Pickup Date Offset, but for the delivery date. |
|
Base Calendar Code |
Working-day calendar used to skip non-working days (weekends and public holidays) when the date offsets are applied. If empty, the calendar of the document-header location and then the Company Information calendar are used; if none is assigned, the offset counts calendar days as before. |
The default values (base = Work Date, offset = 0) reproduce the previous behavior, so existing carriers are unaffected until they are changed.
Note: When the Carrier Code is changed on a label, the pickup and delivery dates are recalculated from the newly selected carrier's settings. This overwrites a date that was entered manually beforehand, so set an individual date after choosing the carrier.
Example – Planzer: pickup always on the next day
Set Pickup Date Base = Work Date and Default Pickup Date Offset = 1. New Planzer labels then receive tomorrow as the pickup date automatically.
Working-day calendar for the date defaults
The configured offset for the pickup and delivery date can now skip non-working days (weekends and public holidays). The offset then counts in working days instead of calendar days. The basis is the Business Central standard Base Calendar.
How the offset is applied
-
With a calendar assigned: the offset counts working days – weekends and holidays are skipped. An offset of
+1means "next working day". The result always lands on a working day (even with offset0: if the base date itself is non-working, it is rolled forward to the next working day). -
Without a calendar: plain calendar days (base date + offset), exactly as before.
Calendar resolution (priority, strongest first): Carrier Setup → Location (document header) → Company Information → no calendar.
|
Priority |
Source |
Field |
|---|---|---|
|
1 (strongest) |
Carrier Setup |
Base Calendar Code |
|
2 |
Location of the document header |
Location → Base Calendar Code |
|
3 |
Company |
Company Information → Base Calendar Code |
|
4 (weakest) |
– no calendar assigned – |
every day counts as a working day |
The first source that is set wins. If the carrier calendar is filled, it overrides the location and company calendars; if it is empty, the location calendar applies, then the company calendar; if none is assigned anywhere, the calculation runs without working-day logic.
Special cases
-
Offset 0 on a non-working base date (for example the shipment date falls on a Sunday): the date is rolled forward to the next working day.
-
Location from the document header: the location calendar only applies when the header location of the document is filled. If the location is kept on the line level only (header empty), the logic falls back to the company calendar.
-
Manual label: no source document → no location; the carrier or company calendar applies.
Backward compatibility: if no base calendar is assigned (Carrier Setup, Location and Company Information all empty), nothing changes – the offset works in calendar days exactly as before.
Setup prerequisite (master data)
For the working-day logic to take effect, a Base Calendar must be maintained and assigned to the carrier, location or Company Information:
-
weekends as Weekly Recurring non-working,
-
public holidays as Annual Recurring or as specific dates.
Note: movable holidays (Easter, Whitsun) must be maintained as specific dates – they cannot be expressed as "annually recurring" (BC standard).
Example – pickup always on the next working day
Set Pickup Date Base = Work Date, Default Pickup Date Offset = 1 and a Base Calendar Code with weekends and holidays. → Order on Friday, Monday is a public holiday ⇒ pickup date Tuesday.
Carrier account (Planzer)
This group is only visible when Carrier Type is set to Planzer.
|
Field |
Description |
|---|---|
|
Account ID |
Planzer account ID (6 digits). Padded with leading zeros when the request is built. |
|
Customer ID |
Planzer customer ID (6 digits). |
|
Department ID |
Planzer department ID (2 digits). |
|
Query Param NachrichtArt |
Optional |
|
Query Param System |
Optional |
Options
|
Field |
Description |
|---|---|
|
Log API Calls |
When enabled, the request and response JSON for each label is stored in the label record (fields Request JSON and Response JSON). Useful for troubleshooting. |
Initialize master data
The Initialize Master Data action populates the carrier-specific tables Carrier Service Options and Carrier Notifications with the codes available for the carrier. For Planzer, this includes service codes such as mandatory signature or Saturday delivery, plus notification codes remark, reference1, billing, routing1–routing4, and deposit.
-
Open the Carrier Setup Card.
-
Choose Initialize Master Data.
-
Confirm the message. The tables are rebuilt for this carrier.
Note: The action deletes existing entries for this carrier and recreates them. Any custom changes to descriptions or the Enabled flag are lost.
The Service Options and Notifications actions on the Carrier Setup Card open the respective master data pages filtered to the current carrier. Individual codes can be enabled or disabled in bulk by using the Enable All and Disable All actions.
Shipping Setup
On the Shipping Setup page you define global defaults. Only one record exists per company; it is created automatically when the page is opened for the first time.
|
Field |
Description |
|---|---|
|
Default Carrier Code |
Carrier proposed when a new label is created. |
|
Auto-Print After Creation |
When enabled, the label is automatically printed via the Business Central printer selection after a successful carrier response. |
|
Default Pickup From Company |
When enabled, name, address, postal code, city, country, contact person, phone and email from the company information ( |
The Carrier Setup action on the Shipping Setup page navigates directly to the carrier list.
Configure printer selection (optional)
To automatically route labels to a specific printer (action Auto-Print After Creation), use the standard Business Central Printer Selection page. Ventoo Shipping registers a lightweight report per carrier (for example Planzer Label Print VTO). When the report is printed, the carrier PDF is injected into the report output by the Ship Label Print Events VTO event subscriber.
-
Search for Printer Selections.
-
Choose New and add an entry for the relevant report and user.
-
Assign the desired printer.