Shipments
Growth+Create shipping tags, assign assets to them, track delivery status, and allow recipients to claim all assets in one step.
list Table of Contents
local_shipping Overview
Shipments make tracking outgoing assets dramatically simpler. Instead of managing each asset individually, you group them into a shipment and track the entire batch through its lifecycle: Draft → Active → Shipped → Delivered.
info Growth+ Feature
Shipments are available on the Growth and Enterprise plans. Upgrade your plan to access this feature.
add_box Creating a Shipment
- Navigate to Shipments in the left sidebar.
- Click Create Shipment.
- Enter a name (e.g. "Order #12345 – Acme Corp"), optional description, carrier, tracking number, and shipping address.
- Click Create Shipment to save.
The shipment starts in Draft status. You can freely add or remove assets while it is in Draft or Active status.
inventory_2 Assigning Assets
There are two ways to assign assets to a shipment:
local_shipping From the Shipment Page
Open a shipment, scroll to the Add Assets section, select an asset from the dropdown, and click Add. You can remove assets using the remove button next to each asset row.
edit When Creating or Editing an Asset
On the asset create/edit form, scroll to the Shipment section. Select any active shipments to assign this asset to them immediately on save.
track_changes Tracking & Status
Shipments move through the following statuses:
verified Claiming Assets (B2C / B2B)
If the assets in a shipment are B2C or B2B claimable, the recipient has two options:
- Claim All at Once — On the shipment detail page, use the Claim All Assets panel to claim every claimable asset in the shipment in a single action. Choose whether to claim as a personal account (B2C) or as a company (B2B).
- Claim Individually — Each asset's QR/NFC tag still works independently. Scan the tag to claim just that one asset via the standard claim flow.
lock Claim Passwords (Unlock Codes)
You can protect shipments, assets, and asset templates with a claim password (format: XXX-XXX).
Recipients must enter the correct password before they can view or claim the contents.
Password Modes
- None — No password required. Recipients can scan/claim freely.
- Custom — You set a specific password (e.g.
SEC-PIN). Share it with the recipient separately. - Random — The system auto-generates a unique
XXX-XXXpassword. You can view it on the shipment detail page.
Where to Set Passwords
- Shipments — Set in the shipment form under "Shipment Password". Applies to the shipment's QR tag.
- Asset Templates — Set "Claim Password" mode to Constant (same for all) or Random (unique per asset). Applied automatically when assets are created from the template.
- Individual Assets — Set in the asset form under "Claim Password" for B2C/B2B assets.
Recipient Experience
When a recipient scans a password-protected tag or visits a claim page, they'll see a "Password Required" screen. After entering the correct password, they proceed to the normal scan or claim flow. The verification is stored in their session.
qr_code_scanner Scan Page Integration
When someone scans a tag attached to an asset that belongs to a shipment, the scan page automatically shows a Shipment Information panel. This displays the shipment name, status, carrier, tracking number, and destination — giving the recipient all the context they need at a glance.
code API Access
All shipment operations are available via the REST API. See the full API Documentation for details.
GET /api/shipments
GET /api/shipments/:id
POST /api/shipments
PATCH /api/shipments/:id
DELETE /api/shipments/:id
POST /api/shipments/:id/add_asset
DELETE /api/shipments/:id/remove_asset
POST /api/shipments/:id/mark_shipped
POST /api/shipments/:id/mark_delivered
POST /api/shipments/:id/claim_all
POST /api/shipments/:id/verify_unlock
webhook Webhook Events
Subscribe to shipment events in your webhook subscriptions to receive real-time notifications:
-
shipment.createdFired when a new shipment is created -
shipment.updatedFired when shipment details are modified -
shipment.deletedFired when a shipment is deleted -
shipment.shippedFired when a shipment is marked as shipped -
shipment.deliveredFired when a shipment is marked as delivered
See the full Webhook Documentation for payload structure and setup instructions.