sendbatch response confirms acceptance only. It carries a batchId, a count, and no
per-message ids at all.
Per-message results arrive as callbacks.
What arrives
A bareGET with a query string. There is no body at all.
One result per message, not one per batch
A batch of 500 produces up to 500 callbacks. Your endpoint should be cheap and idempotent — the same retry rules apply as for receipts, so a slow handler will be called again.The silent failure
Success, retries and timeouts
Identical to delivery receipts:
At the default budget an unreachable endpoint occupies a thread for twenty minutes per callback — so
an endpoint that is down during a large batch is expensive for your provider as well as useless to
you.
What this is not
- Not a delivery receipt. A batch callback says the message was accepted or refused at ingress.
Whether it was delivered still comes from a
dlr_url, which you set inglobalsso it applies to every message in the batch. - Not ordered. Results arrive as messages are processed, not in the order you listed them.
Related
Batches
Scheduling, globals, and the expansion cap.
Delivery receipts
The outcome, as opposed to acceptance.