Context
In AdCP 3.x, authentication is required on:
static/schemas/source/core/reporting-webhook.json
artifact_webhook block of static/schemas/source/media-buy/create-media-buy-request.json
This forces every receiver into the deprecated Bearer / HMAC-SHA256 path even though the canonical signing profile is RFC 9421 (seller signs with the key published at its brand.json agents[].jwks_uri; buyer verifies against the seller's JWKS).
The schema descriptions already advertise this: "This field is required in AdCP 3.x; the requirement is removed in AdCP 4.0 when the default RFC 9421 path becomes the only path" (landed in #4271).
Scope for 4.0
- Drop
"authentication" from required[] in reporting-webhook.json.
- Drop
"authentication" from the artifact_webhook.required[] block in create-media-buy-request.json.
- Confirm the security doc's webhook-callbacks section covers signing-mode selection for both surfaces (it currently focuses on
push_notification_config); extend if not.
- Decide whether to remove the
authentication block entirely or keep it as an optional opt-in for legacy receivers. Recommendation: keep optional in 4.0 with a 4.x removal target — gives sellers a one-major escape hatch.
Why this isn't 3.x
Per playbook, removing a required[] constraint is a signing-profile change and never patch-eligible. Description-only updates landed in #4271 (patch, 3.0.x). This issue tracks the structural change for the next major.
Refs
Context
In AdCP 3.x,
authenticationis required on:static/schemas/source/core/reporting-webhook.jsonartifact_webhookblock ofstatic/schemas/source/media-buy/create-media-buy-request.jsonThis forces every receiver into the deprecated Bearer / HMAC-SHA256 path even though the canonical signing profile is RFC 9421 (seller signs with the key published at its
brand.jsonagents[].jwks_uri; buyer verifies against the seller's JWKS).The schema descriptions already advertise this: "This field is required in AdCP 3.x; the requirement is removed in AdCP 4.0 when the default RFC 9421 path becomes the only path" (landed in #4271).
Scope for 4.0
"authentication"fromrequired[]inreporting-webhook.json."authentication"from theartifact_webhook.required[]block increate-media-buy-request.json.push_notification_config); extend if not.authenticationblock entirely or keep it as an optional opt-in for legacy receivers. Recommendation: keep optional in 4.0 with a 4.x removal target — gives sellers a one-major escape hatch.Why this isn't 3.x
Per playbook, removing a
required[]constraint is a signing-profile change and never patch-eligible. Description-only updates landed in #4271 (patch, 3.0.x). This issue tracks the structural change for the next major.Refs