---
title: Envía a un cliente final un enlace al Verification Portal
url: https://platform.claude.com/docs/es/manage-claude/user-profiles-verification-portal
description: Crea un enlace de inscripción para un perfil de usuario, conoce lo que hace tu cliente final en el Verification Portal y comprueba después qué programas se aplican al perfil.
---

Anthropic gestiona programas a los que una organización puede postularse en el Verification Portal. Para que las aprobaciones de un cliente final se apliquen cuando usa Claude a través de tu plataforma, el cliente final vincula su perfil de usuario a su propia organización de Anthropic en el portal. Tú inicias el proceso: crea un "enrollment link" (enlace de inscripción) para el perfil y entrégaselo al cliente final.

Un "user profile" (perfil de usuario) le indica a Anthropic para cuál de tus clientes finales es cada solicitud de API. Creas uno para cada cliente final y envías su ID `uprof_` en cada solicitud que haces en su nombre. El perfil debe existir antes de que puedas crear un enlace para él. Para crear uno, consulta [Perfiles de usuario para la atribución a clientes finales](https://platform.claude.com/docs/es/manage-claude/user-profiles).

Puedes omitir esta página si solo necesitas la atribución, o si la creación de enlaces de inscripción no está habilitada para tu organización.

## Crea el enlace

Para crear un enlace de inscripción para un perfil, llama a `POST /v1/user_profiles/{id}/action_urls` con el ID del perfil en la ruta. En el cuerpo de la solicitud, establece `action.type` en `enroll_end_user`.

La llamada devuelve un `404` si la creación de enlaces de inscripción no está habilitada para tu organización. Es el mismo código de estado que para un ID de perfil que no puede encontrar, así que verifica primero el ID.

<CodeGroup>
  ```bash cURL
  curl https://api.anthropic.com/v1/user_profiles/uprof_011CZkZCu8hGbp5mYRQgUmz9/action_urls \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -H "content-type: application/json" \
    -d '{"action": {"type": "enroll_end_user"}}'
  ```

  ```bash CLI
  ant user-profiles:action-urls create \
    --user-profile-id uprof_011CZkZCu8hGbp5mYRQgUmz9 \
    --action '{type: enroll_end_user}'
  ```

  ```python Python
  client = anthropic.Anthropic()

  action_url = client.user_profiles.action_urls.create(
      "uprof_011CZkZCu8hGbp5mYRQgUmz9",
      action={"type": "enroll_end_user"},
  )

  print(action_url.url)
  ```

  ```typescript TypeScript
  const client = new Anthropic();

  const actionURL = await client.userProfiles.actionURLs.create(
    "uprof_011CZkZCu8hGbp5mYRQgUmz9",
    { action: { type: "enroll_end_user" } }
  );

  console.log(actionURL.url);
  ```

  ```csharp C#
  using Anthropic.Models.UserProfiles.ActionUrls;

  AnthropicClient client = new();

  var actionUrl = await client.UserProfiles.ActionUrls.Create(
      "uprof_011CZkZCu8hGbp5mYRQgUmz9",
      new() { Action = new UserProfileEnrollEndUserAction() }
  );

  Console.WriteLine(actionUrl.Url);
  ```

  ```go Go
  client := anthropic.NewClient()

  actionURL, err := client.UserProfiles.ActionURLs.New(
  	context.Background(),
  	"uprof_011CZkZCu8hGbp5mYRQgUmz9",
  	anthropic.UserProfileActionURLNewParams{
  		Action: anthropic.UserProfileActionUnionParam{
  			OfEnrollEndUser: &anthropic.UserProfileEnrollEndUserActionParam{},
  		},
  	},
  )
  if err != nil {
  	log.Fatal(err)
  }

  fmt.Println(actionURL.URL)
  ```

  ```java Java
  import com.anthropic.models.userprofiles.actionurls.ActionUrlCreateParams;
  import com.anthropic.models.userprofiles.actionurls.UserProfileEnrollEndUserAction;

  void main() {
      AnthropicClient client = AnthropicOkHttpClient.fromEnv();

      var params = ActionUrlCreateParams.builder()
          .userProfileId("uprof_011CZkZCu8hGbp5mYRQgUmz9")
          .action(UserProfileEnrollEndUserAction.builder().build())
          .build();
      var actionUrl = client.userProfiles().actionUrls().create(params);

      IO.println(actionUrl.url());
  }
  ```

  ```php PHP
  $client = new Client();

  $actionURL = $client->userProfiles->actionURLs->create(
      'uprof_011CZkZCu8hGbp5mYRQgUmz9',
      action: ['type' => 'enroll_end_user'],
  );

  echo $actionURL->url, PHP_EOL;
  ```

  ```ruby Ruby
  client = Anthropic::Client.new

  action_url = client.user_profiles.action_urls.create(
    "uprof_011CZkZCu8hGbp5mYRQgUmz9",
    action: { type: :enroll_end_user }
  )

  puts action_url.url
  ```
</CodeGroup>

La respuesta contiene el enlace y el momento en que deja de funcionar:

```json
{
  "type": "user_profile_action_url",
  "url": "https://portal.anthropic.com/enroll?enrollment_token=...",
  "expires_at": "2026-03-15T11:00:00Z"
}
```

El enlace funciona hasta el momento indicado en `expires_at`, aproximadamente una hora después de crearlo. Créalo cuando el cliente final lo solicite, por ejemplo cuando haga clic en un botón de tu producto, no con antelación en un correo electrónico que podría leer más tarde. Puede abrir el enlace más de una vez hasta que caduque. Si ha caducado, crea uno nuevo: cada llamada devuelve un enlace nuevo. Crear un enlace nuevo no cancela los anteriores.

Cualquier persona que tenga el enlace puede usarlo hasta que caduque, así que entrégalo solo al cliente final al que está destinado. Envíalo a un administrador o propietario de la organización de Anthropic del cliente final, porque solo un administrador o propietario puede vincular un perfil. No analices la URL ni construyas una tú mismo. Su formato puede cambiar.

Si usas Claude Platform on AWS, crea el enlace con `POST /v1/user_profiles/{id}/enrollment_url` en su lugar, y envía el encabezado `anthropic-beta: user-profiles-2026-08-18`. Esa solicitud no lleva cuerpo, y la respuesta tiene los mismos campos `url` y `expires_at`. En el SDK y la CLI, esa llamada está en el espacio de nombres beta: `client.beta.user_profiles.create_enrollment_url()` (typescript: `client.beta.userProfiles.createEnrollmentURL()`; csharp: `client.Beta.UserProfiles.CreateEnrollmentUrl()`; go: `client.Beta.UserProfiles.NewEnrollmentURL()`; java: `client.beta().userProfiles().createEnrollmentUrl()`; php: `$client->beta->userProfiles->createEnrollmentURL()`; cli: `ant beta:user-profiles create-enrollment-url`).

`POST /v1/user_profiles/{id}/action_urls` no está disponible en Microsoft Foundry.

## Lo que ve el cliente final

El enlace abre el Verification Portal de Anthropic en `portal.anthropic.com`. Después de que el cliente final inicia sesión, el portal le muestra el nombre de tu organización de Anthropic y el ID del perfil.

<Steps>
  <Step title="Inicia sesión">
    El cliente final inicia sesión con una cuenta de Anthropic: una que ya usa para la Claude Console o claude.ai, o una nueva que crea en este paso. El portal mantiene su propia sesión iniciada, separada de la Claude Console y de claude.ai. Si pertenece a más de una organización, elige la que desea vincular.

    <Frame caption="Antes de iniciar sesión, el cliente final ve por qué se le envió al portal.">
      ![Tarjeta del Verification Portal titulada Link your account to apply for trusted access, con un botón Continue to log in.](https://platform.claude.com/docs/images/user-profiles/portal-log-in.png)
    </Frame>
  </Step>

  <Step title="Vincula el perfil">
    El portal muestra una tarjeta titulada **Link your partner profile**. Indica tu plataforma, el ID del perfil, la organización del cliente final y cuándo caduca la invitación. El cliente final selecciona **Link profile** para aceptar o **Skip for now** para continuar al portal sin vincular.

    <Frame caption="El cliente final confirma a qué organización se vincula el perfil.">
      ![Tarjeta del Verification Portal titulada Link your partner profile, en la que se muestran el socio, el ID del perfil, la organización y la caducidad.](https://platform.claude.com/docs/images/user-profiles/portal-link-profile.png)
    </Frame>

    Solo un administrador o propietario de la organización puede vincular un perfil. Cualquier otra persona ve **Admin access needed** y no puede vincular el perfil. Puede cambiar a una organización en la que sea administrador o propietario. De lo contrario, indícale al cliente final que un administrador o propietario de su organización de Anthropic tiene que abrir el enlace.
  </Step>

  <Step title="Consulta la confirmación">
    El portal confirma con **Profile linked**. El cliente final permanece en el portal, donde puede ver los programas disponibles para su organización y postularse a ellos.

    <Frame caption="Después de vincular, el cliente final permanece en el portal.">
      ![Confirmación del Verification Portal titulada Profile linked, con los botones View programs y View linked accounts.](https://platform.claude.com/docs/images/user-profiles/portal-profile-linked.png)
    </Frame>
  </Step>
</Steps>

Si el enlace ha caducado para cuando un administrador o propietario lo abre e inicia sesión, el portal muestra **This invitation has expired** y le indica que te pida uno nuevo.

Un perfil se vincula a una sola organización. Si ya está vinculado a otra distinta, el portal indica **This partner profile is already linked to a different organization** y no lo vincula. Un administrador o propietario de la organización a la que está vinculado el perfil puede desvincularlo en **Linked accounts** en el portal. Después de eso, crea un enlace nuevo y envíaselo al cliente final.

## Después de que el cliente final vincula el perfil

El portal no devuelve al cliente final a tu producto, y Anthropic no te notifica. Indícale al cliente final en tu propia interfaz que regrese cuando haya terminado.

La vinculación no aprueba nada por sí misma. Conecta el perfil con la organización del cliente final, de modo que los programas para los que la organización está aprobada se apliquen a las solicitudes que llevan el ID del perfil. El perfil no tiene ningún campo que indique que está vinculado.

Para ver qué programas se aplican a un perfil, [recupera el perfil](https://platform.claude.com/docs/es/api/beta/user_profiles/retrieve) y lee `programs`. Tiene una clave para cada programa, como `cyber` y `efs`, y todos los perfiles tienen todas las claves. Cada clave es una de las siguientes:

* `null`: Anthropic no tiene ningún estado que informar para ese programa. Todas las claves son `null` si Anthropic no ha habilitado programas para tu organización.
* Un objeto: Su `status` es `active` cuando Anthropic ha aprobado al cliente final para el programa; de lo contrario, `pending` o `rejected`.

El cliente final puede ver el perfil vinculado en **Linked accounts** en el portal.

Si tu inferencia se ejecuta en Claude en Amazon Bedrock o Google Cloud, también tienes que vincular tus propias cuentas. Los programas se aplican a las solicitudes de una cuenta de AWS o de un proyecto de Google Cloud solo después de que vincules esa cuenta o ese proyecto a la organización de Anthropic que crea tus perfiles. Consulta [Atribuye solicitudes en Amazon Bedrock y Google Cloud](https://platform.claude.com/docs/es/manage-claude/user-profiles#attribute-requests-on-amazon-bedrock-and-google-cloud).

## Próximos pasos

Para conocer cada campo que contiene un perfil recuperado, consulta la referencia [Recuperar un perfil](https://platform.claude.com/docs/es/api/beta/user_profiles/retrieve).

Para crear perfiles, enviar sus ID en tus solicitudes y mantenerlos actualizados, consulta [Perfiles de usuario para la atribución a clientes finales](https://platform.claude.com/docs/es/manage-claude/user-profiles).
