Skip to main content

3 posts tagged with "cdk"

View All Tags

Apple iOS "confirmed" age signals are now accepted

k-ID now accepts Apple's confirmed declaration type as a verified platform age signal for players on iOS 26.5 and later.

What's new

  • confirmed is a verified Apple declaration type. Starting in iOS 26.5, Apple's Age Range Service returns only selfDeclared, guardianDeclared, or confirmed, where confirmed means the age range was set using a scrutinized method such as a credit card or government ID. k-ID treats confirmed as verified, so it can suppress the age gate, satisfy verification thresholds, and record an ageVerification.
  • Deprecated types still work. Apple deprecated paymentChecked, governmentIDChecked, guardianPaymentChecked, and guardianGovernmentIDChecked. k-ID continues to accept these for backwards compatibility, so signals from earlier iOS versions are unaffected.
  • selfDeclared and guardianDeclared remain unverified. They don't bypass age verification requirements.

Documentation

Mobile Integration Guidance for Widgets and Age Verification

We've updated the documentation to clarify how k-ID should be integrated on mobile: build the age gate and consent flows natively, and reserve web embeds for age verification URLs.

What's New

Mobile Guidance for Age Gate and End-to-End Widgets

The age gate and end-to-end widgets aren't recommended for mobile apps. On mobile, use the custom workflow and build the age gate and consent UX elements natively, following the CDK UX guidelines.

The only web embeds supported on mobile are the age verification and age assurance URLs returned by the k-ID API. See the mobile apps guide for the specific endpoints and challenge types.

Reworked Mobile Apps Guide

The Mobile apps guide has been re-centered on age verification, the flow where web embedding on mobile is still recommended:

Default Browser Method

A default external browser method has been documented under the mobile implementation methods. It works on both Android (Intent.ACTION_VIEW) and iOS (UIApplication.open), fully supports AgeKeys, and returns focus to your app through the redirectUrl callback.

Device Orientation Guidance

Age verification works best in portrait orientation. Because in-app browser surfaces inherit your app's orientation lock, apps with a locked landscape orientation should open the verification URL in the default external browser. The browser manages its own orientation, so users can rotate to portrait, and the redirectUrl callback returns them to your app when the flow completes.

Updated Documentation

  • Mobile apps: Re-centered on age verification, plus new default browser and device orientation sections
  • CDK Embedded flow: Added a note that the end-to-end and age gate widgets aren't recommended on mobile
  • CDK Overview: Added mobile guidance to the integration approaches comparison
  • CDK Custom workflow: Noted the custom workflow as the recommended approach for mobile apps
  • Verifiable Parental Consent (VPC): Added a note that this widget-based guide is for web only

Next Steps

  • If you're integrating on mobile, build your age gate and consent UX natively using the custom workflow and CDK UX guidelines
  • Embed only age verification URLs on mobile, and use the default browser method for landscape-locked apps

Platform age signals documentation

We've published end-to-end documentation for platform age signals: how Apple iOS, Google Play, Xbox, Meta Horizon, and k-ID age data flows into k-ID, when the age gate can be skipped, and how verified versus unverified signals interact with high-risk permissions and age assurance.

What's New

CDK — Platform age signals

  • Platform age signals — Quick integration paths, API map, recommended request sequence, how POST /age-gate/check uses a platform signal, supported platforms and verified declaration types, and verified versus unverified signal behavior.
  • Platform signal details — Per-platform field shapes, how to obtain each native signal, endpoint-by-endpoint notes (get-requirements, check, get-default-permissions, session/get, get-platform-age-range, session/upgrade), validation, age conflicts, and k-id signal rules.

API reference (OpenAPI)

Descriptions for session upgrade, AgeVerification, and platformAgeSignal now use verified platform signal wording consistently with the docs above.

Documentation