Skip to main content
POST
/
media-buy-approvals
/
{mediaBuyId}
/
decide
Approve or reject a pending media buy
curl --request POST \
  --url https://api.interchange.io/api/v2/storefront/media-buy-approvals/{mediaBuyId}/decide \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{}'
{
  "id": "42",
  "storefrontId": "1234",
  "mediaBuyId": "<string>",
  "buyerCustomerId": 0,
  "submittedPayload": "<unknown>",
  "reviewedBy": "<string>",
  "reviewedAt": "2023-11-07T05:31:56Z",
  "reviewerNotes": "<string>",
  "forwardedAt": "2023-11-07T05:31:56Z",
  "createdAt": "2023-11-07T05:31:56Z",
  "updatedAt": "2023-11-07T05:31:56Z"
}

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.

Authorizations

Authorization
string
header
required

API key or access token

Path Parameters

mediaBuyId
string
required

Buyer-supplied media buy identifier (AdCP media_buy_id).

Minimum string length: 1

Body

application/json

Request body for recording an operator decision on a pending media buy.

status
enum<string>
required

Decision the operator is recording for this media buy.

Available options:
approved,
rejected
reviewerNotes
string

Operator note about the decision. Surfaced back to the buyer alongside the status — keep it actionable when rejecting (e.g. 'targeting outside coverage area').

Maximum string length: 2000

Response

Approve or reject a pending media buy

A single pending media-buy entry on a storefront approval queue.

id
string
required

Surrogate id of the approval row (BIGINT serialized as string).

Example:

"42"

storefrontId
string
required

Storefront the pending buy was submitted to (BIGINT serialized as string).

Example:

"1234"

mediaBuyId
string
required

Buyer-supplied media buy identifier (AdCP media_buy_id). Unique per storefront — re-submitting the same id is idempotent.

buyerCustomerId
integer
required

Customer id of the buyer who submitted the media buy.

Required range: -9007199254740991 <= x <= 9007199254740991
submittedPayload
any
required

Raw AdCP create_media_buy payload as the buyer submitted it. Not normalized — the operator UI renders a summary directly from this object.

status
enum<string>
required

Lifecycle state. pending until the operator decides; approved once the operator accepts (forwarding upstream happens out-of-band and is reflected by forwardedAt); rejected when the operator declines; revoked for buyer- or system-initiated cancellation after a decision.

Available options:
pending,
approved,
rejected,
revoked
reviewedBy
string | null
required

User id of the operator who recorded the decision (BIGINT serialized as string). Null while pending.

reviewedAt
string<date-time> | null
required

When the operator decision was recorded (ISO 8601). Null while pending.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
reviewerNotes
string | null
required

Operator note attached to the decision. Null while pending.

forwardedAt
string<date-time> | null
required

When the approved buy was successfully forwarded to the underlying sales-agent (ISO 8601). Null until forwarding succeeds; an approved row with a null forwardedAt indicates the upstream forward has not happened yet.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
createdAt
string<date-time>
required

When the buyer submitted the media buy (ISO 8601).

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
updatedAt
string<date-time>
required

When the row was last modified — submission, decision, or forwarding stamp (ISO 8601).

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$