Bulk Action Invoice

Changed on

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.

post/invoice/bulk_action

Request

  • Base URL
    https://dc-region.zuperpro.com/api
  • URL
    https://dc-region.zuperpro.com/api/invoice/bulk_action
  • Auth
    API key in header x-api-key

Request body

action'update_field' | 'update_status' | 'charge_card' | 'send_email' | 'associate_campaign'

update_field: change one field across all matched invoices. update_status: transition invoice_status. charge_card: charge the customer's card on file. send_email: send an email/SMS notice. associate_campaign: enroll matched invoices into a marketing campaign.

invoice_uidstring[]

Optional explicit list of invoice uids to include. Combined additively ($in) with filter_rules/filter — not an exclusive selection mode.

filter_rulesobject[]

v3 filter engine rules used to select the invoice set. Takes priority over filter when a non-empty array is supplied.

send_pdfboolean

send_email only. Read independently of action_options — pass at the top level (or as a query/path param) rather than nested inside action_options.

Response

200

typestring
titlestring
messagestring

Example response

{
  "type": "success",
  "title": "Invoices Status updated successfully",
  "message": "Invoices Status updated successfully"
}

Changes