You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The beta.15 seller reporting stack implements Core reporting only. ReportingStatusHandler explicitly returns empty materializations and receipts, and obligation projection hardcodes reconciliation_mode="delivery_only". Buyer-side reconciliation and sync_reporting_receipts client primitives exist, but there is no corresponding SDK-owned seller path for Managed Delivery or Reconciled Billing.
That makes the optional capabilities present in the generated AdCP 3.2 schemas much harder to implement safely and prevents sellers from honestly advertising those tiers.
Requested seller-side vertical slice
Build the durable seller primitives that extend Core without weakening it:
resolve a frozen destination configuration for an obligation;
materialize the exact canonical revision through a pluggable destination writer;
persist immutable delivery attempts/materializations and expose them in status;
accept and authenticate sync_reporting_receipts idempotently;
project reconciliation counts/status and capability dependencies (reconciled_billing requires managed_delivery);
emit transactional reporting delivery/ledger notifications through the reporting outbox.
Object-store/warehouse implementations can be separate adapters. The core SDK should define the contracts, persistence, state machine, and at least one reference destination implementation.
Acceptance criteria
Seller-side store/service protocols and PostgreSQL implementations persist immutable materializations, revision receipts, and adjustment receipts.
get_reporting_status returns tier-correct materializations/receipts and reconciliation projection, with strict account/consumer-principal isolation.
sync_reporting_receipts has a ready-to-mount seller handler with authentication, idempotency, immutable acceptance/replacement, and typed errors.
Destination credentials/configuration are resolved from trusted account state, frozen appropriately, and never leaked in status or logs.
Materializations are verified against the exact revision canonical content digest, row count, control totals, and declared format before becoming available/delivered.
Adjustments and their receipts preserve official-revision/finality rules.
Capability helpers enforce tier dependencies and refuse to advertise incomplete implementations.
A lifecycle/conformance fixture covers Core -> Managed Delivery -> Reconciled Billing, including corruption, retry, rejected receipt replacement, accepted terminal receipt, and adjustment reconciliation.
Existing Core-only deployments remain supported without destination or receipt dependencies.
Adopter impact
Embedded Sales Agent wants GAM, FreeWheel, and other source adapters to plug into one reliable pipeline while the SDK owns protocol state. We should not have to recreate the financial reconciliation state machine in every seller implementation.
Summary
The beta.15 seller reporting stack implements Core reporting only.
ReportingStatusHandlerexplicitly returns emptymaterializationsandreceipts, and obligation projection hardcodesreconciliation_mode="delivery_only". Buyer-side reconciliation andsync_reporting_receiptsclient primitives exist, but there is no corresponding SDK-owned seller path for Managed Delivery or Reconciled Billing.That makes the optional capabilities present in the generated AdCP 3.2 schemas much harder to implement safely and prevents sellers from honestly advertising those tiers.
Requested seller-side vertical slice
Build the durable seller primitives that extend Core without weakening it:
sync_reporting_receiptsidempotently;reconciled_billingrequiresmanaged_delivery);Object-store/warehouse implementations can be separate adapters. The core SDK should define the contracts, persistence, state machine, and at least one reference destination implementation.
Acceptance criteria
get_reporting_statusreturns tier-correct materializations/receipts and reconciliation projection, with strict account/consumer-principal isolation.sync_reporting_receiptshas a ready-to-mount seller handler with authentication, idempotency, immutable acceptance/replacement, and typed errors.Adopter impact
Embedded Sales Agent wants GAM, FreeWheel, and other source adapters to plug into one reliable pipeline while the SDK owns protocol state. We should not have to recreate the financial reconciliation state machine in every seller implementation.