> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Crear un método de autenticación

> Inicia la inscripción de un método de autenticación compatible.

export const Scopes = ({scopes = []}) => {
  return <div>
      <div class="api-section-heading flex flex-col gap-y-4 w-full">
        <div class="flex items-baseline border-b pb-2.5 border-gray-100 dark:border-gray-800 w-full">
          <h4 class="api-section-heading-title flex-1 mb-0">Scopes</h4>
          <div class="flex items-center"></div>
        </div>
      </div>
      <div class="mt-4">
        <div class="space-y-4 whitespace-normal prose prose-sm prose-gray dark:prose-invert overflow-wrap-anywhere [&_*]:overflow-wrap-anywhere">
          <p class="whitespace-pre-line text-xs">
            {"Los alcances definen los permisos y los niveles de acceso para las solicitudes a la API y los tokens de autenticación."}
          </p>
        </div>
      </div>
      <div class="flex font-mono text-sm group/param-head param-head break-all relative mt-6" id="scopes-scopes">
        <div class="flex-1 flex flex-col content-start py-0.5 mr-5">
          <div class="flex items-center flex-wrap gap-2">
            <div class="absolute -top-1.5">
              <a href="#scopes-scopes" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 focus:opacity-100 focus:outline-0 py-2 [.expandable-content_&]:-ml-[2.1rem] group/link" aria-label="Ir al encabezado">
                ​
                <div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light">
                  <svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512">
                    <path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path>
                  </svg>
                </div>
              </a>
            </div>
            {scopes.map((scope, index) => {
    return <span class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all" style={{
      lineHeight: "1rem",
      fontSize: "0.75rem",
      fontFamily: 'var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace'
    }} data-component-part="field-info-pill" key={index}>
                  {scope}
                </span>;
  })}
          </div>
        </div>
      </div>
    </div>;
};

export const ApiReleaseLifecycle = ({releaseLifecycle = "GA"}) => {
  const lifecycleMap = {
    ea: "Acceso Anticipado",
    ga: "Disponible Generalmente",
    deprecated: "Obsoleto",
    planned: "Planificado",
    beta: "Beta"
  };
  const LIFECYCLE_THEMES = {
    info: {
      light: {
        bg: "lab(91.896% .077188 -6.94053)",
        text: "lab(36.091% 25.9241 -68.0384)"
      },
      dark: {
        bg: "lab(16.0426% 6.71726 -27.2409)",
        text: "lab(72.6029% 4.08953 -41.9669)"
      }
    },
    secondary: {
      light: {
        bg: "lab(90.8548% 11.3355 8.01476)",
        text: "lab(47.5286% 56.4238 43.4706)"
      },
      dark: {
        bg: "lab(16.3609% 37.191 25.6346)",
        text: "lab(71.881% 41.5 29.4839)"
      }
    },
    danger: {
      light: {
        bg: "lab(94.7916% -.0000298023 0)",
        text: "lab(54.3656% 0 -.0000119209)"
      },
      dark: {
        bg: "lab(13.232% 0 0)",
        text: "lab(51.6164% 0 0)"
      }
    }
  };
  const LIFECYCLE_THEME_MAP = {
    ea: "info",
    ga: "info",
    beta: "info",
    deprecated: "secondary",
    planned: "danger"
  };
  const lifecycle = releaseLifecycle.toLocaleLowerCase();
  const lifecycleText = lifecycleMap[lifecycle];
  if (!lifecycleText) {
    return null;
  }
  const theme = LIFECYCLE_THEMES[LIFECYCLE_THEME_MAP[lifecycle]];
  return <div>
      <div className="api-section-heading flex flex-col gap-y-4 w-full">
        <div className="flex items-baseline border-b pb-2.5 border-gray-100 dark:border-gray-800 w-full">
          <h4 className="api-section-heading-title flex-1 mb-0">Ciclo de Vida de la Versión</h4>
        </div>
      </div>
      <div className="flex font-mono text-sm group/param-head param-head break-all relative mt-2.5" id="releaselifecycle-lifecycle">
        <div className="flex-1 flex flex-col content-start py-0.5 mr-5">
          <div className="flex items-center flex-wrap gap-2">
            <div className="absolute -top-1.5">
              <a href="#releaselifecycle-lifecycle" className="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 focus:opacity-100 focus:outline-0 py-2 [.expandable-content_&]:-ml-[2.1rem] group/link" aria-label="Navegar al encabezado">
                <div className="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light">
                  <svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512">
                    <path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path>
                  </svg>
                </div>
              </a>
            </div>
            <span className="inline-flex items-center w-fit font-medium gap-1 py-0.5 px-2 rounded-md" style={{
    lineHeight: "1rem",
    fontSize: "0.75rem",
    fontFamily: 'var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',
    backgroundColor: `light-dark(${theme.light.bg}, ${theme.dark.bg})`,
    color: `light-dark(${theme.light.text}, ${theme.dark.text})`,
    borderColor: `light-dark(color-mix(in oklab, ${theme.light.text} 25%, transparent), color-mix(in oklab, ${theme.dark.text} 25%, transparent))`
  }}>
              {lifecycleText}
            </span>
          </div>
        </div>
      </div>
    </div>;
};

