Endpoints세션

관할권 업데이트

기존 세션을 새 관할권으로 이동하고 해당 관할권의 규칙에 따라 다시 평가합니다. 응답은 업데이트된 세션이며, 새 관할권이 플레이어가 아직 받지 못한 보호자 승인을 요구하는 경우에는 챌린지가 반환됩니다.

POST
/session/update-jurisdiction
AuthorizationBearer <token>

In: header

Request Body

application/json

관할권 업데이트 요청

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/session/update-jurisdiction" \  -H "Content-Type: application/json" \  -d '{    "sessionId": "b1a6482d-5242-4b4a-aa88-3fa52595a672",    "jurisdiction": "US-CA"  }'
{  "session": {    "sessionId": "b1a6482d-5242-4b4a-aa88-3fa52595a672",    "kuid": "12b9fa0e-6d6d-4903-a1fc-f2233027b71d",    "etag": "e889efb9e8a985308e82bed78c5aef7f37f50cf36b7337bf654980d0bab7a574",    "status": "ACTIVE",    "permissions": [      {        "name": "public-profile",        "enabled": true,        "managedBy": "PLAYER",        "verifiedAgeThreshold": 18      }    ],    "allowances": [      {        "name": "string",        "type": "numerical",        "numericalValue": 0.1      }    ],    "ageStatus": "DIGITAL_MINOR",    "ageCategory": "digital-minor",    "dateOfBirth": "2005-04-15",    "jurisdiction": "US-CA",    "managedBy": "PLAYER",    "hasApproverEmail": true,    "ageVerification": {      "verifiedAge": 18,      "platformName": "apple-ios",      "declarationType": "confirmed",      "verificationId": "a50f4f73-3c0c-4720-a8b3-ec57ccb0aa34",      "verifiedAt": "2026-03-14T00:00:00Z",      "verifiedDob": "2008-03-15"    },    "requiredDataProcessingConsentFor": [      "string"    ]  },  "challenge": {    "challengeId": "ae6d4729-af32-42ea-8ef2-ff46c7664802",    "type": "CHALLENGE_PARENTAL_CONSENT",    "url": "https://example.com/challenge",    "oneTimePassword": "123456",    "childLiteAccessEnabled": true,    "kuid": "12b9fa0e-6d6d-4903-a1fc-f2233027b71d",    "jurisdiction": "US-CA",    "age": 13,    "dateOfBirth": "2005-04-15",    "otpExpiresAt": "2022-01-01T00:00:00Z",    "materialChange": {      "presentedDocuments": [        "string"      ],      "issuedAt": "2019-08-24T14:15:22Z",      "actionedAt": "2019-08-24T14:15:22Z",      "acceptanceDeadline": "2019-08-24T14:15:22Z"    },    "documents": [      {        "id": "privacy-policy",        "name": "Privacy Policy",        "url": "https://example.com/privacy",        "isDataNotice": false      }    ]  }}

세션에서 보호자 연결 해제 POST

`/invite-parent` 플로우로 이전에 연결된 플레이어 세션에서 보호자 연결을 해제합니다. 성공하면 세션에 저장된 보호자 설정값이 모두 삭제되고 `Session.Unlink` 웹훅이 발생합니다. 권한과 기존 플레이어 데이터는 그대로 유지됩니다. 이 API는 `sessionId`에 대해 멱등적입니다. 연결이 이미 해제된 뒤에 다시 호출하면 원래의 `unlinkedAt`과 함께 200을 반환합니다.

세션 업그레이드 POST

플레이어의 세션을 활성 세션으로 업그레이드하고, 요청된 권한에 보호자 동의가 필요한 경우 챌린지를 생성합니다. 세션은 `sessionId`, `kuid` 또는 둘 다로 식별합니다. 둘을 함께 제공하면 해당 사용자를 기존 세션에 연결합니다. 둘 다 제공하지 않으면 잘못된 요청이 됩니다. `options`는 이 호출로 생성되는 챌린지의 연령 보증을 조정하고, `materialChange`는 동의를 위해 제시할 법적 문서를 지정합니다. `materialChange.acceptanceDeadline`을 설정하면 기한이 있는 업그레이드가 됩니다. 보호자에게 승인 요청 링크가 이메일로 발송되며 해당 시각까지 승인해야 합니다. 미래의 UTC 타임스탬프는 제공된 그대로 적용되고 최소 유예 기간이나 반올림이 없으므로, 몇 분 뒤의 기한은 그대로 몇 분 뒤입니다. 생략하면 기한 없이 문서를 제시합니다. 문서가 변경되어 다시 동의를 받아야 하면 `priorChallengeId`를 설정하십시오. 새 챌린지는 대기 중이거나 진행 중인 챌린지를 대체하며 그 문서에 추가되고(추가만 가능), 이전 링크는 항상 최신 항목으로 연결됩니다. 반환된 챌린지의 일회용 비밀번호는 만료됩니다. 표시할 준비가 된 시점에 `/challenge/generate-otp`를 호출하고, 챌린지가 진행 중이 될 때까지 주기적으로 다시 생성하십시오.