Cancel a parent invite
Cancels an in-flight parent-invite challenge before the parent has completed it. Used when the player cancels their pending invite from inside your application while the parent is mid-verification. On cancel the challenge transitions to FAIL with `failureReason: "cancelled-by-initiator"` and any parent currently viewing the hosted widget sees the "invite canceled" state. Only `CHALLENGE_PARENT_INVITE` challenges may be cancelled via this endpoint.
Authorization
api-key In: header
Request Body
application/json
Cancel invite request
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/challenge/cancel-invite" \ -H "Content-Type: application/json" \ -d '{ "challengeId": "ae6d4729-af32-42ea-8ef2-ff46c7664802" }'{ "cancelled": true}{ "error": "INVALID_INPUT", "errorMessage": "The request was missing a sessionId parameter."}Upgrade session POST
Upgrades a player's session to an active one, creating challenges where the requested permissions need guardian consent. Identify the session by `sessionId`, by `kuid`, or by both — both together associate that user with an existing session. Passing neither is a bad request. Use `options` to tune age assurance for any challenge this call mints, and `materialChange` to name the exact legal documents to present for consent. Setting `materialChange.acceptanceDeadline` makes the upgrade deadline-bound: the guardian is emailed an approve-request link and must accept by that timestamp. Any future UTC timestamp is honoured exactly as supplied — there is no minimum window and no rounding — so a deadline minutes away stays minutes away. Omit it to present the documents with no deadline. Set `priorChallengeId` to re-consent when documents change. The new challenge supersedes a pending or in-progress one and adds to its documents (additive only), and any earlier link resolves to the latest. `requestedPermissions` may be empty. On a session that still has data notices awaiting guardian acceptance, an empty array requests that re-consent on its own: with a guardian already on file the response carries a `CHALLENGE_MATERIAL_CHANGE` scoped to exactly the outstanding notices, and with no guardian on file it carries a full `CHALLENGE_PARENTAL_CONSENT` that collects the guardian and presents the product's whole picture. On a session with nothing outstanding an empty array returns the session unchanged and no challenge. Pair it with `priorChallengeId` to supersede a challenge that is already pending rather than adding another alongside it. `priorChallengeId` only takes effect when the call mints a challenge; on a request that mints none, such as one asking only for player-managed permissions, it is still validated but the prior challenge is left as it is. A one-time password on a returned challenge expires. Call `/challenge/generate-otp` when you are ready to display it, and regenerate it periodically until the challenge is in progress.
Create bulk challenges POST
Creates parental consent challenges for several products at once, for a single player, so one guardian interaction can cover a whole product family. The response carries a challenge per requested product. As with a single challenge, `oneTimePassword` and `url` are omitted once a challenge has passed or failed.