Platform status
ACTIVE does not always mean delivering. Its operational status is pending_creatives (accepted,
but a required creative is missing), pending_start (accepted, flight not started) or active.
Whose side owns the wait
When a buy is not moving,pendingAt and pendingReason say who holds it:
A failed buy carries
errorCode (for example product_no_longer_available, source_rejected,
storefront_rejected, quote_expired) and errorOwner: buyer_input, platform or seller.
Asynchronous acceptance
Guaranteed and manually reviewed buys are not accepted in the same call. The seller returns an AdCP task insubmitted state; the buy shows PENDING_APPROVAL. When the seller decides, the task
completes, Semicola updates the buy and, if you registered a push notification URL, calls it with a
signed webhook. You can also poll the task.