Skip to main content
Bulk send has two levels of events: one for the batch and one for each item in it. Subscribe to the batch event if you only need the outcome, and to the item event if you reconcile item by item. Read Events overview first for the envelope, deduplication, and the rules that apply to every event.

Events on this page

payment.bulk_send.updated

The batch-level event.

Batch trigger conditions

One event per change of the batch’s status. Per-item progress is not here; it is in the item event. Bulk send batch status flow The diagram shows the main status paths; final statuses are shown in green. Validating can also go directly to Failed. Events may arrive out of order; see Event ordering.

Batch event content

The batch event carries no item list. Per-item information only arrives through the item event, and the arrival order of the two is not guaranteed.

Batch failure reasons

Use failed_reason.code to decide how to handle the failure. A batch can also fail because the approval workflow rejected or revoked it.

Batch sample events

Each sample shows the data object only. The envelope around it is the same for every event — see Event structure.

The batch is accepted

Record the batch and do not submit it again. Remember that Pending may also mean the batch is waiting for an approver.

The batch completed

Mark the batch as completed in your system.

The batch is partially completed

Split your handling by the two counts. Here one item’s funds moved and failed, and one was never submitted.

Strict mode stopped the batch before execution

Here some items failed validation, so in Strict mode the whole batch stopped before execution. No items were executed and no funds were used. Use the item events to find the items that failed validation, fix them, then create a new batch.

payment.bulk_send.item.updated

The item-level event.

Item trigger conditions

One event per change of the item’s status. Bulk send item status flow The diagram shows the main status paths; final statuses are shown in green. Events may arrive out of order; see Event ordering.

Item event content

Item failure reasons

Use failed_reason.code to decide how to handle the failure. These are the codes an item can carry.

Item sample events

Each sample shows the data object only. The envelope around it is the same for every event — see Event structure.

An item completed

Save the amount and tx_hash, link the item to your own recipient record using bulk_send_item_id, and mark it as completed.

An item failed after the transfer was submitted

Funds moved and came back: locked funds were released and the fee was returned. Whether you can resend as-is depends on failed_reason.code.

An item was never executed

No funds moved. Fix the cause before resending, or it fails the same way. Here the item itself was fine and was not executed because another item in the batch failed under Strict mode.

Advanced events

For the on-chain transaction detail of the batch and its items, subscribe to the advanced events payment.bulk_send.status.updated and payment.bulk_send.item.status.updated. See Advanced events.