Skip to main content
An activity is one warehouse charge event — a pick, a pack, a receipt, a storage charge. It is what your customer’s 3PL bills for. There is a single published structure. You choose how to deliver it — as data or as a file — and the fields are the same either way. In a file it is one activity per row; column order does not matter and optional columns may be left out. A column we do not publish is rejected rather than ignored.
Starter template. Copy this into a .csv and replace the example rows.
template.csv

Fields

Four fields are required. They are exactly the four an activity cannot be imported without, so anything missing is refused when you send it — named — rather than accepted and thrown away minutes later.
string
required
Where the activity happened, as configured in Dyspach.
string
required
The charge being recorded, matching your customer’s rate card — Picking, Packing, Receipt - Unit, and so on. Free text.
integer
required
Units of the charge. Signed — see below. 0 is not a quantity and is refused.
date-time
required
When it happened, ISO-8601. This decides which billing period the charge falls into.
The rest are optional:
On a file upload, all four required columns must be present in the header row. A row that leaves one of them blank is still refused, but per row, with the reason on the errors endpoint — the file is not rejected whole because of one bad line.

Value formats

Negatives are expected, not an error — they are how credits and reversals are recorded. -35 is as valid as 35.
2026-08-10T16:00:00Z. This decides which billing period the charge falls into, so it is never inferred. Do not send 8/10/26 — that is August to some systems and October to others.
An activity has no identity: the same charge code, reference and timestamp can legitimately occur several times — four identical picks on one order in the same second is normal. So nothing is de-duplicated, and sending a batch twice records it twice. Each row is billable, so send a run once and check the import rather than retrying blindly.