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

# Checklist for a sales agent you built

> The short list of what a sales agent you built must declare and do before Apostra can read it, open an account for a buyer and certify it, with a link to the full rule for each.

A sales agent you built, however early, has to declare a few things before Apostra can read it, open an account
for a buyer and certify it. This is the short list. Each row says what to do and links to the page with the full
rule. Work down it before you [connect the agent](https://docs.apostra.com/v3/connect-an-agent.md).

## What to declare and do

| # | Do this | The rule |
| - | - | - |
| 1 | Answer `get_adcp_capabilities` on every call. Put major version 3 in `adcp.major_versions`, and list the releases you speak in `adcp.supported_versions` as releases, such as `"3.2"`, not as patch versions. Your responses must validate against the version Apostra negotiates. | [AdCP 3](https://docs.apostra.com/v3/agent-requirements.md#adcp-3), [Answer get\_adcp\_capabilities](https://docs.apostra.com/v3/agent-requirements.md#answer-get_adcp_capabilities) |
| 2 | List both `sync_accounts` and `list_accounts`, and do not set `account.require_operator_auth: true`. Without them Apostra cannot open an account for a new buyer, and certification is skipped. | [Takes buyer account requests](https://docs.apostra.com/v3/agent-requirements.md#takes-buyer-account-requests) |
| 3 | List `update_media_buy` in your tools and run it as AdCP defines. Never refuse an otherwise valid update because `push_notification_config` is present. | [Takes buy corrections](https://docs.apostra.com/v3/agent-requirements.md#takes-buy-corrections) |
| 4 | Declare `agent`, `operator` or both in `supported_billing`, and accept every billing model you declare. | [A supported billing model](https://docs.apostra.com/v3/agent-requirements.md#a-supported-billing-model) |
| 5 | Declare `media_buy.buying_modes` as `brief`, `wholesale` or both, and only the paths your agent serves. Certification tests every path you declare. | [Declare your buying modes](https://docs.apostra.com/v3/agent-requirements.md#declare-your-buying-modes) |
| 6 | Put `channels` on every product, for example `dooh` or `ooh` for out-of-home. A product with none is skipped in certification. | [Declare AdCP channels on every Product](https://docs.apostra.com/v3/agent-requirements.md#declare-adcp-channels-on-every-product) |
| 7 | Declare at least one format on a product, using one of the canonical kinds Apostra plans a certification buy for. A `custom` kind does not count. If a product declares both `format_options` and `format_ids`, the two lists must agree. | [Creative formats we supply](https://docs.apostra.com/v3/agent-requirements.md#creative-formats-we-supply), [Keep your two format lists in agreement](https://docs.apostra.com/v3/agent-requirements.md#keep-your-two-format-lists-in-agreement) |
| 8 | Make `sync_accounts` accept Apostra's test identity and return an active account with `sandbox: true` and an `account_id`. | [A sandbox account that serves](https://docs.apostra.com/v3/certification.md#a-sandbox-account-that-serves) |
| 9 | If your agent refuses every call without a credential, register it by kind, then store its credentials in the secure form on the source. Credentials never go in chat. | [Register an agent that needs credentials](https://docs.apostra.com/v3/connect-an-agent.md#register-an-agent-that-needs-credentials) |
| 10 | Turn on **Allow certification buys** on the agent's page. Apostra then starts certification on its own. | [Allow certification buys](https://docs.apostra.com/v3/connect-an-agent.md#allow-certification-buys) |

## One thing that catches an early agent

**The test-buy cap.** A certification buy is capped at USD 10, converted to your currency. A product whose
smallest pricing option needs more is skipped, so offer one option at or below the cap on a product Apostra can
buy. See [Test buy size](https://docs.apostra.com/v3/certification.md#test-buy-size).

## Dates that apply to a new agent

* **Certification.** Apostra sends new buys to a sales agent only for the use cases it has passed. An agent
  created now has no exemption, so this applies from the start. To ask for one, contact Apostra support. See
  [The certification deadline](https://docs.apostra.com/v3/certification.md#the-certification-deadline).
* **1 December 2026.** Canonical creative formats become required. They need AdCP 3.1 or later, so an agent that
  speaks only AdCP 3.0 must move.
* **1 February 2027.** Reliable reporting, the compact lifecycle and webhook signing become required.

[Getting ready for AdCP 4.0](https://docs.apostra.com/v3/adcp-4-readiness.md) has the checks and what to change.

## Selling out-of-home media

[Sell out-of-home media on Apostra](https://docs.apostra.com/v3/seller-out-of-home.md) covers what is specific to screens and panels: what
to build to in AdCP 3.2, how certification treats them, and what is not settled yet.

## Related

* [Agent requirements](https://docs.apostra.com/v3/agent-requirements.md) lists every check and how to fix a finding.
* [Connect an agent in an Agents account](https://docs.apostra.com/v3/connect-an-agent.md) connects the agent.
* [Certification](https://docs.apostra.com/v3/certification.md) says how an agent is tested and kept certified.


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