List Bills
GET/api/shipbob/:instance/bills
List ShipBob billing transactions (every charge, credit and payment ShipBob billed) with where each fee was attributed: a sales order, a product (storage), a purchase order (receiving) or the unattributed bucket. Same shape as the Trackstar bills list: charge_type is the ShipBob fee name.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
Authentication: Requires Bearer token.
Filterable columns:
- Text: fee_name, family (shipping, fulfillment, surcharge, storage, receiving, returns, credit, payment, account, other), reference_type (Shipment, Return), reference_id, store_order_id, attribution_status (pending, attributed, unattributed, excluded), unattributed_reason (order_not_imported, order_not_found, shipment_not_found, return_not_found, product_unmapped, po_not_found, ambiguous_order, no_reference, treatment_unattributed, period_locked, manually_voided), sales_channel, shipbob_invoice_id, transaction_type (Charge, Credit, Payment), currency_code, attributed_to (sales_order, product, purchase_order, cost_entry, none).
- Date: charge_date.
- Numeric: id, amount.
- filter[search] matches id, reference id, store order id, transaction id or fee name.
Filtering uses the canonical filter tree: send filter_groups as base64-encoded JSON {"conjunction":"and","children":[{"type":"condition","condition":{"column":"fee_name","operator":"is","value":"Per Pick Fee"}}]}, or flat filter[column.operator]=value params. Text operators: contains, does_not_contain, is, is_not, is_one_of, is_not_one_of, starts_with, ends_with, is_empty, is_not_empty. Numeric operators: is, is_not, greater_than, less_than, greater_than_or_equal, less_than_or_equal, between, is_empty, is_not_empty. Date operators: is, before, after, on_or_before, on_or_after, between, today, past_week, past_month, past_days, etc.
Allowed sorts: id, charge_date, amount, fee_name (prefix with - for descending; default -charge_date). Pagination: page, per_page (default 10). Add include_json=1 to include the raw ShipBob payload.
Request
Responses
- 200
- 401
- 403
- 404
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.