Skip to main content
POST /api/v2/storefront/proposals/{id}/revoke Withdraws a proposal so its proposalCode can no longer be redeemed on discover_products. Revocation is allowed only when the proposal’s status is active or expired; a proposal the buyer has already redeemed cannot be revoked. The returned proposal has status: "revoked".

Request

curl -X POST https://api.interchange.io/api/v2/storefront/proposals/318/revoke \
  -H "Authorization: Bearer $SCOPE3_API_KEY"

Parameters

ParamTypeRequiredNotes
idintegerYesProposal row ID (path parameter)

Response

{
  "id": 318,
  "proposalCode": "PRP-XK4A29",
  "operatorId": "acme",
  "label": "Acme Q3 RFP — CTV",
  "notes": "Offline RFP follow-up; honors the upfront rate.",
  "status": "revoked",
  "expiresAt": "2026-09-30T23:59:59Z",
  "proposalId": "proposal_abc123",
  "discoverySessionId": "disc_a1b2c3",
  "snapshot": { "products": [], "proposals": [] },
  "createdAt": "2026-06-07T15:00:00Z",
  "createdBy": "seller@acme-media.example.com",
  "firstViewedAt": null,
  "lastViewedAt": null,
  "redeemedAt": null,
  "redeemedInMediaBuyId": null
}
status flips to revoked. The code is now dead — the buyer receives no offer if they try to redeem it.

Errors

  • 400 VALIDATION_ERROR — the proposal’s status is not active or expired (for example, it is already redeemed or revoked).
  • 404 NOT_FOUND — no proposal with that id is visible to the authenticated seller.
See Errors for the full error contract.

Proposal tasks

All proposal operations

Get proposal

Confirm the revoked state

Create proposal

Mint a fresh code

Proposals overview

Lifecycle and concepts