@adcp/sdk API Reference - v14.3.0
    Preparing search index...

    Type Alias ReportingDeliveryCapabilities

    ReportingDeliveryCapabilities: {} & {
        supported: true;
        reliable_reporting_version?: "1.0";
        managed_delivery?: boolean;
        reconciled_billing?: boolean;
        configuration_task: "sync_accounts";
        status_task: "get_reporting_status";
        consumer_status_task?: "sync_reporting_status";
        revision_content_task?: "get_media_buy_delivery";
        receipt_task?: "sync_reporting_receipts";
        readiness_notification?: "reporting.delivery_ready";
        status_notification?: "reporting.status_changed";
        ledger_notification?: "reporting.ledger_changed";
        offerings: [ReportingDeliveryOffering, ...ReportingDeliveryOffering[]];
        automated_recovery_window_seconds: number;
        status_retention_days: number;
        consumer_mismatch_escalation_seconds?: number;
        operations_contact?: { url?: string; email?: string };
        reliability_statistics?: ReportingReliabilityStatistics[];
        resource_retention_days?: number;
        supports_webhook_activity?: boolean;
        authorization_revocation_seconds?: number;
    }

    AdCP 3.2 Reliable Reporting capability. The affirmative machine answer to ‘Do you support Reliable Reporting?’ requires this block with supported: true and reliable_reporting_version: 1.0 plus media_buy.reporting_delivery in experimental_features. Core exposes seller get_reporting_status; during the published migration window, consumer_status_task separately advertises opt-in buyer-to-seller sync_reporting_status and becomes required Core only in the next eligible minor. managed_delivery and reconciled_billing identify optional tiers. This generalizes, but does not remove, the legacy reporting_delivery_methods/offline_delivery_protocols surface; those legacy fields and declarations from other protocols do not imply Reliable Reporting support.

    Type Declaration

      • supported: true
      • Optionalreliable_reporting_version?: "1.0"

        Explicit adoption declaration for the proper-name AdCP 3.2 Reliable Reporting contract. Presence, together with supported: true and the media_buy.reporting_delivery experimental feature gate, is the affirmative machine-readable answer. Absence denotes the earlier experimental managed-reporting shape.

      • Optionalmanaged_delivery?: boolean

        Tier flag: this seller supports managed file, dataset-share, or warehouse delivery. Offerings whose method names a delivery pattern require this tier. When false or absent, every offering is API-delivered and Core-only.

      • Optionalreconciled_billing?: boolean

        Tier flag: this seller supports canonical-digest verification and authenticated consumer receipts for both report materializations and post-official adjustments through receipt_task. Offerings with reconciliation_mode consumer_receipt and billing-grade canonicalization require this tier.

      • configuration_task: "sync_accounts"
      • status_task: "get_reporting_status"
      • Optionalconsumer_status_task?: "sync_reporting_status"

        Opt-in consumer-status loop during the published migration window, becoming required Core in the next eligible minor after that window. Buyers call this seller-hosted task to record whether each expected reporting period was received, missing, or unreadable. Buyers expose no reverse endpoint, and the status is not a billing receipt.

      • Optionalrevision_content_task?: "get_media_buy_delivery"

        Reliable Reporting exact-content read: callers select reporting_revision_id and receive immutable revision metadata plus authoritative canonical reporting_rows.

      • Optionalreceipt_task?: "sync_reporting_receipts"

        Required when reconciled_billing is true: the task consumers call to submit and read back authenticated revision and adjustment receipts.

      • Optionalreadiness_notification?: "reporting.delivery_ready"

        Optional managed-delivery-only positive-readiness doorbell. It names a materialization at a destination, so Core sellers MUST omit it.

      • Optionalstatus_notification?: "reporting.status_changed"

        Optional tier-independent invalidation doorbell for health transitions in either direction, including clock-driven waiting-to-delayed and delayed-to-action_required. Valid for Core: it names no destination. Polling status_task remains the authoritative recovery path whether or not this is offered.

      • Optionalledger_notification?: "reporting.ledger_changed"

        Optional tier-independent invalidation for every newly committed revision or post-official adjustment, even when health does not change. Receivers repair through get_reporting_status changes_after; polling remains authoritative.

      • offerings: [ReportingDeliveryOffering, ...ReportingDeliveryOffering[]]

        Atomic supported feed/profile/schedule/finality/method combinations. offering_id values MUST be unique.

        1

      • automated_recovery_window_seconds: number

        Maximum late interval during which a due obligation may remain delayed while automated recovery continues before action_required.

      • status_retention_days: number

        Minimum period for which obligation, revision, and materialization metadata remain queryable.

      • Optionalconsumer_mismatch_escalation_seconds?: number

        Maximum interval after a CONSUMER_STATUS_MISMATCH issue's opened_at during which the seller may keep that issue at a non-escalated recommended_action. After it, the issue MUST be action_required with a contact_ recommended_action naming the diagnosed responsible_party. Declaring it requires operations_contact so the escalation has a destination. Absence means the seller publishes no escalation commitment; it never means an unbounded one.

      • Optionaloperations_contact?: { url?: string; email?: string }

        Optional non-secret human escalation path for reporting issues the protocol cannot resolve. It is display metadata for an operator, not an AdCP endpoint: agents MUST NOT dereference, probe, or send protocol traffic to these values, and they carry no authorization. Required when consumer_mismatch_escalation_seconds is advertised.

        • Optionalurl?: string

          HTTPS page a human uses to open or track a reporting issue, such as a support portal or status page. Same hardened origin shape as the offering document URIs: never an IP literal, userinfo URL, loopback host, AdCP task endpoint, webhook target, or credentialed link.

        • Optionalemail?: string

          Monitored operations mailbox for reporting escalations. A role address, not an individual.

      • Optionalreliability_statistics?: ReportingReliabilityStatistics[]

        Optional evidence-scoped observed performance for advertised offerings. offering_id values MUST be unique and name offerings in this capability block.

      • Optionalresource_retention_days?: number

        Minimum period after publication for which at least one verified exact materialization remains readable to every still-authorized intended consumer.

      • Optionalsupports_webhook_activity?: boolean
      • Optionalauthorization_revocation_seconds?: number

        Maximum delay after caller/account authorization ends before seller-controlled transport access, provider grants, and write credentials are revoked. It cannot revoke a buyer's access to data already written into a buyer-owned destination.