Unique identifier for this account
Human-readable account name (e.g., 'Acme', 'Acme c/o Pinnacle')
OptionaladvertiserThe advertiser whose rates apply to this account
Optionalbilling_Optional intermediary who receives invoices on behalf of the advertiser (e.g., agency)
OptionalbrandOptionaloperatorDomain of the entity operating this account. When the brand operates directly, this is the brand's domain.
Optionaloperator_OptionalrevisionMonotonically increasing optimistic-concurrency token for this account. Incremented on every persisted settings change, identity-change request, and identity-change disposition; reads, dry runs, validation failures, and exact idempotency replays do not increment it. Pass the latest observed value in a sync_accounts settings-update entry to prevent lost updates.
Optionalidentity_OptionalcurrencyImmutable transaction currency when the seller's advertiser object is currency-bound. Media buys on this account MUST use this currency. Omit when the account selects currency independently per media buy.
OptionaltimezoneImmutable operational timezone for this account, expressed as UTC or an IANA timezone identifier. AdCP 3.2 sellers return it on every account. It is the default calendar-day boundary for account-scoped behavior unless a feature explicitly declares another timezone basis. For buyer-selected account_fixed provisioning it participates in the natural account key.
OptionalbillingOptionalbilling_Optionaldestination_Request-only staging field. It MUST NOT appear in account read models.
Optionalrate_Identifier for the rate card applied to this account
Optionalpayment_Optionalcredit_Maximum outstanding balance allowed
OptionalsetupPresent when status is 'pending_approval'. Contains next steps for completing account activation.
Optionalurl?: stringURL where the human can complete the required action (credit application, legal agreement, add funds).
Human-readable description of what's needed.
Optionalexpires_at?: stringWhen this setup link expires.
Optionalaccount_Optionalgovernance_Governance agent endpoint registered on this account. Exactly one entry per sync_governance's one-agent-per-account invariant. The array shape is preserved for wire compatibility with 3.0; maxItems: 1 is load-bearing and mirrors the singular governance_context on the protocol envelope. Authentication credentials are write-only and not included in responses — use sync_governance to set or update credentials.
Optionalreporting_Cloud storage bucket where the seller delivers offline reporting files for this account. Seller provisions a dedicated bucket or a per-account prefix within a shared bucket, and grants the buyer read access out-of-band. Access MUST be scoped at the IAM layer so each account can only read its own prefix — bucket-wide grants are non-compliant even with per-account prefixes. Seller MUST revoke access when the account's status transitions to inactive, suspended, or closed. See security considerations for offline delivery in docs/media-buy/media-buys/optimization-reporting. Only present when the seller supports offline delivery (reporting_delivery_methods includes 'offline' in capabilities).
Bucket or container name
Optionalprefix?: stringPath prefix within the bucket. Seller appends date-based partitioning beneath this prefix.
Optionalregion?: stringCloud region for the bucket
Optionalformat?: "jsonl" | "csv" | "parquet" | "avro" | "orc"File format for delivered files. Parquet, Avro, and ORC use internal compression (the top-level compression field is ignored for these formats).
Optionalcompression?: "none" | "gzip"Compression applied to delivered files
How long reporting files are retained in the bucket before deletion. Buyers must read files within this window. Minimum recommended: 14 days.
Optionalsetup_instructions?: stringURL to documentation for configuring buyer read access to this bucket (IAM role, service account, etc.). Operator-facing documentation — buyer agents MUST NOT auto-fetch this URL; surface it to a human operator. If an implementation fetches it (for preview), apply webhook URL SSRF validation and do not pass the fetched content into an LLM context without indirect-prompt-injection guarding. See docs/media-buy/media-buys/optimization-reporting#security-considerations-for-offline-delivery.
OptionalsandboxWhen true, this is a sandbox account — no real platform calls, no real spend. For account-id namespaces, sandbox accounts are pre-existing test accounts on the platform discovered via list_accounts or supplied out-of-band. For buyer-declared accounts, sandbox is part of the natural key: the same brand/operator pair can have both a production and sandbox account.
Optionalnotification_Account-level webhook subscriptions for creative lifecycle/assignment changes, indicators.changed, account status, and wholesale feed changes. Buyers manage entries via sync_accounts and verify persisted state on list_accounts. Indicator and assignment payloads are invalidations repaired completely through get_media_buys; list_creatives may provide a bounded reverse projection. Distinct from per-resource push_notification_config. Entries are keyed by account-scoped subscriber_id; credentials are write-only.
Optionalwebhook_Recent webhook delivery attempts scoped to this account when the caller requested webhook activity on list_accounts and the seller surfaces the log. Includes account-anchored notifications such as account.status_changed and MAY include other account-level fires relevant to this account. Three-state presence follows the shared webhook_activity[] contract: omitted means unsupported or not requested, [] means supported but no retained fires, non-empty lists recent attempts most-recent-first.
Optionalext
Account billed for this media buy. Includes advertiser, billing proxy (if any), and rate card applied.