<ApiReleaseLifecycle releaseLifecycle="GA" />

<Scopes scopes={["create:me:authentication_methods"]} />


## OpenAPI

````yaml es/docs/oas/myaccount/myaccount-api-oas.json POST /authentication-methods
openapi: 3.1.0
info:
  description: >-
    La API My Account de Auth0 proporciona un conjunto específico de endpoints
    para que los usuarios administren la información de su propia cuenta. Los
    clientes pueden usar estas APIs para crear experiencias de autoservicio en
    sus aplicaciones o añadir progresivamente datos a una cuenta de usuario.


    La API My Account funciona en el contexto del usuario que ha iniciado sesión
    y puede usarse directamente en aplicaciones de cara al usuario.


    :::tip Uso del dominio de Auth0 frente al dominio personalizado


    La API My Account admite el uso de su dominio canónico de Auth0 o de su
    dominio personalizado, pero debe usar el mismo durante todo el proceso, lo
    que incluye:


    - Obtener un token de acceso

    - Establecer el valor de audiencia

    - Llamar al endpoint de la API My Account


    Para obtener más información, consulte [Custom
    Domains](https://auth0.com/docs/customize/custom-domains).


    :::


    ## Activar la API My Account


    Puede activar la API My Account para su inquilino en el Auth0 Dashboard:


    1. Vaya a Authentication > APIs.

    2. Busque el banner de la API MyAccount.

    3. Seleccione Activate.


    ![](https://images.ctfassets.net/cdy7uua7fh8z/DGkDQNIHcegN8vtQyEvF3/a2e98b06867701a66fa1f1b3df1c996b/My_Account_API_-_Activate.png)


    De forma predeterminada, la API My Account se crea con las siguientes
    políticas de acceso a la API de la aplicación:


    `require_client_grant` para flujos de usuario


    `deny_all` para flujos de cliente (de máquina a máquina)


    Para que una aplicación acceda a la API My Account en nombre del usuario,
    debe crear explícitamente un client grant para esa aplicación, lo que le
    permite definir los alcances máximos que la aplicación puede solicitar. Como
    alternativa, puede cambiar la política de los flujos de acceso de usuario a
    allow_all, lo que permite que cualquier aplicación de su inquilino solicite
    cualquier alcance de la API My Account.


    Como la API My Account expone información y operaciones sensibles, Auth0 no
    recomienda usar allow_all para los flujos de acceso de usuario. Debe seguir
    el principio de privilegio mínimo con la API My Account para garantizar que
    las aplicaciones solo obtengan acceso a lo que realmente necesitan y así
    minimizar los posibles riesgos de seguridad.


    Los permisos finales concedidos a la aplicación estarán determinados por la
    intersección entre los alcances permitidos por la política de acceso a la
    API de la aplicación, los permisos de control de acceso basado en roles
    (RBAC) asignados al usuario final y cualquier consentimiento otorgado por el
    usuario (si corresponde).


    :::info Flujos admitidos


    No puede actualizar la política de API de la aplicación para el acceso de
    cliente a la API My Account, lo que significa que no puede acceder a la API
    My Account mediante el flujo de credenciales del cliente.


    :::


    Para obtener más información sobre cómo administrar las políticas de acceso
    a la API de la aplicación y los client grants asociados, consulte
    [Application Access to APIs: Client
    Grants](https://auth0.com/docs/get-started/applications/application-access-to-apis-client-grants).


    ## Obtener un token de acceso


    Puede obtener un token de acceso para la API My Account de la misma manera
    que obtendría un token de acceso para una de sus propias APIs.


    :::info &nbsp

    Si va a permitir que la API My Account realice operaciones sensibles (como
    registrar un método de autenticación), le recomendamos encarecidamente que
    use [autenticación
    escalonada](https://auth0.com/docs/secure/multi-factor-authentication/step-up-authentication)
    para aplicar políticas de seguridad adicionales mediante [autenticación
    multifactor
    (MFA)](https://auth0.com/docs/secure/multi-factor-authentication).

    :::


    Si usa Universal Login, consulte los siguientes artículos:


    - [Llame a su API mediante el Flujo de código de
    autorización](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow/call-your-api-using-the-authorization-code-flow)

    - [Llame a su API mediante el Flujo de código de autorización con
    PKCE](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce/call-your-api-using-the-authorization-code-flow-with-pkce)


    Si usa inicio de sesión integrado, consulte los siguientes artículos:


    - [Llame a su API mediante el flujo de contraseña del propietario del
    recurso](https://auth0.com/docs/get-started/authentication-and-authorization-flow/resource-owner-password-flow/call-your-api-using-resource-owner-password-flow)

    - [Flujo Login con la API nativa de claves de
    acceso](https://auth0.com/docs/native-passkeys-api#login-flow)


    ## Ejemplos


    ### Universal Login con flujo de código de autorización


    **Paso 1: Solicitar código de autorización**


    ```

    curl --request GET \
      --url 'https://{yourDomain}/authorize?response_type=code&client_id={yourClientId}&redirect_uri=%7ByourRedirectUri%7D&scope=create%3Ame%3Aauthentication_methods&offline_access=&audience=https%3A%2F%2F{yourDomain}%2Fme%2F'
    ```


    **Paso 2: Intercambiar el código por un token de acceso**


    ```

    curl --request POST \
      --url 'https://{yourDomain}/oauth/token' \
      --header 'content-type: application/json' \
      --data '{"grant_type": "authorization_code","client_id": "{yourClientId}","client_secret": "{yourClientSecret}","code": "{yourAuthorizationCode}","redirect_uri": "{yourRedirectUri}","audience": "{yourAudience}","scope": "create:me:authentication_methods","offline_access": ""}'
    ```


    ### Inicio de sesión integrado con claves de acceso nativas


    **Paso 1: Solicitar desafío de inicio de sesión**


    ```

    curl --request POST \
      --url 'https://{yourDomain}/passkey/challenge' \
      --header 'content-type: application/json' \
      --data '{"client_id": "{yourClientId}"}'
    ```


    **Paso 2: Autenticar a un usuario existente**


    ```

    curl --request POST \
      --url 'https://{yourDomain}/oauth/token' \
      --header 'content-type: application/json' \
      --data '{  "grant_type": "urn:okta:params:oauth:grant-type:webauthn",  "client_id": "{yourClientId}",  "scope": "create:me:authentication_methods offline_access",  "audience": "https://{yourDomain}/me/",  "auth_session": "{sessionIdFromTheFirstRequest}",  "authn_response": "{authenticatorResponse}"}'
    ```
  title: My Account
  version: '1.0'
servers:
  - url: https://{host}/me/v1
    variables:
      host:
        default: auth0.auth0.com
        description: Nombre de host personalizado o canónico
security: []
tags:
  - description: Factores
    name: factors
    x-displayName: Factors
  - description: Cuentas conectadas
    name: connected-accounts
    x-displayName: Connected Accounts
  - description: Métodos de autenticación
    name: authentication-methods
    x-displayName: Authentication Methods
  - description: Consentimientos
    name: consents
    x-displayName: Consents
paths:
  /authentication-methods:
    post:
      tags:
        - authentication-methods
      summary: Inicie la inscripción de un método de autenticación compatible.
      description: Inicia la inscripción de un método de autenticación compatible.
      operationId: createAuthenticationMethod
      requestBody:
        content:
          application/json:
            examples:
              email:
                summary: Inscribir una dirección de correo electrónico para OTP
                value:
                  email: user@example.com
                  type: email
              passkey:
                summary: Inscribir una clave de acceso
                value:
                  type: passkey
              password:
                summary: Inscribir una credencial de contraseña
                value:
                  type: password
              phone:
                summary: Inscribir un número de teléfono para OTP por SMS/voz
                value:
                  phone_number: '+15551234567'
                  preferred_authentication_method: sms
                  type: phone
              push-notification:
                summary: Inscribir un autenticador de notificaciones push
                value:
                  type: push-notification
              recovery-code:
                summary: Generar un código de recuperación
                value:
                  type: recovery-code
              totp:
                summary: Inscribir una aplicación de autenticación TOTP
                value:
                  type: totp
            schema:
              $ref: '#/components/schemas/CreateAuthenticationMethodRequestContent'
      responses:
        '202':
          content:
            application/json:
              examples:
                email:
                  summary: Se inició la inscripción por correo electrónico
                  value:
                    auth_session: Fe26.2**05c400ed...
                    id: email|dev_XXXXXXXXXXXXXXXX
                passkey:
                  summary: >-
                    Se inició la inscripción de clave de acceso — incluye
                    opciones de creación de WebAuthn
                  value:
                    auth_session: Fe26.2**05c400ed...
                    authn_params_public_key:
                      authenticatorSelection:
                        residentKey: required
                        userVerification: preferred
                      challenge: dGVzdC1jaGFsbGVuZ2U
                      pubKeyCredParams:
                        - alg: -7
                          type: public-key
                        - alg: -257
                          type: public-key
                      rp:
                        id: example.auth0.com
                        name: My Application
                      timeout: 60000
                      user:
                        displayName: User
                        id: YXV0aDB8NTA3ZjFmNzdiY2Y4NmNkNzk5NDM5MDEx
                        name: user@example.com
                password:
                  summary: >-
                    Se inició la inscripción de contraseña — incluye la política
                    de contraseñas
                  value:
                    auth_session: Fe26.2**05c400ed...
                    id: password|new
                    policy:
                      complexity:
                        character_type_rule: three_of_four
                        character_types:
                          - lowercase
                          - uppercase
                          - number
                          - special
                        identical_characters: block
                        max_length_exceeded: truncate
                        min_length: 8
                        sequential_characters: block
                      dictionary:
                        active: true
                        default: en_10k
                      history:
                        active: true
                        size: 5
                      profile_data:
                        active: true
                        blocked_fields:
                          - name
                          - email
                phone:
                  summary: Se inició la inscripción de teléfono
                  value:
                    auth_session: Fe26.2**05c400ed...
                    id: phone|dev_XXXXXXXXXXXXXXXX
                push-notification:
                  summary: >-
                    Se inició la inscripción de notificaciones push — incluye
                    datos del código QR
                  value:
                    auth_session: Fe26.2**05c400ed...
                    barcode_uri: >-
                      otpauth://totp/my-tenant:auth0%7C507f1f77bcf86cd799439011?secret=JBSWY3DPEHPK3PXP&issuer=my-tenant&algorithm=SHA1&digits=6&period=30
                    id: push-notification|dev_XXXXXXXXXXXXXXXX
                recovery-code:
                  summary: Se generó un código de recuperación
                  value:
                    auth_session: Fe26.2**05c400ed...
                    id: recovery-code|dev_XXXXXXXXXXXXXXXX
                    recovery_code: ABCDEFGHIJKLMNOPQRSTUVWX
                totp:
                  summary: >-
                    Se inició la inscripción de TOTP — incluye datos del código
                    QR
                  value:
                    auth_session: Fe26.2**05c400ed...
                    barcode_uri: >-
                      otpauth://totp/my-tenant:auth0%7C507f1f77bcf86cd799439011?secret=JBSWY3DPEHPK3PXP&issuer=my-tenant&algorithm=SHA1&digits=6&period=30
                    id: totp|dev_XXXXXXXXXXXXXXXX
                    manual_input_code: JBSWY3DPEHPK3PXP
              schema:
                $ref: '#/components/schemas/CreateAuthenticationMethodResponseContent'
          description: Inscripción iniciada
          headers:
            Location:
              $ref: '#/components/headers/LocationHeader'
            x-ratelimit-limit:
              $ref: '#/components/headers/XRateLimitLimitHeader'
            x-ratelimit-remaining:
              $ref: '#/components/headers/XRateLimitRemainingHeader'
            x-ratelimit-reset:
              $ref: '#/components/headers/XRateLimitResetHeader'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - Bearer-DPoP:
            - create:me:authentication_methods
      x-codeSamples: []
components:
  schemas:
    CreateAuthenticationMethodRequestContent:
      description: Contenido de la solicitud para crear un método de autenticación
      discriminator:
        mapping:
          email:
            $ref: '#/components/schemas/CreateEmailAuthenticationMethod'
          passkey:
            $ref: '#/components/schemas/CreatePasskeyAuthenticationMethod'
          password:
            $ref: '#/components/schemas/CreatePasswordAuthenticationMethod'
          phone:
            $ref: '#/components/schemas/CreatePhoneAuthenticationMethod'
          push-notification:
            $ref: '#/components/schemas/CreatePushNotificationAuthenticationMethod'
          recovery-code:
            $ref: '#/components/schemas/CreateRecoveryCodeAuthenticationMethod'
          totp:
            $ref: '#/components/schemas/CreateTotpAuthenticationMethod'
        propertyName: type
        x-openapi-typescript-ignore: true
      oneOf:
        - $ref: '#/components/schemas/CreatePasskeyAuthenticationMethod'
          title: passkey
        - $ref: '#/components/schemas/CreateTotpAuthenticationMethod'
          title: totp
        - $ref: '#/components/schemas/CreatePushNotificationAuthenticationMethod'
          title: push-notification
        - $ref: '#/components/schemas/CreateRecoveryCodeAuthenticationMethod'
          title: recovery-code
        - $ref: '#/components/schemas/CreateEmailAuthenticationMethod'
          title: email
        - $ref: '#/components/schemas/CreatePhoneAuthenticationMethod'
          title: phone
        - $ref: '#/components/schemas/CreatePasswordAuthenticationMethod'
          title: password
      type: object
    CreateAuthenticationMethodResponseContent:
      anyOf:
        - $ref: '#/components/schemas/PasskeyCreationResponse'
        - $ref: '#/components/schemas/WebAuthnCreationResponse'
        - $ref: '#/components/schemas/MfaBaseCreationResponse'
          title: Email/Phone enrollment information
        - $ref: '#/components/schemas/QrCodeCreationResponse'
        - $ref: '#/components/schemas/RecoveryCodeCreationResponse'
        - $ref: '#/components/schemas/PasswordCreationResponse'
    CreateEmailAuthenticationMethod:
      additionalProperties: false
      properties:
        email:
          description: >-
            La dirección de correo electrónico que se usará para enviar códigos
            de un solo uso.
          type: string
        type:
          const: email
          default: email
          description: Tipo de método de autenticación (factor)
          type: string
      required:
        - type
        - email
      title: Email enrollment payload
      type: object
    CreatePasskeyAuthenticationMethod:
      allOf:
        - $ref: '#/components/schemas/IdentityAuthenticationMethodBase'
        - properties:
            type:
              const: passkey
              default: passkey
              description: Tipo de método de autenticación (factor)
              type: string
          required:
            - type
          type: object
      title: Passkey enrollment payload
    CreatePasswordAuthenticationMethod:
      allOf:
        - $ref: '#/components/schemas/IdentityAuthenticationMethodBase'
        - additionalProperties: false
          properties:
            connection: true
            identity_user_id: true
            type:
              const: password
              default: password
              description: Tipo de método de autenticación (factor)
              type: string
          required:
            - type
          type: object
      title: Password authentication method creation payload
    CreatePhoneAuthenticationMethod:
      additionalProperties: false
      properties:
        phone_number:
          description: >-
            El número de teléfono de destino que se usa para enviar códigos de
            verificación por SMS y llamada de voz.
          type: string
        preferred_authentication_method:
          $ref: '#/components/schemas/PhoneAuthenticationMethodEnum'
          description: El método de comunicación preferido.
        type:
          const: phone
          default: phone
          description: Tipo de método de autenticación (factor)
          type: string
      required:
        - type
        - phone_number
      title: Phone enrollment payload
      type: object
    CreatePushNotificationAuthenticationMethod:
      additionalProperties: false
      properties:
        type:
          const: push-notification
          default: push-notification
          description: Tipo de método de autenticación (factor)
          type: string
      required:
        - type
      title: Push Notification enrollment payload
      type: object
    CreateRecoveryCodeAuthenticationMethod:
      additionalProperties: false
      properties:
        type:
          const: recovery-code
          default: recovery-code
          description: Tipo de método de autenticación (factor)
          type: string
      required:
        - type
      title: Recovery Code enrollment payload
      type: object
    CreateTotpAuthenticationMethod:
      additionalProperties: false
      properties:
        type:
          const: totp
          default: totp
          description: Tipo de método de autenticación (factor)
          type: string
      required:
        - type
      title: TOTP enrollment payload
      type: object
    PasskeyCreationResponse:
      properties:
        auth_session:
          description: El identificador único de sesión para la inscripción.
          type: string
        authn_params_public_key:
          $ref: '#/components/schemas/PublicKeyCredentialCreationOptions'
      required:
        - auth_session
        - authn_params_public_key
      title: Passkey enrollment information
      type: object
    WebAuthnCreationResponse:
      allOf:
        - $ref: '#/components/schemas/MfaBaseCreationResponse'
        - properties:
            authn_params_public_key:
              $ref: '#/components/schemas/PublicKeyCredentialCreationOptions'
          required:
            - authn_params_public_key
          title: WebAuthn enrollment information
          type: object
    MfaBaseCreationResponse:
      properties:
        auth_session:
          description: El identificador único de la sesión de inscripción.
          type: string
        id:
          description: El identificador único del método de autenticación.
          type: string
      required:
        - id
        - auth_session
      type: object
    QrCodeCreationResponse:
      allOf:
        - $ref: '#/components/schemas/MfaBaseCreationResponse'
        - properties:
            barcode_uri:
              description: El URI del código QR que debe escanear el autenticador.
              type: string
            manual_input_code:
              description: >-
                El code de entrada manual del autenticador en caso de que no se
                puedan usar códigos QR.
              type: string
          required:
            - barcode_uri
          title: TOTP/Push enrollment information
          type: object
    RecoveryCodeCreationResponse:
      allOf:
        - $ref: '#/components/schemas/MfaBaseCreationResponse'
        - properties:
            recovery_code:
              description: El valor del código de recuperación.
              type: string
          required:
            - recovery_code
          title: Recovery Code enrollment information
          type: object
    PasswordCreationResponse:
      properties:
        auth_session:
          description: >-
            El identificador único de la sesión de la operación de cambio de
            contraseña.
          type: string
        id:
          description: El identificador único del método de autenticación por contraseña.
          type: string
        policy:
          $ref: '#/components/schemas/PasswordAuthenticationMethodPolicy'
      required:
        - id
        - policy
        - auth_session
      title: Password enrollment information
      type: object
    ErrorResponse:
      additionalProperties: false
      properties:
        detail:
          type: string
        status:
          type: number
        title:
          type: string
        type:
          type: string
        validation_errors:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
      required:
        - type
        - status
        - title
        - detail
      type: object
    IdentityAuthenticationMethodBase:
      properties:
        connection:
          $ref: '#/components/schemas/Connection'
        identity_user_id:
          $ref: '#/components/schemas/IdentityUserId'
      type: object
    PhoneAuthenticationMethodEnum:
      description: Método de autenticación preferido para la autenticación por teléfono
      enum:
        - sms
        - voice
      type: string
    PublicKeyCredentialCreationOptions:
      properties:
        authenticatorSelection:
          $ref: '#/components/schemas/AuthenticatorSelection'
        challenge:
          type: string
        pubKeyCredParams:
          example:
            - alg: -8
              type: public-key
            - alg: -7
              type: public-key
            - alg: -257
              type: public-key
          items:
            $ref: '#/components/schemas/PublicKeyCredentialParameter'
          type: array
        rp:
          $ref: '#/components/schemas/RelyingParty'
        timeout:
          example: 60000
          type: number
        user:
          $ref: '#/components/schemas/User'
      required:
        - challenge
        - pubKeyCredParams
        - rp
        - user
      type: object
    PasswordAuthenticationMethodPolicy:
      additionalProperties: false
      description: >-
        La configuración de la política de contraseñas de la conexión en formato
        flexible.
      properties:
        complexity:
          $ref: '#/components/schemas/PasswordComplexityPolicy'
        dictionary:
          $ref: '#/components/schemas/PasswordDictionaryPolicy'
        history:
          $ref: '#/components/schemas/PasswordHistoryPolicy'
        profile_data:
          $ref: '#/components/schemas/PasswordProfileDataPolicy'
      required:
        - complexity
        - profile_data
        - history
        - dictionary
      type: object
    ValidationError:
      additionalProperties: false
      properties:
        detail:
          type: string
        field:
          type: string
        pointer:
          type: string
        source:
          type: string
      required:
        - detail
      type: object
    Connection:
      description: Nombre de la conexión de base de datos
      maxLength: 128
      minLength: 1
      pattern: ^[a-zA-Z0-9-]+$
      type: string
    IdentityUserId:
      description: ID de usuario del proveedor de identidad
      maxLength: 255
      minLength: 1
      pattern: ^\S+$
      type: string
    AuthenticatorSelection:
      additionalProperties: false
      properties:
        residentKey:
          $ref: '#/components/schemas/ResidentKeyEnum'
        userVerification:
          $ref: '#/components/schemas/UserVerificationEnum'
      type: object
    PublicKeyCredentialParameter:
      additionalProperties: false
      properties:
        alg:
          type: number
        type:
          $ref: '#/components/schemas/PublicKeyTypeEnum'
      required:
        - alg
        - type
      type: object
    RelyingParty:
      additionalProperties: false
      properties:
        id:
          type: string
        name:
          type: string
      required:
        - name
      type: object
    User:
      additionalProperties: false
      properties:
        displayName:
          type: string
        id:
          type: string
        name:
          type: string
      required:
        - id
        - name
        - displayName
      type: object
    PasswordComplexityPolicy:
      additionalProperties: false
      description: Requisitos de complejidad de la contraseña
      properties:
        character_type_rule:
          $ref: '#/components/schemas/PasswordCharacterTypeRuleEnum'
        character_types:
          description: Tipos de caracteres obligatorios
          items:
            $ref: '#/components/schemas/PasswordCharacterTypeEnum'
          type: array
        identical_characters:
          $ref: '#/components/schemas/PasswordIdenticalCharactersEnum'
        max_length_exceeded:
          $ref: '#/components/schemas/PasswordMaxLengthExceededEnum'
        min_length:
          description: Longitud mínima de la contraseña
          type: integer
        sequential_characters:
          $ref: '#/components/schemas/PasswordSequentialCharactersEnum'
      required:
        - min_length
        - character_types
        - character_type_rule
        - identical_characters
        - sequential_characters
        - max_length_exceeded
      type: object
    PasswordDictionaryPolicy:
      additionalProperties: false
      description: >-
        Configuración de comprobación de diccionario para bloquear contraseñas
        débiles o prohibidas
      properties:
        active:
          description: Si la comprobación de diccionario está habilitada
          type: boolean
        default:
          $ref: '#/components/schemas/PasswordDictionaryDefaultEnum'
      required:
        - active
        - default
      type: object
    PasswordHistoryPolicy:
      additionalProperties: false
      description: Configuración de aplicación del historial de contraseñas
      properties:
        active:
          description: Si se aplica el historial de contraseñas
          type: boolean
        size:
          description: >-
            Número de contraseñas anteriores que se recuerdan para impedir su
            reutilización
          type: integer
      required:
        - active
        - size
      type: object
    PasswordProfileDataPolicy:
      additionalProperties: false
      description: Configuración para bloquear información personal en las contraseñas
      properties:
        active:
          description: >-
            Si se bloquea información personal (nombre, correo electrónico,
            etc.) en las contraseñas
          type: boolean
        blocked_fields:
          description: >-
            Campos del perfil de usuario que se deben bloquear en las
            contraseñas (p. ej., 'name', 'email', 'user_metadata.first')
          items:
            type: string
          type: array
      required:
        - active
        - blocked_fields
      type: object
    ResidentKeyEnum:
      description: El requisito de clave residente
      enum:
        - required
      type: string
    UserVerificationEnum:
      description: El requisito de verificación del usuario
      enum:
        - required
        - preferred
        - discouraged
      type: string
    PublicKeyTypeEnum:
      description: El tipo de credencial de clave pública
      enum:
        - public-key
      type: string
    PasswordCharacterTypeRuleEnum:
      description: >-
        Cómo se aplican los tipos de caracteres en la complejidad de la
        contraseña
      enum:
        - all
        - three_of_four
      type: string
    PasswordCharacterTypeEnum:
      description: Tipo de carácter para los requisitos de complejidad de la contraseña
      enum:
        - uppercase
        - lowercase
        - number
        - special
      type: string
    PasswordIdenticalCharactersEnum:
      description: Si se permiten 3 o más caracteres idénticos consecutivos
      enum:
        - allow
        - block
      type: string
    PasswordMaxLengthExceededEnum:
      description: Comportamiento cuando la contraseña supera la longitud máxima
      enum:
        - truncate
        - error
      type: string
    PasswordSequentialCharactersEnum:
      description: Si se permiten caracteres secuenciales
      enum:
        - allow
        - block
      type: string
    PasswordDictionaryDefaultEnum:
      description: >-
        Diccionario predeterminado que se usará para comprobar contraseñas
        débiles
      enum:
        - en_10k
        - en_100k
      type: string
  headers:
    LocationHeader:
      description: URL del recurso del método de autenticación.
      examples:
        create:
          summary: >-
            URL de ubicación para un método de autenticación con clave de acceso
            recién creado, pero no verificado
          value: https://auth0.auth0.com/me/v1/authentication-methods/passkey%7Cnew
        verify:
          summary: >-
            URL de ubicación para un método de autenticación con clave de acceso
            recién verificado
          value: >-
            https://auth0.auth0.com/me/v1/authentication-methods/passkey%7Cdev_XXXXXXXXXXXXXXXX
      required: true
      schema:
        format: uri
        type: string
    XRateLimitLimitHeader:
      description: El número máximo de solicitudes permitido durante la ventana del límite
      required: true
      schema:
        type: number
    XRateLimitRemainingHeader:
      description: >-
        El número de solicitudes restantes en la ventana actual antes de que se
        rechacen las solicitudes
      required: true
      schema:
        type: number
    XRateLimitResetHeader:
      description: >-
        La hora prevista (como marca de tiempo UNIX, en segundos) en que se
        repondrá el bucket
      required: true
      schema:
        type: number
    RetryAfterHeader:
      description: >-
        La cantidad de segundos que el cliente debe esperar antes de realizar
        una nueva solicitud
      required: true
      schema:
        type: number
    XAuth0ErrorKindHeader:
      description: >-
        Un indicador de que el límite de tasa superado es un límite global (por
        inquilino).
      schema:
        const: global-rate-limit
        type: string
  responses:
    BadRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Entrada no válida según el esquema.
    Unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: No autorizado.
    Forbidden:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Prohibido.
    UnsupportedMediaType:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Tipo de contenido no compatible.
    TooManyRequests:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Demasiadas solicitudes.
      headers:
        retry-after:
          $ref: '#/components/headers/RetryAfterHeader'
        x-auth0-error-kind:
          $ref: '#/components/headers/XAuth0ErrorKindHeader'
        x-ratelimit-limit:
          $ref: '#/components/headers/XRateLimitLimitHeader'
        x-ratelimit-remaining:
          $ref: '#/components/headers/XRateLimitRemainingHeader'
        x-ratelimit-reset:
          $ref: '#/components/headers/XRateLimitResetHeader'
  securitySchemes:
    Bearer-DPoP:
      description: >-
        Los tokens Bearer y DPoP son compatibles según la configuración de la
        API
      scheme: bearer
      type: http

````