> ## 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.

# Per-buyer auto-approve

> Opt a specific trusted buyer into automatic approval for their media buys, while the storefront stays in manual review for everyone else.

## Overview

A **per-buyer auto-approve override** lets you keep `mediaBuyApproval: manual` for
your storefront while opting **one trusted buyer** into automatic approval for
their media buys. It's the structured way to express "auto-approve buyers I trust,
review the rest."

While an override is enabled, that buyer's media buys **skip both your review queue
and the acceptance-policy screen** and forward straight to your ad server. It is a
deliberately narrow, money-path control:

* **Media buys only.** This never affects creative review. The buyer's creatives
  still follow your [`creativeApproval`](/v2/storefront/approvals/overview) setting
  — creative review is a separate gate and is untouched.
* **Relax-only.** It can only *remove* review for a named buyer. It takes effect
  only while `mediaBuyApproval` is `manual`; when the storefront is `auto`, every
  buyer already auto-approves and the override does nothing. It can never put a
  buyer *under* review.
* **Trust means trust — but it's watched.** Because an enabled buyer's buys bypass
  the acceptance policy as well as the human queue, only opt in a buyer whose media
  buys you'd approve unseen. To keep that honest, the gate still runs your policy
  evaluator on every auto-forwarded buy (for visibility only — it never holds the
  buy) and counts any that your policy *would* have held, so you can see whether a
  trusted buyer is pushing buys you'd have flagged (see **Watching the trust** below).
* **Known buyers only.** You can only opt in a buyer that has **submitted a media
  buy** to your storefront (whatever its outcome). An unknown or mistyped account
  id is rejected — you can't pre-arm a stranger.

<Note>
  Like all approval settings, this applies only to **ad-server-backed** storefronts.
  Storefronts that route to an external sales agent or a linked storefront pass
  through — there's no review queue in front of someone else's agent to relax.
</Note>

## Lifecycle and audit

Disabling an override is `enabled: false` — the **row is kept**, not deleted, so
your change-log retains who turned a buyer's trust on or off and when. Each write
records the operator who made it.

Because the override lives independently of the storefront-wide setting, it
**survives an `auto` → `manual` flip**: if you opt a buyer in, switch the storefront
to `auto`, then later switch back to `manual`, that buyer's override is still in
effect. [List your overrides](/v2/storefront/buyer-auto-approvals/tasks/list-buyer-auto-approvals)
after tightening back to `manual` to confirm which carve-outs are live.

## Watching the trust

Every override carries a `policyBypassCount` (and `lastPolicyBypassAt`): each time
an enabled buyer's media buy is auto-forwarded that your acceptance policy *would*
have held, the count goes up. The buy still forwards — this only records it — but a
non-zero count tells you a trusted buyer is sending buys you'd otherwise have
flagged, which is your cue to revisit the carve-out. Ask Murph "which trusted buyers
are bypassing my policy?" or read the count from
[the list](/v2/storefront/buyer-auto-approvals/tasks/list-buyer-auto-approvals).

Ask your assistant to **show your per-buyer auto-approvals**. It opens the same
portable Page in Murph, Claude, ChatGPT, or another compatible MCP client. The
Page lists each opted-in buyer, its would-have-held count, previously revoked
trust, and every transacting buyer eligible for a new override. You can add,
edit, restore, or revoke trust in the Page; enabling always shows the exact
money-path consequence before it saves. Carve-outs that have bypassed your
policy are surfaced first.

If you provide an exact buyer and confirm the effect in a prompt, an assistant
can call `set_buyer_auto_approve` directly. Exploratory configuration opens the
Page through `list_buyer_auto_approvals`; neither path hands work back to chat.

## Identity

The storefront is always resolved from your authenticated identity
(`customer_id`) — never from the request body — so you can only ever set overrides
on your own storefront. The buyer is identified by `buyerCustomerId`; reads echo
the resolved buyer name so you confirm the right counterparty.

## Fields

| Field             | Type           | Description                                                                                                              |
| ----------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `buyerCustomerId` | number         | Account id of the trusted buyer. Must be a buyer that has transacted with this storefront                                |
| `enabled`         | boolean        | `true` opts the buyer into auto-approve; `false` revokes it (the row is kept for audit)                                  |
| `reason`          | string \| null | Freeform operator note (e.g. the trust's provenance). Omit to keep the existing note; `null` to clear it. Max 2000 chars |

The list response also includes `eligibleBuyers`, derived only from buyers that
submitted a media buy to this storefront. Each candidate includes its resolved
name, `mediaBuyCount`, and `lastMediaBuyAt`, so an operator does not need to find
or type a numeric buyer id.

## Related per-buyer levers

Per-buyer auto-approve is **operational trust only** — it is not a commercial term
and is keyed by the buyer's account id (not a domain). It is independent of the
pricing levers, which are keyed by buyer domain:

<CardGroup cols={2}>
  <Card title="House discounts" href="/v2/storefront/house-discounts/overview" icon="sitemap">
    Per-buyer rate-card discounts, keyed by brand or operator domain.
  </Card>

  <Card title="Buyer instructions" href="/v2/storefront/buyer-instructions/overview" icon="user-gear">
    Operator-and-brand terms, country rules, and freeform notes.
  </Card>
</CardGroup>

## Tasks

<CardGroup cols={2}>
  <Card title="Set per-buyer auto-approve" href="/v2/storefront/buyer-auto-approvals/tasks/set-buyer-auto-approval" icon="user-check">
    Enable or disable auto-approve for one buyer.
  </Card>

  <Card title="List per-buyer auto-approvals" href="/v2/storefront/buyer-auto-approvals/tasks/list-buyer-auto-approvals" icon="list">
    Read every override on the storefront.
  </Card>
</CardGroup>

## Related

<CardGroup cols={2}>
  <Card title="Reviewing buyer transactions" href="/v2/storefront/approvals/overview" icon="user-check">
    How storefront-wide creative and media-buy approval work.
  </Card>

  <Card title="Media-buy approvals" href="/v2/storefront/media-buy-approvals/overview" icon="receipt">
    The pending media-buy queue an override lets a trusted buyer skip.
  </Card>
</CardGroup>
