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

# Change a Seller Account's type

> A Seller Account is a Listing or a Storefront agent. Read it with get and change it in place with the sellingMode field on save_seller.

A Seller Account is one of two types:

* **Listing.** Your products are listed for buyers. You bring your own sales agent. A Listing account has no access to
  Enhanced Reporting, and is meant to carry no charged activities once pricing follows the account type.
* **Storefront agent.** Apostra hosts the agent that answers buyer briefs for you. Its seller-paid activities are meant
  to be charged at your plan's rate once pricing follows the account type.

Pricing by account type has not taken effect yet. Changing the type does not change what you are billed today; billing
follows the account type in a later release.

Both are Seller Accounts. The type is stored on the account itself, so it does not depend on the plan or on any
feature setting of your organization. Some organizations call a Listing account the pass-through account.

## Read the type

`get({ kind: "seller" })` returns `sellingMode`: `listing` or `storefront_agent`.

```json theme={null}
{ "kind": "seller" }
```

The Entitlements read (`include: ["entitlements"]`) still returns `operatingMode` with the same answer under its
older name: `LISTING_ONLY` or `AGENTIC_MEDIA_COMPANY`.

## Change the type

Send `sellingMode` alone to `save_seller`.

```json theme={null}
{ "sellingMode": "storefront_agent" }
```

| Field | What it sets |
| - | - |
| `sellingMode` | `listing` or `storefront_agent`. |

The change happens on the same account. The storefront, inventory sources, connections and history stay as they are.
Each change is recorded with who made it, when, and the type before and after.

The result names the seller-paid activities that will become billable (a switch to a Storefront agent) or free (a
switch to a Listing) once pricing follows the account type, each with its IU amount. Until then billing is unchanged.
A period already earned stays billed. Nothing already billed is repriced.

Setting the type the account already has succeeds and changes nothing. The result reports `selling_mode_unchanged`.

## Rules

* **Only a direct administrator of the billing organization can change the type**, through `save_seller`. Seller Settings has no type control. The change alters what the
  organization is charged, so it needs the same authority as accepting its Terms. Anyone else is refused with
  `ACCESS_DENIED`.

* **A Storefront agent needs a plan that covers it.** If the organization's plan does not, the call is refused with
  `CONFLICT`, and the reason says what to do next.

* **A switch to Listing is refused while Storefront-agent work is still running.** The call returns
  [`CONFLICT`](https://docs.apostra.com/v3/errors) with `details.reason` `selling_mode_change_refused` and `details.blockers`. Each blocker
  has a `reason`, a `message`, a `count` and up to five identifying `examples`. Nothing is saved. Finish or stop the
  work, then send the change again.

  | Blocker `reason` | What is running |
  | - | - |
  | `live_managed_campaign` | A managed campaign of this account is active or paused. |
  | `live_media_buy` | A media buy sold through this account is booked and has not ended. |
  | `market_maker` | A Market Maker offer is active for this account. Contact support. |
  | `scope3_adapter_storefront` | This is a Scope3 adapter storefront, which Scope3 runs as a Storefront agent. |

* **A Demo Storefront has a fixed type.** A change in either direction is refused with the blocker `demo_storefront`.

* **A switch to Listing closes Enhanced Reporting.** A Listing account cannot hold it. The result says how many
  connected accounts it closed in `closedEnhancedReportingAccounts`. A period already earned stays billed. Switching
  back to a Storefront agent does not turn it on again.

* **Accepting a plan sets the type.** When an organization accepts a plan, its Seller accounts take the type the plan gives: a plan that includes the Storefront agent makes them Storefront agents, and a Listing plan makes them Listings. Each change is recorded. A Listing plan is refused, with the same blockers, while Storefront-agent work is still running, and nothing about the plan or the account changes. A Demo Storefront keeps its fixed type.

* **Compare plans in Seller Settings does not change the type.** It only records which product you want to see plans for.

* **Send `sellingMode` alone.** Together with any other `save_seller` field it is refused with `VALIDATION_ERROR`.

* **Nothing is deleted** by a switch to Listing. Your demand inbox, product marketing, pitch history and campaigns stay
  stored and return if you switch back.

## Enhanced Reporting on a Listing account

Enhanced Reporting cannot be turned on for a Listing account. The call to turn it on is refused with
`VALIDATION_ERROR` and the reason `listing_account`. The connected account's `enhancedReporting` state reads
`eligible: false` with `ineligibleReason: "listing_account"`. Campaign agent accounts are not affected.
See [Set Enhanced Reporting](https://docs.apostra.com/v2/buyer/storefronts/tasks/set-enhanced-reporting.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.