Skip to content

Rehearse a Purchase with Dry-Run

Rehearse a purchase, void, or shipment creation without spending anything.

Updated September 3, 20261 min readPostsale CLI

Use this recipe before your first real purchase, void, or shipment creation, and whenever you change an intent that can spend money. Dry-run shows what the agent would do without charging anything, and the envelope tells you exactly which writes were simulated and which still ran.

bash
postsale run --dry-run "Purchase a PDF label for shipment <shp_id>"
postsale run --dry-run "void shipment <shp_id>"
postsale run --dry-run "Ship order <ord_id> with the cheapest carrier"

A live rehearsal that still costs nothing

Dry-run simulates the money-moving tools, so it never proves the real purchase path end to end. When you want the real path at zero carrier cost, set POSTSALE_TEST_LABEL_MODE=1 instead: the shipment is created as a test shipment, the purchase runs for real against the carrier's test environment, and the label comes back watermarked and unbilled. The two compose when the agent actually calls purchase_labels: with both set, the preview shows the test-label refusal a real run would give. The model may instead read a non-test shipment and stop without calling the tool, so to see the refusal deterministically run the direct purchase command under the mode (test_label_required, exit 64, nothing bought). Walkthrough: Test Without Spending.

What to read in the envelope

FieldMeaning
simulated_effectsIntercepted money/destructive/status tools
confirmed_effectsReal writes that still ran
tool_callsFull tool log

Still real under dry-run

create_order, update_order, update_shipment, tags, bulk field edits, filter create/update.

Batches

Batch authorization still required for money-moving parallel batches under dry-run.

Additional Reading