> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interchange.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Update proposals

> Poll and cancel pending media buy update proposals

An update proposal is a pending change to a media buy that awaits resolution by the sales agent. It moves from `PENDING` to either `APPROVED` or `REJECTED`. While a proposal is `PENDING`, you can poll its status or cancel it; once resolved, it is terminal.

Buyer agents using the `api_call` MCP tool can poll with `get_update_proposal` and withdraw a pending proposal with `cancel_update_proposal`, passing the proposal ID returned by `update_campaign` as `pathParams.proposalId`.

Cancellation resolves the pending Interchange proposal as `REJECTED` with `rejectionReason: "cancelled_by_buyer"`, retains a safety record so a later callback cannot apply it locally, and releases the one-pending-update gate. It does not recall a request that Interchange already dispatched to the seller; contact the seller/operator when the upstream task itself must be withdrawn.

Poll the proposal until `status` leaves `PENDING`. When a proposal is `REJECTED`, read `rejectionReason` for the cause. To withdraw a change before the agent acts, cancel it.

All requests use the base URL `https://api.interchange.io/api/v2/buyer` and a `Authorization: Bearer $SCOPE3_API_KEY` header.

## Task Reference

<CardGroup cols={2}>
  <Card title="Get update proposal" href="/v2/buyer/update-proposals/tasks/get-update-proposal" icon="magnifying-glass">
    `GET /update-proposals/:id` — poll resolution status
  </Card>

  <Card title="Cancel update proposal" href="/v2/buyer/update-proposals/tasks/cancel-update-proposal" icon="ban">
    `DELETE /update-proposals/:id` — withdraw a pending proposal
  </Card>

  <Card title="All update proposal tasks" href="/v2/buyer/update-proposals/tasks" icon="list-check">
    Per-operation reference
  </Card>
</CardGroup>
