sync_accounts
[AdCP Accounts] Establish or confirm the account behind this credential.
IMPORTANT — what this does NOT do: it does not provision a new account. This seller's namespace is one account per API key, so a provisioning-mode entry (brand + operator + billing) is LINKED to the account your key already owns and the response says so in warnings[]. Two different brands on one key resolve to the SAME account_id. Register one agent per brand at https://api.trillboards.com/v1/partner/agent/register if you need per-brand separation.
BILLING IS THE ONE SETTING THAT IS APPLIED. Send billing: 'operator' (we invoice you, buying direct) or 'agent' (you are a buying agent consolidating across the brands you front, and we invoice you for all of them — the marketplace-clearing model). The value is stored on the account, reported back by list_accounts, and reflected in action 'updated'. The set we accept is exactly account.supported_billing from get_adcp_capabilities; 'advertiser' is refused, with the reason, because we hold no billing relationship with a third-party advertiser. One key is one account with one invoiced party, so a request declaring two different billing values applies neither and says so.
Everything else is read-only and reports 'unchanged': payment terms, billing entity and notification subscriptions are not per-account state on this platform, and anything sent that was not applied is named in warnings[] rather than silently swallowed.
WHEN TO USE:
The account-setup step at the start of a buying flow
Declaring how you want to be invoiced, before create_media_buy
Confirming your account_id and status before create_media_buy
RETURNS:
accounts: per-entry result with account_id, action ('updated' | 'unchanged' | 'failed'), status, billing, account_scope, and warnings naming anything not applied
EXAMPLE: sync_accounts({ idempotency_key: "8f1c...", accounts: [{ brand: { domain: "acme.example" }, operator: "agency.example", billing: "agent" }] })
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | ||
| dry_run | No | Echo what would happen without applying it. Reported back as dry_run. | |
| accounts | Yes | Per-account entries. Each uses ONE key shape: `account` (settings-update) or the flat brand + operator + billing trio (provisioning). | |
| delete_missing | No | Not supported — this seller never deletes an account from a sync. | |
| idempotency_key | Yes | Client-generated key for safe retries. This operation has no side effects, so a replay returns the same result. | |
| push_notification_config | No |