Performs a bulk action on a set of invoices. The invoice set to act on is determined either by an explicit invoice_uid array, or by filter_rules (preferred) / legacy filter.* fields — invoice_uid can be combined with either filter mode and is merged in additively ($in), not used as an exclusive selector.
If filter_rules is a non-empty array, it takes precedence as the v3 filter engine; otherwise the legacy filter object (or filter.* query/body params) is used.
Actions update_status (except PARTIALLY_PAID/BAD_DEBT/ARCHIVED/CLOSED transitions), charge_card, and send_email are processed asynchronously — the response only acknowledges that the job was queued and does not reflect per-invoice success/failure. update_field and the synchronous update_status transitions apply immediately and return data.total_updated / data.total_invalid counts. associate_campaign is the only action that returns a per-item result (data.skipped_invoice_uids).
The maximum number of invoices a single call can affect is governed by the account's bulk_action_limit policy (falls back to a platform default). charge_card has its own, separate cap (default 10). associate_campaign is capped at 1000 invoices per call.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
