accountType: PARTNER; clients must not treat that projection as a separate account. Unrelated-client operation requires the canonical operate-agents-for-clients entitlement under accepted paid terms or an explicitly approved, time-bounded beta. Contracted support, delegated debugging, statements, Partner-funded AI, and promotion remain paid-only. The current product also gates public listing with Partner access; the planned Agent marketplace separates baseline truthful visibility from certification and commercial authority, but that marketplace picker is not available in Seller Setup yet. During public signup, choosing Offer a sales agent to other sellers creates the organization and starts sales-agent registration. After email verification, the administrator continues to registration; signup does not request or grant commercial approval to operate the agent for unrelated clients.
The organization’s Partner page gives agent operators a place to:
- earn production certification from current evidence, including the zero-spend creative canary;
- show buyers the identity and certification status of the production agent revision serving them;
- inspect connected buyers, active results, source health, errors, latency, incidents, and ownership; and
- use contracted Partner support for integrations, incidents, and buyer adoption after purchasing the right to operate agents for clients. Self-service certification and confirmed Apostra-defect or security intake remain available without it.
null and the certification status is REGISTERED; the UI does not
substitute the version pinned in source control or imply that deployment proves
certification.
Register your sales agent
An organization administrator can register the provider and sales agent their company operates directly from the Partner page. Registration and deterministic certification are free; paid Partner Program approval is not required to create the technical identity or begin certification. Registering does not expose connected clients, grant operational access, activate a commercial relationship, or award certification. The page creates two durable records:- the provider operator, which is the provider name buyers know; and
- the typed SALES capability, which is the sales agent offered to clients.
endpoints list is optional, so
existing registrations do not need to change. Each declaration requires:
endpointKey: 3–128 characters, beginning with a letter or number and then using only letters, numbers,.,_,:,/,+, or-displayName: 1–255 charactersendpointUri: a valid HTTPS URL of at most 2,048 characters, without a username or password. The scheme is case-insensitive and is stored as lowercasehttps://; the host, port, path, query, and fragment remain otherwise exact (including an@in the path).
Attest an endpoint for an observed revision
An observed production revision can be missing an endpoint declaration even when its immutable observation and deployment provenance are valid. A directly authenticated organization account administrator may append one endpoint attestation for that exact, current observed revision. This does not change the revision key, artifact digest, or deployment history. The attestation endpoint is available only when the revision is current for the SALES capability and the supplied endpoint URI matches the active, tenant-owned SALES source after lowercasing its HTTPS scheme only. Its host, port, path, query, and fragment are otherwise compared as supplied. The URI must be credential-free HTTPS with no query or fragment component. The endpoint key and display name are recorded with the attestation; credentials are never accepted by this API.capabilityUid, revisionUid, and idempotencyKey are UUIDs.
inventorySourceId is a positive decimal PostgreSQL BIGINT. The capability,
revision, and source must still belong to the authenticated organization, and
the source must be the current active SALES source for the supplied endpoint.
The API canonicalizes only the case of the https:// scheme before comparing
the URI to that source. It does not normalize the host, port, path, query, or
fragment. The attestation request itself rejects credentials, query strings,
and fragments, so use the exact credential-free source URI without those
components.
A successful request returns HTTP 200:
replayed is true when the same request is repeated with the same
idempotencyKey; the response then returns the original attestation and
endpoint identifiers. Reusing a key for different values, providing an
invalid UUID or source ID, providing a URI with credentials, a query string,
or a fragment, or attempting to attest a revision that already has an endpoint
is rejected.
An endpoint attestation supplies endpoint provenance only. It does not register
or certify a revision, create a fixture, request an evaluation, activate a
source, dispatch a test, or authorize a transaction. Those controls remain
separate and must be satisfied independently.
These writes require a directly authenticated organization account
administrator. They cannot be performed through a service token or a
staff-assisted impersonation session. A later deployment revision starts with
its own evidence state and cannot inherit certification from an earlier one.
When fixture setup has no eligible option
Fixture setup evaluates the exact current production revision in this order: an endpoint declaration, an active SALES source with the same endpoint, and an active current source account. If there are no options, Interchange reports one safe reason without returning source-account or endpoint details:NO_ENDPOINT_FOR_CURRENT_PRODUCTION_REVISION- a directly authenticated Account Admin can use Attest current endpoint from the Agent task, then enter and confirm the credential-free HTTPS endpoint, endpoint key, and display name. The task generates one idempotency key and reuses it if the request needs a retry.NO_MATCHING_ACTIVE_SALES_SOURCE- the current revision has an endpoint, but no active SALES source matches it exactly.NO_ACTIVE_CURRENT_SOURCE_ACCOUNT- the matching source has no active current source account.
Upgrade a private agent to Partner operations
A private first-party sales agent and a Partner-operated sales agent are the same durable agent identity. Upgrading changes who the agent is commercially authorized to serve; it does not create a second agent, convert an inventory Source to another type, or replace the Source-to-agent bindings already in use. Existing first-party Sources continue to work as first-party relationships. Open the agent from Agents, then use Who this Agent can serve. The card shows four independently evaluated prerequisites: provider ownership, Partner registration, production certification, and operating standing. Operating standing comes from accepted paid/payment authority or an unexpired beta; an active billing hold blocks both. Its primary action takes the organization to the exact unresolved step. When all four are ready, the same agent may accept explicitly authorized Sources belonging to unrelated client organizations. On the Partner page, select Join the certification partner program to review an issued private offer in Plan & Billing. The offer shows its exact price, currency, term, and version before an organization administrator accepts it. If payment authority is missing, the accepted offer continues to the secure payment-method setup. If no private offer has been issued, the page directs the organization to request commercial terms. Registering an agent and completing certification remain free throughout this process. Every unrelated-client Source still requires its own explicit client authorization, provider acceptance, validation, and activation. Partner access does not infer a relationship from a shared endpoint or domain, and it does not give the provider access to Sources that have not been bound to its agent.Invite a client Storefront
An entitled Partner administrator can choose Invite a client Storefront from a Sales Agent’s Inventory sources section, or Add a client in Partner operations. Starting from an Agent opens the same invitation ledger with that exact Agent selected and its pending invitations in view. Enter the publisher name, bare publisher domain, and contact email. Apostra emails the contact a time-limited invitation and shows it as Not started until it is accepted. The invitation does not create a publisher account. The publisher follows the link and either creates its own organization or signs in to an existing one. A direct administrator then accepts the referral for that organization, selects an exact Agent Source owned by that organization, and explicitly authorizes the attachment. The Source binding, client request, and client consent are written atomically. The publisher remains responsible for its own credentials, payout setup, publisher domains, andadagents.json; Optimera or another Partner never
receives its secret values.
Accepting a referral links only the onboarding request. It does not create a
Source, share credentials, record provider acceptance, or activate the
connection. The next publisher action selects the exact Source and records the
cross-organization binding and publisher consent. Credentials, payout setup,
Partner acceptance, validation, and activation remain independent and appear
independently in the publisher lifecycle.
Partner administrators can also create and list referrals through the API:
/client-referral path and
never copy the bearer into their query strings.
setup then returns that organization’s eligible Agent
Sources and the exact completed attachment, if one already exists:
setup response:
setup returns only Agent Sources owned by the organization that accepted the
referral. complete accepts one global inventorySourceId, rechecks the
publisher organization and Partner capability inside the transaction, requires
a cross-organization relationship, and records the exact binding and consent.
Production certification remains attached to the Agent’s exact implementation
revision, not repeated for each referral. Connection validation, runtime health,
products, campaigns, and reporting remain publisher-specific.
The Partner operations view gives an authorized provider operator a source-by-source view of the client inventory explicitly connected to its capabilities. The free workspace, registration, and certification views remain available without the operate-agents-for-clients entitlement. The operational view keeps these concepts separate:
- Provider ownership identifies the organization that operates a provider and its capabilities.
- Partner registration records the free program registration. Operating authority is derived from
operate-agents-for-clientsplus either accepted payment authority or an unexpired beta, with no billing hold; a workspace status label is not authority. Owning a private provider does not automatically grant unrelated-client operating rights. - Apostra production certification evaluates the exact latest implementation revision against the current required-assertion policy. It is not purchased through Partner status.
- Client connections record the client’s request and authorization, the provider’s acceptance, validation, activation, quarantine, and connection revocation as distinct facts.
- Runtime health comes from each connected inventory source and can differ between clients using the same certified implementation.
Check Partner operations access
An organization administrator can read the effective decision before opening or activating an unrelated-client connection:state, allowed, whether paid authority is
contract-backed (purchased), account standing and its authority, ownership,
certification readiness, denial reasons, and the next action. During the v2
compatibility window, featureKey remains
partner-program-participation for existing API clients and the additive
entitlementFeatureKey is operate-agents-for-clients. Older API deployments
may omit entitlementFeatureKey, so clients should continue accepting the
legacy featureKey and prefer entitlementFeatureKey when it is present.
The access response makes paid and beta authority explicit. purchased: true
means the entitlement is backed by accepted paid terms. A temporary beta instead
returns purchased: false, standing.authority: "BETA", and its deadline in
entitlementExpiresAt:
standing.authority: "BETA" means temporary operation is approved only until
the entitlement’s recorded expiry. It creates no pricing, payment schedule,
support, SLA, renewal, listing, promotion, legal, notice, or wind-down promise.
Ownership, registration, current production certification/readiness, explicit
authorization for every client Source, tenant isolation, and billing holds continue
to apply. Contracted support, delegated diagnostics, support/AI statements, and
Partner-funded AI remain unavailable until paid terms authorize them.
This decision covers only the paid or time-bounded-beta right to operate across
unrelated client organizations. It does not charge for or control the free sales-agent registration view,
registration, testing, or certification, and it does not grant a listing,
promotion, organic-ranking change, or Murph recommendation preference.
Read Storefront capability configuration
The Storefront account response is a separate contract from the sales-agent offering projection below. Read it with:configuredCapabilities is the seller’s persisted
declaration, while capabilities is the effective public projection clients
can rely on. The effective value can differ because it is derived from the
declared flags together with Source topology, embedded ad-server locking,
product-composition mode, adapter routing, and approval settings. Use
configuredCapabilities to display or compare saved configuration; use
capabilities for buyer-facing and runtime decisions. A successful
configuration write does not by itself guarantee that the effective public
capability changed.
Read the sales-agent offering projection
Use the authenticated endpoint that backs the page:windowHours defaults to 168 and accepts values up to 720. It controls the observation window used for source-level call and failure metrics.
An organization administrator can activate or refresh one connection after its
setup is ready:
accept requires a directly authenticated Partner administrator and an active
publisher authorization for the exact binding. It records Partner acceptance
and immediately starts the same retryable validation available through
validate; acceptance does not imply that validation passed or that activation
occurred. Validation checks the current contract, authorization, production
certification (including tenant-isolation evidence), health, and credential
reference, then forces an authenticated live capability probe against the exact
publisher Source. A failed or interrupted run remains retryable; a stale
in-progress lease is never a permanent lock. activate first proves that the
exact connection belongs to the authenticated provider organization, then
rechecks approval, setup, certification, health, organization relationship, and
Partner standing in one transaction. A blocked response identifies who owns the
next step. Providers can use the activation operation
to refresh the bounded first-party organization check immediately; an automatic
worker refreshes the oldest page of up to 5,000 current connection attestations
with one bounded bulk organization lookup on a one-minute cadence. No credential
value is read or returned.
Partner administrators can read the same source-scoped delivery reporting used
by standard Storefront connections without entering the publisher account:
days from 1 to 90 (default 7), or startDate and endDate in
YYYY-MM-DD format. view=summary returns the advertiser, media-buy, and
package hierarchy; view=timeseries returns daily rows. sourceBreakdown=true
splits timeseries rows by contributing Source. Partner reporting always disables
demo and download modes and cannot override the Source selected by the binding.
The response groups explicitly connected client sources under the provider capability they use:
The example shortens some nested objects for readability. Treat the API
response as the source of truth for nullable lifecycle fields.
activatedAt
is historical evidence; only activationCurrent: true means that activation
belongs to the current, unrevoked client-authorization epoch.activationCurrent is deliberately stricter than “the client once approved.” It
is true only while the exact authorization grant, external-agent configuration,
Partner connection contract, latest certified implementation revision, provider
acceptance, post-authorization validation, source health, and quarantine state are
all current. An unrelated client also requires a claimed provider identity, an
in-force operate-agents-for-clients entitlement, either compatible card,
invoice-credit, or funded ACH authority for paid access or unexpired BETA
operating authority, and no billing hold; a verified first-party organization connection does
not. If any one
of those facts changes, activationCurrent becomes false while activatedAt
continues to show the historical event.
First-party eligibility is re-resolved from the organization hierarchy and held
only as a five-minute database-owned attestation. The automatic reconciliation
worker refreshes an indexed, oldest-first page of up to 5,000 current connections
on a one-minute cadence through the same governed activation boundary. It alerts
when the oldest page crosses a four-minute capacity margin, and a separate bounded
page keeps activation repair progressing. Source status convergence uses its own
5,000-source rotating keyset page. If repeated bounded lookups cannot
refresh an attestation, the connection fails closed; if the client is now unrelated, the active Partner
commercial requirement applies immediately on revalidation. The same worker
moves an inventory source to PENDING when any activation gate becomes false,
so the source cannot continue serving on a stale lifecycle status.
During historical Source reconciliation, an already-active first-party Source
is not demoted merely because its durable provider identity is added. Its
existing health, validation, certification, and quarantine facts remain
unchanged. A new Source, a cross-organization binding, or a Source already in
PENDING still follows the normal activation gates.
Credential values and secret references are never part of this response. The
activation check uses only whether the client-owned connection has the
type-compatible credential reference required by its selected authentication
method.
Read production certification
productionCertification is the overall, policy-versioned decision for the exact revisionUid. The first SALES policy requires current production evidence for catalog and product quality, authentication and tenant isolation, a media-buy transaction, creative-format negotiation, reporting and reconciliation, reliability and recovery, and operational ownership.
The status is:
REGISTEREDwhen the capability has not registered an implementation revision;TESTINGwhile any required assertion is missing, failed, or invalidated;CERTIFIEDonly while every required assertion is currently passing;EXPIREDwhen required passing evidence has expired;REVOKEDwhen a required assertion has been revoked; orNOT_AVAILABLEfor a capability type whose production suite is not yet available.
certifiedAt is the time the last required assertion passed. expiresAt is the earliest expiry across the required passing evidence, so the decision fails closed when any required proof becomes stale. Staging evidence and evidence from a superseded suite version do not satisfy the production policy.
For operational-ownership evidence, a Partner connection contract can name one
operating contact and the PROVIDER_FLEET_INBOX incident route. A protected
test rechecks that the named user is currently entitled to the provider-owning
organization’s inbox, then binds that result to the exact contract version,
implementation revision, fixture, and cleanup-confirmed run. This proves
platform inbox reachability only. It does not send an incident, prove an email
or webhook was delivered, or prove that a recipient acknowledged it. A missing,
changed, or no-longer-entitled contact leaves the assertion unproven.
The adjacent certification object remains the exact creative_sync_format_negotiation canary assertion. It explains that one requirement and must not be presented as the overall certification result.
The projection reads at most 2,000 joined connection rows per request and reports that ceiling in projection.rowLimit. When projection.truncated is true, the page warns that its per-capability source totals are partial rather than presenting them as complete.
The response returns at most projection.incidentRowLimit active incidents across the organization’s sales-agent offering. projection.incidentsTruncated warns when additional incidents exist. An incident is opened only after a non-healthy source signal persists for five minutes. It groups failures by the smallest supported fault domain: one client connection, one endpoint, one implementation revision, or the full provider capability. As more connections become affected, they join the existing incident rather than creating duplicate incidents.
Incident attribution is evidence, not an enforcement decision. attributedOwner can be PROVIDER, CLIENT, SCOPE3, or UNKNOWN; attributionConfidence communicates how strongly the current source observations support that owner. Recovery and attribution changes append new evidence without rewriting prior conclusions.
Interpret health safely
Health is computed per connected inventory source from that source’s observations. A healthy sibling does not hide another source’s failure, and the creative canary assertion does not become a general account-health badge. Errors expose a safe code, summary, owner (CLIENT, PROVIDER, or SCOPE3), and an optional correlation reference for provider-owned remediation. Client-owned and Apostra-owned lifecycle details remain generic in the provider view; their raw summaries and correlation references are not returned. The projection does not return credentials, raw upstream payloads, or inventory belonging to unrelated clients. Missing provider acceptance, inactive Partner eligibility when required, contract/configuration drift, and malformed or expired certification evidence fail closed.
An administrator can use the corresponding inventory-source diagnostics view to confirm which capability a source is mapped to, whether the provider accepted it, and whether the connection is active or quarantined.
Provider topology comes from the explicit capability, implementation revision, endpoint, connection, and deployment records. The sales-agent offering projection does not infer provider ownership or deployment identity from adcp_agent, source URLs, or coincidental domains.
Delegate one source for debugging
A client organization administrator can invite the certified Partner already connected to one inventory source to inspect that source’s safe diagnostics. Create the invitation through the Storefront API:bindingUid returned for the source in the sales-agent offering or diagnostics
projection; a display sourceId is not an authority identifier. expiresAt
must be in the future and no more than seven days away. The API derives the
Partner and source from that active capability connection; the client cannot
nominate another organization. The capability must have current production
certification, the provider identity must be claimed, and the Partner contract and
payment standing must be current.
An administrator of the organization enrolled in the Partner Program lists current invitations and reads one
source’s diagnostics with its own organization token:
Reconcile support effort
An administrator of an organization registered in the Partner Program can retrieve an operational statement of support effort attributed to its explicitly connected client sources:from inclusive, to
exclusive) and can cover at most 93 days. The response includes full-period
minute totals and up to 500 recent detail lines. projection.truncated indicates
when more lines exist; totals still cover the complete requested period.
Each line is attributed through one immutable bindingUid to the Partner
capability, client organization, Storefront, and inventory source. It includes a
category (ONBOARDING, CERTIFICATION, DEBUGGING, or INCIDENT_RESPONSE) and
a rating disposition:
INCLUDEDrecords effort treated as included support.OVERAGE_CANDIDATErecords effort for later reconciliation. It is not a price, invoice line, accepted commercial term, or client charge.ZERO_RATED_SCOPE3_DEFECTrecords incident-response effort excluded because a confirmed Apostra-owned platform defect affected that exact connection.
SCOPE3_DEFECT / SCOPE3 and whose latest connection-membership evidence at the
time the effort occurred says that the connection was attached. Staff cannot mark
arbitrary support effort as zero-rated. Entries are append-only, idempotent
operating evidence; corrections add new evidence rather than rewriting history.
Only explicitly Partner-safe descriptions and evidence references appear in the
statement. It does not expose credentials, raw incident payloads, internal staff
notes, unrelated client inventory, prices, or billing records. Child
organizations must switch to the registered parent organization.
Reconcile Partner-authored AI usage
An administrator of an organization registered in the Partner Program can retrieve AI usage produced by assisted testing and Partner-authored debugging for its explicitly connected sources:bindingUid, client, Storefront source, Partner-safe session reference, and any
confirmed Apostra incident used for zero-rating.
This launch records two dispositions:
TRACKED_NOT_BILLEDmeasures Partner-authored AI COGS but settles zero IUs.ZERO_RATED_SCOPE3_DEFECTadditionally proves that the exact connection was affected by a confirmed Apostra-owned defect when the usage occurred.
iuAmountMilli: 0. No Partner activity term has been accepted yet, so the
attribution cannot debit the Partner or client IU wallet, create an invoice line,
or imply a future price. A later paid activity requires its own accepted Effective
Rate Card term and entitlement before the producer can move off this dark rail.
Normal client Buyer or Storefront workloads remain attributed to the client even
when a Partner capability participates. Deterministic conformance,
certification, and routine health checks produce no AI usage row. The Partner
statement does not expose model/vendor cost, raw prompts, credentials, internal
notes, or unrelated client inventory.