openapi: 3.0.1 info: description: API documentation of MyAccount Portal title: MyAccount Portal version: v0.0.1 servers: - url: https://{tenant} variables: tenant: default: example.strivacity.com description: Your Strivacity tenant tags: - name: Authenticator management - name: Consent - name: Personal Data - name: Self Management paths: /myaccount/api/v1/attributes: get: description: 'You can list the available attributes by calling this endpoint. To use this endpoint, the "Allow customers to manage their personal information" option must be turned on in the Self-service policy settings.' operationId: getAvailableAttributes responses: '200': content: '*/*': schema: oneOf: - $ref: '#/components/schemas/MyAccountStringAttributeResponse_AccountAttribute' - $ref: '#/components/schemas/MyAccountCheckboxAttributeResponseOpenApi_AccountAttribute' - $ref: '#/components/schemas/MyAccountSelectAttributeResponse_AccountAttribute' - $ref: '#/components/schemas/MyAccountPhoneAttributeResponse_AccountAttribute' - $ref: '#/components/schemas/MyAccountDateAttributeResponse_AccountAttribute' - $ref: '#/components/schemas/MyAccountStringListAttributeResponse_AccountAttribute' - $ref: '#/components/schemas/MyAccountSelectAttributeResponse_AccountAttribute' - $ref: '#/components/schemas/MyAccountDateAttributeResponse_AccountAttribute' - $ref: '#/components/schemas/MyAccountEmailListAttributeResponse_AccountAttribute' - $ref: '#/components/schemas/MyAccountPhoneNumberListAttributeResponse_AccountAttribute' - $ref: '#/components/schemas/MyAccountComplexListAttributeResponse_AccountAttribute' description: OK '401': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Unauthorized '403': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Forbidden security: - securityScheme: [] summary: List available attributes tags: - Self Management /myaccount/api/v1/authenticators: post: description: You can enroll authenticator of the authenticated account using this endpoint. This action needs verification. The request should be repeated with X-Challenge header filled with the verification code sent right after the first request. operationId: addAuthenticatorRequest parameters: - in: header name: X-Challenge schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/AuthenticatorInsert_Authenticator' required: true responses: '200': content: '*/*': schema: $ref: '#/components/schemas/AuthenticatorSchemaResponse' description: OK '202': description: Accepted headers: X-Retry-After: description: Timestamp indicating when the request can be retried. schema: type: string format: date-time style: simple '400': content: '*/*': schema: $ref: '#/components/schemas/ProblemJson' description: Bad Request '409': content: '*/*': schema: $ref: '#/components/schemas/ProblemJson' description: Conflict '429': description: Too many requests - rate limit exceeded or progressive delay enforcement triggered headers: X-Retry-After: description: Timestamp indicating when the request can be retried. required: true schema: type: string format: date-time style: simple summary: Enroll an authenticator tags: - Authenticator management /myaccount/api/v1/authenticators/{authenticatorId}: delete: description: You can delete an authenticator of the authenticated account using this endpoint. This action needs verification. The request should be repeated with X-Challenge header filled with the verification code sent right after the first request. operationId: removeAuthenticatorRequest parameters: - in: header name: X-Challenge schema: type: string - in: path name: authenticatorId required: true schema: type: string responses: '200': content: '*/*': schema: type: string description: OK '202': description: Accepted headers: X-Retry-After: description: Timestamp indicating when the request can be retried. schema: type: string format: date-time style: simple '429': description: Too many requests - rate limit exceeded or progressive delay enforcement triggered headers: X-Retry-After: description: Timestamp indicating when the request can be retried. required: true schema: type: string format: date-time style: simple summary: Delete an authenticator tags: - Authenticator management post: description: You can update the methods of an authenticator of the authenticated account using this endpoint. operationId: updateAuthenticator parameters: - in: path name: authenticatorId required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/AuthenticatorUpdate_Authenticator' required: true responses: '200': content: '*/*': schema: $ref: '#/components/schemas/AuthenticatorSchemaResponse' description: OK summary: Update authenticator methods tags: - Authenticator management /myaccount/api/v1/consents: get: description: 'You can list the consents of the authenticated account by calling this endpoint. To use this endpoint, the "Allow customers to manage their consents" option must be turned on in the Self-service policy settings.' operationId: getConsents responses: '200': content: '*/*': schema: type: array items: $ref: '#/components/schemas/MyAccountConsentResponse_Consent' description: OK '401': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Unauthorized '403': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Forbidden security: - securityScheme: [] summary: List consents tags: - Consent /myaccount/api/v1/consents/{consentId}/optIn: post: description: 'You can accept a consent for the authenticated account by calling this endpoint. To use this endpoint, the "Allow customers to manage their consents" option must be turned on in the Self-service policy settings.' operationId: optInConsent parameters: - in: path name: consentId required: true schema: type: string responses: '200': content: '*/*': schema: $ref: '#/components/schemas/MyAccountConsentResponse_Consent' description: OK '401': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Unauthorized '403': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Forbidden '404': content: '*/*': schema: $ref: '#/components/schemas/ProblemJson' description: Not Found '409': content: '*/*': schema: $ref: '#/components/schemas/ProblemJson' description: Consent is already opted in security: - securityScheme: [] summary: Accept a consent tags: - Consent /myaccount/api/v1/consents/{consentId}/optOut: post: description: 'You can revoke a consent for the authenticated account by calling this endpoint. To use this endpoint, the "Allow customers to manage their consents" option must be turned on in the Self-service policy settings.' operationId: optOutConsent parameters: - in: path name: consentId required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountConsentOptOutRequest_Consent' required: true responses: '200': content: '*/*': schema: $ref: '#/components/schemas/MyAccountConsentResponse_Consent' description: OK '400': content: '*/*': schema: $ref: '#/components/schemas/ProblemJson' description: Bad Request '401': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Unauthorized '403': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Forbidden '404': content: '*/*': schema: $ref: '#/components/schemas/ProblemJson' description: Not Found security: - securityScheme: [] summary: Revoke a consent tags: - Consent /myaccount/api/v1/identifier: post: description: You can update identifiers of the authenticated account using this endpoint. The update attempt of email and phone identifiers needs verification. Those requests should be repeated with X-Challenge header filled with the verification code sent right after the first request. operationId: updateIdentifierRequest parameters: - in: header name: X-Challenge schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountIdentifierUpdateRequest' required: true responses: '200': content: '*/*': schema: type: string description: OK '202': content: '*/*': schema: $ref: '#/components/schemas/ChallengeSentResponse' description: Accepted headers: X-Retry-After: description: Timestamp indicating when the request can be retried. schema: type: string format: date-time style: simple '429': description: Too many requests - rate limit exceeded or progressive delay enforcement triggered headers: X-Retry-After: description: Timestamp indicating when the request can be retried. required: true schema: type: string format: date-time style: simple summary: Update identifier tags: - Self Management /myaccount/api/v1/identities: get: description: You can list the identities of the authenticated account by calling this endpoint. operationId: getMyIdentities responses: '200': content: '*/*': schema: type: object additionalProperties: $ref: '#/components/schemas/IdentityEntry_SelfManagement' description: OK summary: List identities tags: - Self Management /myaccount/api/v1/identities/{externalLoginId}: delete: description: You can unlink an external identity from the account by calling this endpoint. operationId: deleteExternalIdentity parameters: - in: path name: externalLoginId required: true schema: type: string responses: '204': description: No Content '400': content: '*/*': schema: $ref: '#/components/schemas/ProblemJson' description: Bad Request summary: Unlink an external identity from the account tags: - Self Management /myaccount/api/v1/me: get: description: You can get the account information of the authenticated account by calling this endpoint. operationId: getPrincipal responses: '200': content: '*/*': schema: $ref: '#/components/schemas/PrincipalResponse_MyAccountPrincipal' description: OK summary: Get account information tags: - Self Management /myaccount/api/v1/me/personalData: get: description: 'You can download the account information of the authenticated account in HTML or JSON format by calling this endpoint. To use this endpoint, the "Allow customers to download their data" option must be turned on in the Self-service policy settings.' operationId: getPersonalData parameters: - in: query name: fileType required: true schema: pattern: html|json type: string enum: - html - json responses: '200': content: '*/*': schema: type: string description: OK headers: Content-Disposition: schema: type: string example: attachment; filename="{filename}" style: simple '400': content: '*/*': schema: $ref: '#/components/schemas/ProblemJson' description: Invalid file type or file type is not present '401': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Unauthorized '403': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Forbidden security: - securityScheme: [] summary: Download account information tags: - Personal Data /myaccount/api/v1/notificationPreferences: get: description: 'You can get the notification preferences of the authenticated account by calling this endpoint. To use this endpoint, the "Allow customers to manage their own notifications" option must be turned on in the Self-service policy settings.' operationId: getNotificationPreferences responses: '200': content: '*/*': schema: $ref: '#/components/schemas/NotificationPreferencesResponse' description: OK '401': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Unauthorized '403': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Forbidden security: - securityScheme: [] summary: Get account notification preferences tags: - Self Management put: description: 'You can update the notification preferences of the authenticated account by calling this endpoint. To use this endpoint, the "Allow customers to manage their own notifications" option must be turned on in the Self-service policy settings.' operationId: updateNotificationPreferences parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/NotificationPreferencesRequest' required: true responses: '200': content: '*/*': schema: $ref: '#/components/schemas/NotificationPreferencesResponse' description: OK '400': content: '*/*': schema: $ref: '#/components/schemas/ProblemJson' description: Bad Request '401': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Unauthorized '403': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Forbidden security: - securityScheme: [] summary: Update account notification preferences tags: - Self Management /myaccount/api/v1/notificationPreferences/descriptor: get: description: 'You can list the possible descriptors for notification preferences by calling this endpoint. To use this endpoint, the "Allow customers to manage their own notifications" option must be turned on in the Self-service policy settings.' operationId: getNotificationPreferencesDescriptor responses: '200': content: '*/*': schema: type: array items: $ref: '#/components/schemas/DisplayNameAndIdResponse' description: OK '401': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Unauthorized '403': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Forbidden security: - securityScheme: [] summary: List descriptors for notification preferences tags: - Self Management /myaccount/api/v1/password: post: description: 'You can change the password of the authenticated account by calling this endpoint. To use this endpoint, the "Allow customers to change their password" option must be turned on in the Self-service policy settings.' operationId: updatePassword parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/PasswordChange_SelfManagement' required: true responses: '204': description: No Content '400': content: '*/*': schema: $ref: '#/components/schemas/ProblemJson' description: Bad Request '401': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Unauthorized '403': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Forbidden security: - securityScheme: [] summary: Change password tags: - Self Management /myaccount/api/v1/personal: get: description: 'You can get the metadata of the authenticated account by calling this endpoint. To use this endpoint, the "Allow customers to manage their personal information" option must be turned on in the Self-service policy settings.' operationId: getPersonal responses: '200': content: '*/*': schema: type: object additionalProperties: type: object description: OK '401': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Unauthorized '403': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Forbidden security: - securityScheme: [] summary: Get account metadata tags: - Self Management put: description: 'You can update the metadata of the authenticated account by calling this endpoint. To use this endpoint, the "Allow customers to manage their personal information" option must be turned on in the Self-service policy settings. Attributes provided with an explicit `null` value won''t be overridden by external metadata values.' operationId: updatePersonal parameters: [] requestBody: content: application/json: schema: type: object additionalProperties: type: object required: true responses: '200': content: '*/*': schema: type: object additionalProperties: type: object description: OK '400': content: '*/*': schema: $ref: '#/components/schemas/ProblemJson' description: Bad Request '401': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Unauthorized '403': content: application/problem+json: schema: $ref: '#/components/schemas/ProblemJson' description: Forbidden '409': content: '*/*': schema: $ref: '#/components/schemas/ProblemJson' description: Conflict security: - securityScheme: [] summary: Update metadata tags: - Self Management components: schemas: AccountConsentOptOutRequest_Consent: required: - id type: object properties: id: minLength: 1 type: string description: ID of the consent acceptance AccountIdentifierUpdateRequest: required: - type type: object properties: identifier: type: string type: type: string description: Identifier method used by identity stores enum: - username - email - phone AuthenticatorInsert_Authenticator: required: - methods - target - type type: object properties: methods: type: array items: type: string description: Methods of the authenticator. Can be 'passcode', or 'magicLink' for email and 'voice', 'passcode', or 'magicLink' for phone. enum: - passcode - voice - magicLink target: minLength: 1 type: string description: Target value of the authenticator, such as an email address or phone number. type: type: string description: Type of the authenticator, can be 'email' or 'phone'. enum: - email - phone AuthenticatorSchemaResponse: type: object properties: createdAt: type: string description: Creation time of the authenticator format: date-time id: type: string lastUsedAt: type: string description: Last usage time of the authenticator format: date-time methods: type: array items: type: string description: 'Authenticator method that defines how the authentication can be done. Possible values: `passcode`, `magicLink` or `voice`' example: passcode target: type: string description: Authenticator target, to where the MFA will be requested for example: '+36301234567' type: type: string description: Authenticator type used for MFA enum: - phone - email description: Represents an authenticator for an account AuthenticatorUpdate_Authenticator: required: - methods type: object properties: methods: maxItems: 2147483647 minItems: 1 type: array items: type: string description: Methods of the authenticator. Can be 'passcode', or 'magicLink' for email and 'voice', 'passcode', or 'magicLink' for phone. enum: - passcode - voice - magicLink ChallengeSentResponse: type: object properties: passcodeLength: type: integer format: int32 DateValidator_AccountAttribute: type: object properties: notAfter: type: string format: date notAfterRelativeDays: type: integer format: int32 notBefore: type: string format: date notBeforeRelativeDays: type: integer format: int32 description: Represents a date validator DisplayNameAndIdResponse: type: object properties: displayName: type: string id: type: string FieldError: type: object properties: field: type: string message: type: string objectName: type: string IdentityEntry_SelfManagement: type: object properties: provider: type: string value: type: string ListValidator_AccountAttribute: type: object properties: max: type: integer format: int32 min: type: integer format: int32 description: Represents a list validator MyAccountCheckboxAttributeResponseOpenApi_AccountAttribute: type: object properties: autocomplete: type: string default: type: boolean displayName: type: string editable: type: boolean path: type: string required: type: boolean type: type: string enum: - checkbox MyAccountCheckboxChildAttributeResponse_AccountAttribute: type: object properties: autocomplete: type: string default: type: boolean displayName: type: string path: type: string required: type: boolean type: type: string uniqueInTheList: type: boolean MyAccountChildAttributeResponse_AccountAttribute: type: object oneOf: - $ref: '#/components/schemas/MyAccountStringChildAttributeResponse_AccountAttribute' - $ref: '#/components/schemas/MyAccountCheckboxChildAttributeResponse_AccountAttribute' - $ref: '#/components/schemas/MyAccountDateChildAttributeResponse_AccountAttribute' - $ref: '#/components/schemas/MyAccountEmailChildAttributeResponse_AccountAttribute' - $ref: '#/components/schemas/MyAccountPhoneNumberChildAttributeResponse_AccountAttribute' - $ref: '#/components/schemas/MyAccountSelectChildAttributeResponse_AccountAttribute' MyAccountComplexListAttributeResponse_AccountAttribute: type: object properties: childAttributes: type: array items: $ref: '#/components/schemas/MyAccountChildAttributeResponse_AccountAttribute' displayName: type: string editable: type: boolean listValidator: $ref: '#/components/schemas/ListValidator_AccountAttribute' path: type: string type: type: string MyAccountConsentResponse_Consent: type: object properties: accepted: type: boolean consentId: type: string displayText: type: string description: Represents the consent statement receiptId: type: string description: ID of the consent acceptance, `null` if the consent has been revoked or hasn't been accepted type: type: string enum: - optional - mandatory - mandatoryHidden MyAccountDateAttributeResponse_AccountAttribute: type: object properties: autocomplete: type: string displayName: type: string editable: type: boolean path: type: string renderType: type: string enum: - native - fieldSet required: type: boolean type: type: string validator: $ref: '#/components/schemas/DateValidator_AccountAttribute' MyAccountDateChildAttributeResponse_AccountAttribute: type: object properties: autocomplete: type: string displayName: type: string path: type: string renderType: type: string enum: - native - fieldSet required: type: boolean type: type: string uniqueInTheList: type: boolean validator: $ref: '#/components/schemas/DateValidator_AccountAttribute' MyAccountEmailChildAttributeResponse_AccountAttribute: type: object properties: autocomplete: type: string displayName: type: string path: type: string required: type: boolean type: type: string uniqueInTheList: type: boolean MyAccountEmailListAttributeResponse_AccountAttribute: required: - indexing type: object properties: displayName: type: string editable: type: boolean indexing: type: string description: 'Defines searchability for an attribute. Possible values: `none` - Not searchable, `searchOnly` - Searchable, `searchUnique` - Searchable and unique to identity store, `searchUniqueInOrganization` - Searchable and unique to organization' enum: - none - searchOnly - searchUnique - searchUniqueInOrganization listValidator: $ref: '#/components/schemas/ListValidator_AccountAttribute' path: type: string type: type: string MyAccountPhoneAttributeResponse_AccountAttribute: type: object properties: autocomplete: type: string displayName: type: string editable: type: boolean path: type: string required: type: boolean type: type: string enum: - phoneNumber MyAccountPhoneNumberChildAttributeResponse_AccountAttribute: type: object properties: autocomplete: type: string displayName: type: string path: type: string required: type: boolean type: type: string uniqueInTheList: type: boolean MyAccountPhoneNumberListAttributeResponse_AccountAttribute: required: - indexing type: object properties: displayName: type: string editable: type: boolean indexing: type: string description: 'Defines searchability for an attribute. Possible values: `none` - Not searchable, `searchOnly` - Searchable, `searchUnique` - Searchable and unique to identity store, `searchUniqueInOrganization` - Searchable and unique to organization' enum: - none - searchOnly - searchUnique - searchUniqueInOrganization listValidator: $ref: '#/components/schemas/ListValidator_AccountAttribute' path: type: string type: type: string MyAccountSelectAttributeResponse_AccountAttribute: type: object properties: autocomplete: type: string default: type: string displayName: type: string editable: type: boolean path: type: string renderType: type: string enum: - native - radio required: type: boolean type: type: string values: type: array items: $ref: '#/components/schemas/SelectValue_AccountAttribute' MyAccountSelectChildAttributeResponse_AccountAttribute: type: object properties: autocomplete: type: string default: type: string displayName: type: string path: type: string renderType: type: string enum: - native - radio required: type: boolean type: type: string uniqueInTheList: type: boolean values: type: array items: $ref: '#/components/schemas/SelectValue_AccountAttribute' MyAccountStringAttributeResponse_AccountAttribute: type: object properties: autocomplete: type: string default: type: string displayName: type: string editable: type: boolean path: type: string required: type: boolean type: type: string enum: - string validator: $ref: '#/components/schemas/StringValidator_AccountAttribute' MyAccountStringChildAttributeResponse_AccountAttribute: type: object properties: autocomplete: type: string default: type: string displayName: type: string path: type: string required: type: boolean type: type: string uniqueInTheList: type: boolean validator: $ref: '#/components/schemas/StringValidator_AccountAttribute' MyAccountStringListAttributeResponse_AccountAttribute: required: - indexing type: object properties: default: type: string displayName: type: string editable: type: boolean indexing: type: string description: 'Defines searchability for an attribute. Possible values: `none` - Not searchable, `searchOnly` - Searchable, `searchUnique` - Searchable and unique to identity store, `searchUniqueInOrganization` - Searchable and unique to organization' enum: - none - searchOnly - searchUnique - searchUniqueInOrganization listValidator: $ref: '#/components/schemas/ListValidator_AccountAttribute' path: type: string type: type: string validator: $ref: '#/components/schemas/StringValidator_AccountAttribute' NameReferenceResponse_MyAccountPrincipal: type: object properties: name: type: string description: Name of the represented entity example: Entity name NotificationPreferencesRequest: type: object properties: accountAttributeUpdate: type: boolean accountDeletion: type: boolean accountLockout: type: boolean mfaMethodChange: type: boolean passwordResetSuccess: type: boolean description: Contains which types of notifications are enabled or not for an account NotificationPreferencesResponse: type: object properties: accountAttributeUpdate: type: boolean accountDeletion: type: boolean accountLockout: type: boolean mfaMethodChange: type: boolean passwordResetSuccess: type: boolean description: Contains which types of notifications are enabled or not for an account PasswordChange_SelfManagement: required: - currentPassword - newPassword type: object properties: currentPassword: maxLength: 256 minLength: 1 type: string newPassword: maxLength: 256 minLength: 1 type: string PrincipalResponse_MyAccountPrincipal: type: object properties: email: type: string description: Email address of the account, if the account has an email identifier, it's the email identifier, otherwise it's the email native claim emailVerified: type: boolean name: type: object additionalProperties: type: string organization: $ref: '#/components/schemas/NameReferenceResponse_MyAccountPrincipal' permissions: uniqueItems: true type: array items: type: string phone: type: string description: Phone identifier of the account picture: type: string description: Picture URL of the account portalURL: type: string userName: type: string ProblemJson: type: object properties: detail: type: string entityName: type: string description: The name of the entity within the error has occurred errorKey: type: string description: A unique identifier of the error fieldErrors: type: array description: Field constraint violation errors items: $ref: '#/components/schemas/FieldError' message: type: string description: A unique identifier in format of 'error.{errorKey}' params: type: array description: Further information related to the actual error items: type: object additionalProperties: type: object path: type: string description: Request URI status: type: integer description: Status code format: int32 title: type: string description: Based on [RFC 7807](https://datatracker.ietf.org/doc/html/rfc7807) SelectValue_AccountAttribute: type: object properties: displayName: type: string value: type: string description: Represents a select value StringValidator_AccountAttribute: type: object properties: errorMessage: type: string max: type: integer format: int32 min: type: integer format: int32 regex: type: string description: Represents a string validator securitySchemes: securityScheme: scheme: bearer type: http