# Próximas actualizaciones de requisitos

Más información sobre los cambios en la información de verificación obligatoria y cómo afecta esto a tu integración con Stripe.

Las actualizaciones de requisitos de esta guía hacen referencia a las propiedades de la API Accounts v1. Puedes ver las propiedades correspondientes de la API Accounts v2 en la [información de verificación solicitada](https://docs.stripe.com/connect/required-verification-information.md) seleccionando `v2` en el menú desplegable **API Accounts** y la actualización deseada en el menú desplegable **Actualización de requisitos**.

Las normativas sobre pagos ayudan a prevenir delitos como el blanqueo de capitales, el fraude y la evasión fiscal. Los reguladores financieros de todo el mundo aplican los [requisitos de Conocimiento del cliente (KYC)](https://support.stripe.com/questions/know-your-customer) para garantizar que Stripe recopila, verifica y mantiene la información de identidad de determinados tipos de empresas y de las personas que, en última instancia, las poseen, controlan o dirigen. Estos requisitos son actualizados con frecuencia por los reguladores de servicios financieros, las redes de tarjetas y otras instituciones financieras.

Esta guía ofrece un resumen de los próximos cambios y destaca los cambios más significativos. Para obtener una lista exhaustiva de requisitos, consulta la [información de verificación obligatoria](https://docs.stripe.com/connect/required-verification-information.md).

Si utilizas un flujo basado en API para hacer el onboarding de tus cuentas conectadas, debes actualizar tu integración para gestionar todos los cambios en los requisitos. Obtén más información sobre las [opciones onboarding de Connect](https://docs.stripe.com/connect/onboarding.md) y [la migración de tus flujos de Onboarding y corrección establecidos en API a flujos](https://docs.stripe.com/connect/migrate-from-api-onboarding.md) alojados o integrados en Stripe.

#### Programa - Europa

*Última actualización el 23 de febrero de 2026*

## Comprensión de los cambios en los requisitos de verificación

Para cumplir con las regulaciones de la Autoridad de Conducta Financiera del Reino Unido (FCA) y el Banco Central de Irlanda (CBI), Stripe está actualizando nuestros requisitos de verificación para Conocimiento del cliente (KYC) y los beneficiarios efectivos finales (UBO) y directores.

Si tus cuentas conectadas operan en alguno de los países enumerados, es posible que tengas que actualizar tu flujo de activación. Si no realizas las actualizaciones necesarias, se interrumpirá el acceso de tus cuentas conectadas a los pago y servicios financieros.

Para obtener más información sobre lo que está cambiando y por qué, consulta el [artículo de soporte Nuevos requisitos de cumplimiento](https://support.stripe.com/questions/europe-verification-requirement-updates-for-connected-accounts).

Los próximos cambios afectarán a las cuentas conectadas de los siguientes países:

- AT
- BE
- BG
- CH
- CY
- CZ
- DE
- DK
- EE
- ES
- FI
- FR
- GB
- GI
- GR
- HR
- HU
- IE
- IS
- IT
- LI
- LT
- LU
- LV
- MT
- NL
- NO
- PL
- PT
- RO
- SE
- SI
- SK

> #### Actualizaciones en curso
> 
> Stripe continuará actualizando la API para admitir la recopilación de estos requisitos hasta el 1 de abril de 2026.

## Elección de un enfoque de integración

Stripe recomienda usar onboarding alojado o integrado en Stripe para recopilar requisitos de verificación de empresas e identidad. Estas opciones requieren menos recursos de implementación y mantenimiento que usar la activación de API. La siguiente tabla describe las principales diferencias:

- [Onboarding alojado en Stripe](https://docs.stripe.com/connect/hosted-onboarding.md): (Recomendado) Envía cuentas a un flujo alojado en Stripe para enviar la información requerida.
- [Onboarding integrado](https://docs.stripe.com/connect/embedded-onboarding.md): (Recomendado) Integra componentes de onboarding proporcionados por Stripe que permiten a las cuentas enviar información directamente a Stripe desde tu aplicación.
- [Activación de API](https://docs.stripe.com/connect/api-onboarding.md): crea y gestiona un flujo de activación personalizado con las API de Stripe.

|  | **Activación alojada de Stripe** | **Activación integrada** | **Activación de API** |
| --- | --- | --- | --- |
| Opción recomendada para | Plataformas que quieren que Stripe gestione la activación | Plataformas que quieren un flujo de activación dentro de la aplicación con el logotipo de tu marca | Plataformas que necesitan control total y pueden crearlo y mantenerlo |
| Iniciativa inicial de implementación | 3 a 4 semanas de ingeniería | 3 a 4 semanas de ingeniería | 30-40 semanas de ingeniería |
| Esfuerzo continuo para abordar las actualizaciones de requisitos | Gestionada automáticamente por Stripe | Gestionada automáticamente por Stripe | Requiere una supervisión proactiva para los próximos cambios, además de recursos de ingeniería para actualizar el flujo de activación para cada cambio |
| Personalización | Interfaz alojada por Stripe con imágenes de marca de la plataforma | Componente altamente temático al que acceden las cuentas a través de la aplicación de la plataforma | La plataforma diseña, crea y mantiene la interfaz |
| Medidas para ser compatible con otros países | Gestionada automáticamente por Stripe | Gestionada automáticamente por Stripe | Requiere recursos de ingeniería para actualizar el flujo de activación de cada país adicional |

Obtén más información sobre las [opciones de onboarding de Connect](https://docs.stripe.com/connect/onboarding.md) y la [migración de tus flujos de Onboarding y corrección basados en API a flujos alojados o integrados](https://docs.stripe.com/connect/migrate-from-api-onboarding.md) en Stripe.

Los [cambios que realices en tu flujo de activación](https://docs.stripe.com/connect/handle-verification-updates.md#collect-future-requirements) dependen de tu configuración de activación. Además de actualizar tu flujo de activación, actualiza tu documentación interna y externa según sea necesario, y prepara a tus equipos de soporte para responder preguntas sobre las actualizaciones.

Si usas el onboarding alojado o integrado en Stripe, no es necesario que actualices tu integración para prepararte para estos nuevos requisitos. Sin embargo, puedes comunicar a tus cuentas conectadas que Stripe podría pedir información de identidad nueva o actualizada cuando cambien los requisitos.

## Resumen de la integración de API

Si decides no migrar a la activación alojada o integrada en Stripe, debes abordar las siguientes actualizaciones:

- [Verificación de conocimiento del cliente (KYC)](https://docs.stripe.com/connect/upcoming-requirements-updates.md#know-your-customer-\(kyc\)-verification)
- [Verificación de la relación entre beneficiario efectivo final (UBO) y director](https://docs.stripe.com/connect/upcoming-requirements-updates.md#ubo-director-verification)
- [Requisitos de registro empresas (KvK) en los Países Bajos](https://docs.stripe.com/connect/upcoming-requirements-updates.md#netherlands-business-registration-requirements)
- [Nuevos códigos de error](https://docs.stripe.com/connect/upcoming-requirements-updates.md#new-error-codes)

## Actualización de la línea temporal

La siguiente línea temporal explica los hitos clave para estos cambios. Asegúrate de actualizar y probar tu integración pronto para evitar cualquier problema cuando entren en vigor los nuevos requisitos.

| Fecha | Milestone | Descripción |
| --- | --- | --- |
| Octubre de 2025 | Inicio de la planificación de integración | Las actualizaciones iniciales de API están disponibles. Revisa esta guía y los cambios para empezar a planificar tus actualizaciones de integración. |
| Marzo, 2026 | Revisa las cuentas afectadas y prueba las actualizaciones de tu integración | Stripe proporciona un recuento aproximado de tus cuentas conectadas afectadas. Empieza a probar tu flujo de activación actualizado. |
| De marzo a abril de 2026 | Comienza la implementación de `future_requirements` (Onboarding de la API) | Para las plataformas que utilizan el onboarding de la API, Stripe comienza a añadir los nuevos requisitos a `future_requirements` tanto para las cuentas nuevas como para las existentes. |
| 1 de abril de 2026 | Comienzan los nuevos requisitos para las plataformas que solo tienen cuentas conectadas con tipo de empresa `individual` | Asegúrate de que tu flujo de onboarding actualizado esté listo para recopilar los nuevos requisitos. Debes tener tu flujo actualizado listo funcionando antes del 1 de abril, cuando Stripe empiece a implementar los nuevos requisitos. Todos los nuevos requisitos entrarán en vigor a finales de abril. |
| 1 de mayo de 2026 | Entran en vigor nuevos requisitos para las plataformas que tienen cuentas conectadas con tipo de empresa `company`, incluidas las plataformas que también tienen cuentas conectadas `individual`. | Asegúrate de que tu flujo de onboarding actualizado esté listo para recopilar los nuevos requisitos. Debes tener tu flujo actualizado funcionando para todas las cuentas conectadas antes del 1 de mayo, cuando Stripe empiece a implementar los nuevos requisitos. Todos los nuevos requisitos entrarán en vigor a finales de mayo. |
| De junio de 2026 a agosto de 2026 | Actualmente se deben presentar nuevos requisitos para las cuentas existentes | Los nuevos requisitos se aplican a las cuentas conectadas existentes durante este período. Usa tu flujo de Onboarding actualizado para recogerlos según sea necesario. |
| Julio – Octubre 2026 | Fechas de vencimiento para nuevos requisitos | Para evitar restricciones, los requisitos actualizados para cada cuenta deben verificarse antes de la fecha de vencimiento de esa cuenta. |

## Verificación de conocimiento del cliente (KYC)

Stripe está fortaleciendo nuestro proceso de verificación de identidad, lo que puede requerir que algunas de tus cuentas conectadas proporcionen información adicional. También estamos añadiendo más opciones a la API para verificar la información.

Las siguientes entidades deben proporcionar información KYC verificable:

- Entidad jurídica (para particulares y entidades unipersonales);
- Representante de la cuenta
- Los UBO (para cuentas consideradas de alto riesgo por el modelo de riesgo de Stripe)

### Métodos de verificación adicionales

Utiliza los siguientes métodos opcionales, además de la información introducida manualmente, para maximizar las tasas de éxito en la verificación:

- [Stripe Identity](https://docs.stripe.com/connect/upcoming-requirements-updates.md#stripe-identity): (Recomendado) utiliza selfies y capturas de documentos para las cuentas que no superen la verificación automática.
- [Verificación del documento nacional de identidad](https://docs.stripe.com/connect/upcoming-requirements-updates.md#national-id-verification): consigue un número de identificación nacional por adelantado para aumentar las tasas de verificación en la primera pasada.
- [Cargar documentación adicional](https://support.stripe.com/questions/documents-for-identity-and-home-address-verification): envía documentos justificativos de identidad o dirección para revisarlos manualmente.

### Stripe Identity (Recomendado)

Puedes intentar verificar las cuentas conectadas que no pasen su verificación automática utilizando [Stripe Identity](https://stripe.com/identity), que funciona capturando una selfie y un [documento de identidad](https://docs.stripe.com/acceptable-verification-documents.md). La mayoría de [los países europeos](https://docs.stripe.com/identity/use-cases.md) aceptan Stripe Identity, y las tasas de éxito varían según el país.

Crea una [sesión de verificación](https://docs.stripe.com/api/identity/verification_sessions.md?api-version=preview) de identidad y utiliza el parámetro [related_person](https://docs.stripe.com/api/identity/verification_sessions/object.md?api-version=preview#identity_verification_session_object-related_person) para enviar los requisitos de `document` y la `proof_of_liveness` de la persona. Puedes comprobar los resultados usando la API o el Dashboard.

### Verificación de identidad nacional

En los [países afectados por esta actualización](https://docs.stripe.com/connect/upcoming-requirements-updates.md#affected-countries), puedes mejorar la verificación de un representante de la cuenta conectada proporcionando su número de identificación nacional además de su nombre, fecha de nacimiento, dirección y nacionalidad.

Actualmente, la verificación admite los siguientes números de identificación nacional.

| País | Tipo de documento nacional de identidad |
| --- | --- |
| Dinamarca | Registro central de personas (CPR) |
| Finlandia | Henkilötunnus (código de identidad personal) |
| Grecia | Arithmós Forologikoú Mitróou (AFM/ID fiscal) o Prosopikós Arithmós (número personal) |
| Irlanda | Número de servicio público personal (PPS) |
| Italia | Codice Fiscale (código fiscal) |
| Letonia | Personas kods (código personal) |
| Polonia | Número PESEL |
| Rumanía | Cod Numeric Personal (CNP) |
| España | Documento Nacional de Identidad (DNI) |
| Suecia | Personnummer (número de identidad personal) |

Los países no afectados por esta actualización, como EE. UU., no dan soporte a la verificación del número nacional de identidad. Por ejemplo, puedes proporcionar el número de identidad de un ciudadano español que actúe como representante de una cuenta conectada en Austria, pero no puedes proporcionar el número de identidad de un ciudadano español que actúe como representante de una cuenta conectada en EE.&nbsp;UU.

> #### Disponibilidad de documento nacional de identidad
> 
> Puedes empezar a recoger los números de identificación nacionales para tus cuentas conectadas cuando los requisitos actualizados se conviertan en requisitos futuros. Mientras tanto, la integración está disponible para tus cuentas del entorno de pruebas como función de la versión beta.

### Implementa la verificación del documento nacional de identidad con la API

El siguiente ejemplo muestra la activación de una nueva cuenta conectada con los requisitos actualizados.

> Las diferencias a continuación solo afectan a la API Accounts v1, no a la v2.

#### Paso 1: Crea una cuenta conectada para pruebas (Public preview)

Después de que cambien los requisitos futuros, crea cuentas conectadas como de costumbre. Hasta entonces, crea nuevas cuentas conectadas en un [entorno de prueba](https://docs.stripe.com/sandboxes.md) para habilitar el nuevo comportamiento KYC.

Activa este comportamiento cambiando dos partes de la llamada de creación de tu cuenta

1. Adición del encabezado `experimental_onboarding_preview=v2`.
2. Envío de `capabilities[card_payments][preview]=true`.

Después de crear la cuenta, veras la opción `nacionalidad del representante`. Esto indica que puedes crear un perfil de representante de la cuenta y proporcionar su nacionalidad.

```shell
// Creating a connected account in Spain
> curl https://api.stripe.com/v1/accounts \
  -u sk_test_123 \
  -H "Stripe-Version: 2025-08-27.basil;experimental_onboarding_preview=v2" \
  -d 'type'='custom' \
  -d 'country'='ES' \
  -d 'capabilities[card_payments][requested]'='true' \
  -d 'capabilities[card_payments][preview]'='true' \
  -d 'capabilities[transfers][requested]'='true'

{
  "id": "acct_1Nv0FGQ9RKHgCVdB",
  ...
  "requirements": {
    "past_due": [
      ...
      "representative.nationality",
      ...
    ]
  }
 ...
}
```

#### Paso 2: Creación de un representante de la cuenta

Después de crear la cuenta conectada, crea un representante de la cuenta.

```shell
> curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB/persons \
  -u sk_test_123: \
  -d first_name=John \
  -d last_name=Doe

{
  "id": "person_1N9XNb2eZvKYlo2CjPX7xF6B",
  ...
}
```

#### Paso 3: Envío de la nacionalidad

Después de crear un representante de la cuenta, la `nationality` aparece en `past_due`. Recoge este campo para que Stripe pueda determinar si el representante cumple los requisitos de la recopilación `id_number`.

```shell
> curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB -u sk_test_123:

{
  ...
  "requirements": {
    "past_due": [
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.dob.year",
      ...other person requirements...
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.nationality"
    ]
  }
 ...
}
```

Después de recoger la información sobre la nacionalidad, si la persona se encuentra en un país que cumple los requisitos para ello, verás su número de ID como requisito alternativo en la matriz `de alternativas`. Cada entrada de la matriz `de alternativas` representa una ruta de resolución alternativa para un requisito estándar. Puedes cumplir un requisito alternativo en lugar del requisito original, pero no tienes que cumplir ambos.

En este ejemplo, `alternativas` contiene un `id_number` como alternativa al requisito `dob.year`. Esto significa que puedes proporcionar el número de identificación nacional de la persona en lugar de su año de nacimiento. Si proporcionas su año de nacimiento, no tienes que proporcionar su número de identificación.

```shell
> curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB/persons/person_1N9XNb2eZvKYlo2CjPX7xF6B \
  -u sk_test_123: \
  -d nationality=ES

> curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB -u sk_test_123:

{
  "requirements": {
    "past_due": [
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.dob.year",
      ...other person fields...
    ],
    "alternatives": [
      {
        "original_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.dob.year",
          ...other person fields...
        ],
        "alternative_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.id_number"
        ]
      }
    ]
  }
}
```

#### Paso 4: Recopilación de los campos restantes del representante de la cuenta

Recopilación de atributos de persona adicionales, incluyendo un número de identificación nacional, para iniciar la verificación KYC programática.

```shell
> curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB/persons/person_1N9XNb2eZvKYlo2CjPX7xF6B \
  -u sk_test_123: \
  -d 'id_number'='74362315-A' \
  ...other person fields...
```

#### Paso 5: Los campos introducidos pasan a estar pendientes de verificación

Después de proporcionar los datos introducidos, los campos aparecen en `pending_verification` de una nueva manera:

- Los campos introducidos en `pending_verification` en lugar de `verification.document` y `verification.additional_document`. Esto indica que se están verificando los campos introducidos.
- El requisito `id_number` puede pasar a `pending_verification` si se proporciona, incluso si aparece solo en `alternative_fields_due` y nunca en `past_due` o `currently_due`.

```shell
> curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB/ -u sk_test_123:

{
  "requirements": {
    "pending_verification": [
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.city",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.line1",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.postal_code",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.dob.day",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.dob.month",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.dob.year",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.first_name",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.id_number",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.last_name"
    ]
  }
}
```

#### Paso 6: Gestión de los errores de verificación

En muchos casos, después de que los campos entran en `pending_verification`, el representante pasa el KYC y el proceso se completa.

Si la verificación falla, Stripe devuelve información adicional para ayudarte a guiar los siguientes pasos.

Hay dos cambios importantes.

**Múltiples alternativas**

En el hash de requisitos verás varias alternativas. Cada una de ellas representa un camino a seguir para tus usuarios.

Por ejemplo, si el nombre y la fecha de nacimiento coinciden, pero el nombre y la dirección no, tu cuenta conectada tiene varias formas de resolver el problema:

1. Pueden comprobar la información que han introducido en los campos de nombre y dirección y volver a introducirla para corregir cualquier error.
2. Pueden comprobar la información que han introducido en dob, name, address e id_number y volver a introducir la información correcta.
3. Pueden cargar un documento que coincida con su nombre y dirección
4. Pueden completar Stripe Identity

Estas cuatro rutas aparecen como campos `past_due` y `alternatives`:

```shell
> curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB -u sk_test_123:

{
  "requirements": {
    // 1. They can check the information they've entered for dob, name, and address, and re-enter the correct information.
    "past_due": [
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.first_name",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.last_name",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.*"
    ],
    "alternatives": [
      // 2. They can check the information they entered for dob, name, address and id_number and re-key correct information.
      {
        "original_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.first_name",
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.last_name",
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.*"
        ],
        "alternative_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.id_number"
        ]
      },
      // 3. They can upload document that matches their name and address
      {
        "original_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.first_name",
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.last_name",
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.*"
        ],
        "alternative_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.verification.additional_document"
        ]
      },
      // 4. They can complete Stripe Identity
      {
        "original_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.first_name",
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.last_name",
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.*"
        ],
        "alternative_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.proof_of_liveness"
        ]
      }
    ]
  }
}
```

**Errores en los campos introducidos** Anteriormente, si se producía un error de verificación al procesar los campos introducidos, los campos del documento pasaban a `past_due` y aparecían errores en ellos. En el futuro, los campos introducidos vuelven a `past_due`. Campos como `id_number` permanecen en `alternative_fields_due`.

Por ejemplo, si el nombre, la fecha de nacimiento y la dirección son originalmente `past_due`, y después de enviar el nombre y la fecha de nacimiento coinciden mientras que el nombre y la dirección no coinciden, entonces el nombre y la dirección vuelven a `past_due` mientras se elimina la fecha de nacimiento.

En esta situación, aparecen errores en los campos `past_due` y `alternative_fields_due`.

```shell

> curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB -u sk_test_123:
{
  "requirements": {
    "past_due": [
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.name",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.address"
    ],
    "alternatives": [
      {
        "original_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.name",
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.address"
        ],
        "alternative_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.id_number"
        ]
      },
      {
        "original_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.name",
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.address"
        ],
        "alternative_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.proof_of_liveness"
        ]
      },
      {
        "original_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.name",
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.address"
        ],
        "alternative_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.verification.additional_document"
        ]
      }
    ],
    "errors": [
      {
        "code": "verification_failed_keyed_identity",
        "reason": "Identity information could not be verified.",
        "requirement": "person_1N9XNb2eZvKYlo2CjPX7xF6B.name"
      },
      {
        "code": "verification_failed_keyed_identity",
        "reason": "Identity information could not be verified.",
        "requirement": "person_1N9XNb2eZvKYlo2CjPX7xF6B.address"
      },
      {
        "code": "verification_failed_keyed_identity",
        "reason": "Identity information could not be verified.",
        "requirement": "person_1N9XNb2eZvKYlo2CjPX7xF6B.id_number"
      }
    ]
  }
}
```

### Cuentas de alto riesgo

El modelo de riesgo de Stripe requiere verificación KYC solo para las UBO, solo para cuentas clasificadas como de alto riesgo. Para las pruebas, añade`_high_risk` al nombre de la empresa para imponer una calificación de alto riesgo. Esto te permite probar todo el flujo de verificación KYC para los propietarios, incluyendo los requisitos y errores que tu integración debe gestionar.

Este ejemplo muestra cómo crear una cuenta de pruebas de alto riesgo y añadir propietarios:

```curl
// Creating a connected account in Spain
curl https://api.stripe.com/v1/accounts \
  -u sk_test_123: \
  -H "Stripe-Version: 2025-08-27.basil;experimental_onboarding_preview=v2" \
  -d 'type'='custom' \
  -d 'country'='ES' \
  -d 'capabilities[card_payments][requested]'='true' \
  -d 'capabilities[card_payments][preview]'='true' \
  -d 'capabilities[transfers][requested]'='true'
{
  "id": "acct_123",
  ...
  "requirements": {...}
 ...
}

// Set the business name to enforce the account to be high risk
curl https://api.stripe.com/v1/accounts/acct_123 \
  -u sk_test_123: \
  -d "business_profile[name]"="example_high_risk"
```

```curl
curl https://api.stripe.com/v1/accounts/acct_123/persons \
  -u sk_test_123: \
  -d first_name=Marie \
  -d last_name=Dupont \
  -d "dob[day]"=1 \
  -d "dob[month]"=1 \
  -d "dob[year]"=1901 \
  -d "relationship[owner]=true" \
  -d "address[line1]"="address_no_match" \
  -d "address[city]"="Madrid" \
  -d "address[postal_code]"="28001"
{
  "id": "person_123",
  ...
}
```

```curl
curl https://api.stripe.com/v1/accounts/acct_123 \
  -u sk_test_123: \
  -d "company[owners_provided]"="true"
```

Después de que Stripe realice la verificación KYC del propietario, los requisitos de la cuenta reflejan el resultado. Cuando el nombre del propietario coincide pero su dirección no (activado por el uso de la`address_no_match` de la dirección de prueba), los requisitos incluyen la `verification_failed_keyed_identity` de errores en los campos del propietario:

```json
{
  "requirements": {
    "past_due": [
      "people.person_123.address.city",
      "people.person_123.address.line1",
      "people.person_123.address.postal_code",
      "people.person_123.first_name",
      "people.person_123.last_name"
    ],
    "errors": [
      {
        "code": "verification_failed_keyed_identity",
        "requirement": "people.person_123.address.city"
      },
      {
        "code": "verification_failed_keyed_identity",
        "requirement": "people.person_123.address.line1"
      },
      {
        "code": "verification_failed_keyed_identity",
        "requirement": "people.person_123.address.postal_code"
      },
      {
        "code": "verification_failed_keyed_identity",
        "requirement": "people.person_123.first_name"
      },
      {
        "code": "verification_failed_keyed_identity",
        "requirement": "people.person_123.last_name"
      }
    ],
    "alternatives": [
      {
        "original_fields_due": [
          "people.person_123.address.city",
          "people.person_123.address.line1",
          "people.person_123.address.postal_code",
          "people.person_123.first_name",
          "people.person_123.last_name"
        ],
        "alternative_fields_due": [
          "people.person_123.verification.additional_document"
        ]
      },
      {
        "original_fields_due": [
          "people.person_123.address.city",
          "people.person_123.address.line1",
          "people.person_123.address.postal_code",
          "people.person_123.first_name",
          "people.person_123.last_name"
        ],
        "alternative_fields_due": [
          "people.person_123.verification.proof_of_liveness"
        ]
      }
    ]
  }
}
```

Para resolver estos requisitos, se puede volver a enviar la información de identidad del propietario o cumplir uno de los requisitos alternativos (subir un`additional_document` o `proof_of_liveness` completa).

## Verificación de la relación entre los UBO y los directores

Stripe está mejorando nuestro proceso de verificación para los beneficiarios finales (UBO, por sus siglas en inglés) y los directores. La normativa europea exige verificar la relación de los UBO y los directores con la entidad jurídica:

- **UBO:** un particular que posee o controla (directa o indirectamente) más del 25&nbsp;% de una entidad jurídica (por ejemplo, empresas, corporaciones, LLC y sociedades colectivas).
- **Director:** un miembro del consejo de administración de la empresa o cualquier otro alto cargo responsable de la gestión de la empresa. (Por ejemplo, CEO, COO, presidente, director general, director ejecutivo, etc.)

La siguiente tabla muestra las relaciones que deben verificarse para cada tipo de entidad jurídica:

| Tipo de entidad jurídica | Relaciones por verificar | Nota |
| --- | --- | --- |
| Empresa, sociedad anónima, LLC, sociedad colectiva | Los UBO si existen; de lo contrario, los directores | Solo en Reino Unido: tanto los UBO como los directores |
| Organización sin fines de lucro | Directores | La mayoría de las organizaciones sin ánimo de lucro no tienen UBO |
| Particular o empresario individual | N/D | N/D |
| Ente público o agencia | N/D | Para estar exentos de proporcionar información sobre los UBO, los entes públicos deben seguir el proceso descrito en [este artículo de soporte](https://support.stripe.com/questions/business-verification-requirements-for-government-entities). |
| Empresas que cotiza en bolsa | N/D | Para estar exentas de proporcionar información sobre los UBO, las empresas que cotizan en bolsa deben seguir el proceso descrito en [este artículo de soporte](https://support.stripe.com/questions/business-verification-requirements-for-publicly-traded-companies). |

### Verifica la información del UBO y del director

Los UBO y directores deben proporcionar la siguiente información:

- Nombre completo
- Fecha de nacimiento
- Dirección
- Correo electrónico
- Cargo (solo directores)

Stripe intenta verificar la relación de la persona comparando las siguientes propiedades clave de la persona y de la entidad jurídica:

| Entidad | Propiedades clave |
| --- | --- |
| Persona | - Nombre
- Apellido
- (Si se proporciona) Número de ID |
| Persona jurídica | - Nombre
- Dirección
- ID fiscal
- ID de IVA
- Número de inscripción |

Una verificación correcta puede requerir que solo coincida un subconjunto de las propiedades.

Stripe intenta verificar las relaciones de las siguientes maneras:

| Método | Descripción | Requisitos de muestra |
| --- | --- | --- |
| Proveedor externo | Si hay un proveedor externo disponible, Stripe intenta verificar automáticamente todas las relaciones de la cuenta. | - `owners.first_name`
- `owners.last_name`
- `company.tax_id` |
| Documento oficial | Puedes proporcionar un documento «Prueba de UBO» para los propietarios y un documento «Prueba de registro» para los directores. Los [documentos aceptados](https://docs.stripe.com/acceptable-verification-documents.md) varían según el país. | - `owners.first_name`
- `owners.last_name`
- `company.name`
- `company.address.line1`
- `company.address.city`
- `company.address.state`
- `documents.proof_of_ultimate_beneficial_ownership` |
| Certificación digital | Puedes usar las siguientes plantillas en PDF para proporcionar certificaciones digitales de tus relaciones:
- [Plantilla de certificación digital de UBO](https://docs.stripecdn.com/6e82842bfc01bd0b1c46d77f7d46b69673a9ca965ed2ad9ef53139f98abdbbaf.pdf)
- [Plantilla de certificación digital del director](https://docs.stripecdn.com/715ffef45157ff700bc368a4011659ee23bc8ba3c68746c5c15948a6eee1591f.pdf) | - `owners.id_number`
- `company.tax_id`
- `documents.proof_of_ultimate_beneficial_ownership`
- `documents.proof_of_ultimate_beneficial_ownership.signer` |

### Identifica los requisitos de verificación de relaciones utilizando la API

Cuando recuperas los requisitos de una `cuenta`, las opciones de verificación originales y alternativas representan combinaciones de la información clave y los métodos de verificación disponibles. En la mayoría de los casos, hay al menos tres opciones para verificar a los propietarios o directores.

El siguiente código muestra un ejemplo de una cuenta conectada con requisitos del propietario. Las opciones concretas y el orden en que aparecen pueden variar entre cuentas.

```shell
// Example with owner requirements
> curl https://api.stripe.com/v1/accounts/acct_1234 \
  -u sk_test_123:

{
  "id": "acct_1234",
  "past_due": {
    // third-party provider option
    "currently_due": [
      "owners.first_name",
      "owners.last_name",
      "company.owners_provided",
      "company.tax_id"
    ],
    "alternatives": [
      {
        "original_fields_due": [
          "owners.first_name",
          "owners.last_name",
          "company.owners_provided",
          "company.tax_id"
        ],
        // official document option
        "alternative_fields_due": [
          "owners.first_name",
          "owners.last_name",
          "company.owners_provided",
          "company.name",
          "company.address.line1",
          "company.address.state",
          "company.address.city",
          "documents.proof_of_ultimate_beneficial_ownership.files"
        ],
      },
      {
        "original_fields_due": [
          "owners.first_name",
          "owners.last_name",
          "company.owners_provided",
          "company.tax_id"
        ],
        // digital attestation option
        "alternative_fields_due": [
          "owners.first_name",
          "owners.last_name",
          "company.owners_provided",
          "company.name",
          "company.address.line1",
          "company.address.state",
          "company.address.city",
          "documents.proof_of_ultimate_beneficial_ownership.files",
          "documents.proof_of_ultimate_beneficial_ownership.signer"
        ],
      }
    ]
  }
}
```

### Verifica directores en vez de propietarios

Si una cuenta conectada es elegible para proporcionar directores en vez de propietarios, incluye opciones alternativas para verificar a los directores. Si verificas a los directores, aún necesitas certificar que no proporcionaste ningún UBO.

El siguiente ejemplo muestra una cuenta conectada que cumple los requisitos para verificar a los directores en vez de a los propietarios:

```shell
// Example with owner requirements
> curl https://api.stripe.com/v1/accounts/acct_1234 \
  -u sk_test_123:

{
  "id": "acct_1234",
  "past_due": {
    // third-party provider option for owners
    "currently_due": [
      "owners.first_name",
      "owners.last_name",
      "company.owners_provided",
      "company.tax_id"
    ],
    "alternatives": [
      ...,
      {
        "original_fields_due": [
          "owners.first_name",
          "owners.last_name",
          "company.owners_provided",
          "company.tax_id"
        ],
        // third-party provider option for directors
        "alternative_fields_due": [
          "directors.first_name",
          "directors.last_name",
          "company.directors_provided",
          "company.owners_provided",
          "company.tax_id"
        ],
      }
    ]
  }
}
```

Si proporcionas información sobre los directores y certificas que no hay beneficiarios efectivos finales, las opciones de requisitos principales siguen reflejando los requisitos sobre propietarios. Puedes proporcionar información sobre los propietarios cuando esté disponible.

El siguiente ejemplo muestra una cuenta conectada sin certificación de UBO:

```shell
// Example with owner requirements
> curl https://api.stripe.com/v1/accounts/acct_1234 \
  -u sk_test_123:

{
  "id": "acct_1234",
  "past_due": {
    // third-party provider option for owners
    "currently_due": [
      "owners.first_name",
      "owners.last_name",
      // company.owners_provided is no longer a requirement
      "company.tax_id"
    ],
    "alternatives": [
      ...,
      {
        "original_fields_due": [
          "owners.first_name",
          "owners.last_name",
          "company.tax_id"
        ],
        // third-party provider option for directors
        "alternative_fields_due": [
          "directors.first_name",
          "directors.last_name",
          "company.directors_provided",
          "company.tax_id"
        ],
      }
    ]
  }
}
```

### Gestión de errores

Los errores en los requisitos de propietarios y directores pueden incluir los siguientes valores de `código`, además de los [errores comunes de discrepancia entre documentación y detalles](https://docs.stripe.com/error-codes.md).

| Código | Descripción |
| --- | --- |
| `verification_missing_owners` | A la `cuenta` le falta información sobre los titulares identificados por un proveedor externo o que aparecen en un documento o certificación digital. |
| `verification_missing_directors` | A la `cuenta` le falta información sobre los directores identificados por un proveedor externo o que aparecen en un documento o certificación digital. |
| `verification_data_not_found` (Public preview) | Un proveedor externo no pudo encontrar información sobre la empresa. |

A veces, estos errores se pueden resolver actualizando los datos de la empresa. Sin embargo, en la mayoría de los casos, es necesario dirigir la cuenta conectada a la ruta de carga de documentos o a la ruta de certificación digital.

Cuando Stripe identifica propietarios o directores que faltan, en algunos casos una API de vista previa privada puede proporcionar datos sobre ellos. La cuenta conectada puede utilizar esos datos para crear las `Persons` que faltan.

### Implementa la certificación digital para la verificación de UBO y director usando la API

El siguiente ejemplo muestra cómo realizar la certificación digital para la verificación del UBO o director.

1. Recupera la cuenta para identificar qué documentos de certificación son obligatorios.

   ```shell
   // Check for UBO attestation requirement
   > curl https://api.stripe.com/v1/accounts/acct_1234 \
     -u sk_test_123:
   
   // Response showing UBO attestation
   {
     "id": "acct_1234",
     "requirements": {
       "past_due": [
         "documents.proof_of_ultimate_beneficial_ownership.files",
         "documents.proof_of_ultimate_beneficial_ownership.signer",
       ],
       "errors": []
     }
   }
   
   // Or for directors & officers requirement
   {
     "id": "acct_1234",
     "requirements": {
       "past_due": [
         "documents.proof_of_registration.files",
         "documents.proof_of_registration.signer"
        ],
       "errors": []
     }
   }
   ```

La opción de requisitos de certificación digital puede aparecer como opción principal o como alternativa a otra opción. Las opciones concretas y el orden en que aparecen pueden variar entre cuentas.

1. Genera un PDF usando la plantilla y pide a una persona autorizada que lo firme digitalmente.

2. Carga del documento de certificación firmado con la API File.

   ```shell
   curl -X POST https://files.stripe.com/v1/files \
     -u sk_test_123: \
     -F purpose=account_requirement \
     -F file=@signed_attestation.pdf
   
   // Response
   {
     "id": "file_1234567890",
     "object": "file",
     "purpose": "account_requirement"
   }
   ```

3. Envía el documento con el ID de la `Person` que representa al firmante.

   ```shell
   // For UBO attestation
   curl -X POST https://api.stripe.com/v1/accounts/acct_1234 \
     -u sk_test_123: \
     -d "documents[proof_of_ultimate_beneficial_ownership][files][]=file_1234567890" \
     -d "documents[proof_of_ultimate_beneficial_ownership][signer][person]=person_xyz"
   
   // For D&O attestation
   curl -X POST https://api.stripe.com/v1/accounts/acct_1234 \
     -u sk_test_123: \
     -d "documents[proof_of_registration][files][]=file_1234567890" \
     -d "documents[proof_of_registration][signer][person]=person_xyz"
   ```

### Requisitos de validación del firmante

Quién puede firmar las certificaciones

- Representantes de la cuenta
- Propietarios de empresas (más del 25 % de propiedad)
- Directores y funcionarios
- Otros miembros autorizados de la cuenta

Importante: el firmante debe ser una persona existente asociada a la cuenta. Solo las personas con relación documentada con la entidad jurídica pueden firmar documentos de certificación.

### Manejo de errores

La certificación digital introduce escenarios de error específicos que debes gestionar:

#### Firmante no válido

Se produce cuando el firmante no está asociado a la cuenta o carece de autoridad.

```shell
{
  "requirements": {
    "errors": [{
      "requirement": "documents.proof_of_ultimate_beneficial_ownership.files",
      "code": "invalid_signator",
      "reason": "Unauthorized attestation signer. The signer must have a documented relationship with the legal entity."
    },
    {
      "requirement": "documents.proof_of_ultimate_beneficial_ownership.signer",
      "code": "invalid_signator",
      "reason": "Unauthorized attestation signer. The signer must have a documented relationship with the legal entity."
    }]
  }
}
```

#### Ha fallado el documento

Se produce cuando el documento cargado es ilegible o incorrecto.

```shell
{
  "requirements": {
    "past_due": ["documents.proof_of_registration.files"],
    "errors": [{
      "requirement": "documents.proof_of_registration.files",
      "code": "verification_document_failed_other",
      "reason": "Your team can contact Stripe to learn more about why identity verification failed."
    }]
  }
}
```

#### El firmante no ha enviado archivos

Errores API al enviar firmante sin archivos

```shell
{
  "error": {
    "code": "invalid_signator",
    "message": "signer.person can only be provided when a file is also provided",
    "type": "invalid_request_error"
  }
}
```

### Próximos pasos

1. Actualiza tu integración para recoger un firmante cuando uses documentos de certificación.
2. Implementación de la gestión de errores para nuevos códigos de error específicos de la certificación.
3. Forma a tu equipo de soporte sobre los nuevos requisitos de certificación.

#### Completa la información del UBO y del director de forma automática (Private preview)

Si lo deseas, también puedes integrarte con una API que detecta y rellena mediante programación los UBO o directores asociados a una entidad jurídica. La cuenta conectada puede verificar la relación confirmando la información detectada en lugar de mediante la carga de documentos o la certificación digital.

Esta vía puede aumentar las tasas de verificación y reducir las fricciones, pero no funciona para todas las cuentas. Aún es necesario gestionar la carga de documentos o las certificaciones digitales para aquellas cuentas en las que Stripe no puede rellenar previamente sus relaciones.

Si te interesa rellenar automáticamente la verificación de UBO o directores, regístrate a continuación.

### ¿Te interesa obtener acceso anticipado a la función de relleno automático del formulario de UBO/director de Stripe?

Enter your email to request access.

```bash
curl https://docs.stripe.com/preview/register \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Referer: https://docs.stripe.com/connect/upcoming-requirements-updates" \
  -d '{"email": "EMAIL", "preview": "risk_requirements_beta_preview"}'
```

## Requisitos de registro empresas (KvK) en los Países Bajos

**A partir del 14 de mayo de 2026**

A principios de 2026, se exigió a las plataformas que recabaran el número KvK (Kamer van Koophandel), un número de registro mercantil único de 8 dígitos, de las cuentas conectadas en los Países Bajos (NL). Como parte de este cambio, el tipo de empresa `particular` quedó restringida con un error `unsupported_business_type`, y las entidades no constituidas como sociedad debían proporcionar un número KvK a través de `company.tax_id`.

A partir del 14 de mayo de 2026, las cuentas conectadas que representen a particulares o entidades sin personalidad jurídica y que no tengan acceso a un Dashboard alojado en Stripe ya no estarán obligadas a facilitar un número KvK.

Las cuentas conectadas que representen a particulares o entidades sin personalidad jurídica y que tengan acceso al panel de control completo de Stripe o al Dashboard de Express deben seguir facilitando un número KvK.

### ¿Qué va a cambiar?

- `business_type: "individual"` ya es compatible con las cuentas conectadas de los Países Bajos que no tienen acceso a un Dashboard alojado por Stripe. El error `unsupported_business_type` ya no aparece en estas cuentas.
- Los tipos de empresa `unincorporated_partnership` y `unincorporated_non_profit` ya no requieren que `company.tax_id` contenga el número KvK para las cuentas conectadas que no tienen acceso a un Dashboard alojado por Stripe.

### ¿Qué tienes que hacer?

No es necesario realizar ninguna acción. No tienes que hacer ningún cambio en tu integración.

Para las cuentas conectadas existentes afectadas por este cambio:

- Stripe elimina automáticamente el error `unsupported_business_type` de `requirements.errors` para las cuentas de particulares.
- Las restricciones de funcionalidad (como `card_payments` o `transfers`) asociadas a este error se eliminan automáticamente.
- Las cuentas que representan a particulares o entidades sin personalidad jurídica y que fueron restringidas por carecer de KvK también se desbloquean automáticamente.

## Nuevos códigos de error

### Códigos de error de verificación (Public preview)

El nuevo código de error `verification_data_not_found` puede aparecer en la matriz `requirements.errors` del objeto `Account`. Este error indica que Stripe no ha podido recuperar información (como datos sobre el propietario beneficiario último o sobre directores/ejecutivos) de proveedores de verificación externos utilizando los datos de la entidad jurídica conocidos de la cuenta conectada. Esto puede ocurrir por varias razones, pero a menudo se debe a que la cuenta ha introducido la información de forma incorrecta.

Este error de «datos no encontrados» es distinto de los códigos de error de verificación existentes:

- **`verification_missing_owners`**: indica que faltan propietarios conocidos en la cuenta.
- **`verification_failed_keyed_match`**: indica una falta de coincidencia entre la información enviada y las fuentes de verificación.

```shell
// Example: verification_data_not_found error
{
  "requirements": {
    "errors": [{
      "requirement": "owners",
      "code": "verification_data_not_found",
      "reason": "Stripe was unable to retrieve ownership or director information from third-party providers based on the current legal entity details. Verify that the business information on the account is correct."
    }]
  }
}
```

Para solucionar este error, solicita a la cuenta conectada que revise y corrija la información de su entidad jurídica (nombre de la empresa, número de registro, dirección). Si actualizan su información, Stripe intentará verificarla de nuevo automáticamente.

Si la información de la cuenta es correcta, o si Stripe sigue sin poder verificar la información actualizada, utiliza un método de verificación manual, como la carga de documentos o la certificación digital.

## Pruebas

Puedes crear cuentas de prueba para utilizarlas durante el desarrollo y las pruebas de tu integración. Las cuentas de prueba pueden simular diferentes resultados de verificación, lo que te permite ver cómo la API devuelve los requisitos y los errores para cada caso.

Los siguientes ejemplos te ayudarán a prepararte para los próximos cambios en los requisitos de la UE. Para obtener más información sobre las pruebas de Connect en general, consulta [Pruebas de Stripe Connect](https://docs.stripe.com/connect/testing.md).

### Crea una cuenta de prueba

Crea una `cuenta` de prueba enviando una solicitud POST a la API de cuentas utilizando tu clave secreta de [entorno de pruebas](https://docs.stripe.com/keys.md).

Para acceder a los nuevos requisitos antes de que se publiquen en las cuentas que no están en modo de prueba, configura un encabezado que habilite una versión preliminar de la API, habilita la función experimental de vista previa de onboarding y habilita la versión preliminar al solicitar una capacidad. Por ejemplo:

```shell
curl https://api.stripe.com/v1/accounts \
  -u sk_test_123: \
  -H "Stripe-Version: 2026-01-28.preview;experimental_onboarding_preview=v2" \
  -d 'type'='custom' \
  -d 'country'='ES' \
  -d 'capabilities[card_payments][requested]'='true' \
  -d 'capabilities[card_payments][preview]'='true' \
  -d 'capabilities[transfers][requested]'='true' \
  -d 'capabilities[transfers][preview]'='true'
```

Los ejemplos siguientes muestran cómo simular diferentes situaciones utilizando valores que desencadenan respuestas específicas para cuentas de prueba.

### Probar una cuenta perteneciente a una persona física

Este ejemplo crea una cuenta que no requiere verificación de relación porque el tipo de entidad comercial es `individual`.

Crea una cuenta de prueba siguiendo[ las instrucciones anteriores](https://docs.stripe.com/connect/upcoming-requirements-updates.md#create-a-test-account),y, a continuación, configura los datos básicos de la empresa:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d business_type=individual \
  -d "business_profile[mcc]"=5995 \
  -d "business_profile[url]"="https://accessible.stripe.com"
```

La respuesta incluye los requisitos básicos para una persona. Puedes cumplir estos requisitos creando un representante:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123/persons \
  -u sk_test_123: \
  -d "first_name=Marie" \
  -d "last_name=Dupont" \
  -d "dob[year]=1901" \
  -d "dob[month]=1" \
  -d "dob[day]=1" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=Madrid" \
  -d "address[postal_code]=28009" \
  -d "address[country]=ES" \
  -d "email=test@example.com" \
  -d "phone=%2B35366666666" \
  -d "nationality=ES" \
  -d "relationship[representative]=true"
```

Al especificar la fecha de nacimiento 1901-01-01, se activa la verificación de identidad correcta en un entorno de prueba. Para otros desencadenantes de resultados, consulta [Fechas de nacimiento de prueba](https://docs.stripe.com/connect/testing.md#test-dobs)… Del mismo modo, al establecer la primera línea de la dirección con la cadena `address_full_match`, se activa la verificación correcta de la dirección. Para otros desencadenantes de resultados, consulta [Direcciones comerciales de prueba](https://docs.stripe.com/connect/testing.md#test-validation-addresses).

La respuesta muestra que los requisitos del individuo han quedado pendientes. Si esperas unos momentos y recuperas la `cuenta`, podrás ver que esos requisitos se han eliminado:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123
```

Los únicos requisitos que quedan son los relativos a la cuenta bancaria (`external_account` y las condiciones del servicio (TOS). Para cumplir los requisitos de las condiciones del servicio, configura el `hash tos_acceptance` de la `cuenta`:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d "tos_acceptance[date]=1540248693" \
  -d "tos_acceptance[ip]=10.0.0.1"
```

Para cumplir con los requisitos de la cuenta bancaria, crea una cuenta bancaria de prueba para la `Cuenta.`. Especifica [un número de cuenta bancaria de prueba según tu país](https://docs.stripe.com/connect/testing.md#account-numbers):

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123/external_accounts \
  -u sk_test_123: \
  -d "external_account[object]=bank_account" \
  -d "external_account[account_number]=ES0700120345030000067890" \
  -d "external_account[country]=ES" \
  -d "external_account[currency]=EUR"
```

### Probar una cuenta perteneciente a una empresa

Este ejemplo crea una cuenta que está sujeta a requisitos de verificación de relaciones porque el tipo de entidad comercial es `empresa`

> El Reino Unido exige la verificación tanto de los beneficiarios efectivos (UBO) como de los directores. Si vas a tener cuentas conectadas en el Reino Unido, asegúrate de realizar la prueba con cuentas que tengan el país configurado como `GB`.

Crea una cuenta de prueba siguiendo[ las instrucciones anteriores](https://docs.stripe.com/connect/upcoming-requirements-updates.md#create-a-test-account),y, a continuación, configura los datos básicos de la empresa:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d business_type=company \
  -d "business_profile[mcc]"=5995 \
  -d "business_profile[url]"="https://accessible.stripe.com" \
  -d "company[name]=Test company" \
  -d "company[phone]=628123456787" \
  -d "company[address][line1]=address_full_match" \
  -d "company[address][city]=Madrid" \
  -d "company[address][postal_code]=28009" \
  -d "company[address][country]=ES" \
  -d "company[tax_id]=000000000"
```

Si especificas el número de ID fiscal `000000000`, se activará correctamente la verificación de la empresa. Para obtener otros resultados, consulta [Probar ID fiscales](https://docs.stripe.com/connect/testing.md#test-business-tax-ids) de la empresa.

A continuación, proporciona un representante.

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123/persons \
  -u sk_test_123: \
  -d "first_name=Adam" \
  -d "last_name=" \
  -d "dob[year]=1901" \
  -d "dob[month]=1" \
  -d "dob[day]=1" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=Madrid" \
  -d "address[postal_code]=28009" \
  -d "address[country]=ES" \
  -d "email=test@example.com" \
  -d "phone=%2B35366666666" \
  -d "nationality=ES" \
  -d "relationship[representative]=true" \
  -d "relationship[title]=CEO"
```

Una vez completado el proceso de verificación del representante, puedes ver los requisitos restantes con una solicitud GET:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123:
```

Los requisitos de la matriz r`requirements.currently_due` enumeran los detalles que necesitamos sobre los propietarios de la `cuenta`. La matriz `requirements.alternatives` puede incluir información opcional que puedes proporcionar para cumplir determinados requisitos. Por ejemplo:

```json
{
  "alternative_fields_due": [
    "company.owners_provided",
    "documents.proof_of_ultimate_beneficial_ownership.files",
    "owners.first_name",
    "owners.last_name"
  ],
  "original_fields_due": [
    "company.owners_provided",
    "owners.first_name",
    "owners.last_name"
  ]
}
```

Puedes proporcionar los campos enumerados en `alternative_fields_due` como otra forma de cumplir los requisitos en la lista `original_fields_due` correspondiente. En este ejemplo, `alternative_fields_due` incluye las propiedades de `original_fields_due`, además de `documents.proof_of_ultimate_beneficial_ownership.files`. Esto significa que la información original es obligatoria, pero también tienes la opción de proporcionar un documento que demuestre la propiedad efectiva final para ayudar a procesar la verificación.

Para cumplir los requisitos de propietario, crea dos personas y márcalas como propietarios. Los nombres de este ejemplo son valores codificados para cuentas de prueba que usan el número de ID fiscal `000000000`.

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123/persons \
  -u sk_test_123: \
  -d "first_name=Marie" \
  -d "last_name=Dupont" \
  -d "dob[year]=1901" \
  -d "dob[month]=1" \
  -d "dob[day]=1" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=Madrid" \
  -d "address[postal_code]=28009" \
  -d "address[country]=ES" \
  -d "email=owner@example.com" \
  -d "relationship[owner]=true"

curl https://api.stripe.com/v1/accounts/acct_test_123/persons \
  -u sk_test_123: \
  -d "first_name=Louis" \
  -d "last_name=Martin" \
  -d "dob[year]=1901" \
  -d "dob[month]=1" \
  -d "dob[day]=1" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=Madrid" \
  -d "address[postal_code]=28009" \
  -d "address[country]=ES" \
  -d "email=owner@example.com" \
  -d "relationship[owner]=true"
```

Indica que has creado todos los propietarios de la `cuenta` estableciendo `empresa.owners_provided` como verdadero:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d "company[owners_provided]=true"
```

Al completar esta solicitud, se eliminarán todos los requisitos del propietario de la `cuenta`.

### Prueba de respaldo para la verificación de documentos

Los requisitos de propietario de una `cuenta` permanecen en `currenty_due` (o en `pending_verification`, si la verificación está en curso) hasta que se completa correctamente.

Cuando la verificación falla, una de tus opciones es cargar un documento. Este ejemplo muestra cómo hacerlo utilizando la API.

Crea una cuenta de prueba siguiendo [las instrucciones anteriores](https://docs.stripe.com/connect/upcoming-requirements-updates.md#create-a-test-account) y, a continuación, establece los datos básicos de la empresa. Establece el número de ID fiscal en `222221001`, lo que provoca un error en la verificación del propietario. Para otros desencadenantes de resultados, véase [ ID fiscales de prueba para negocios](https://docs.stripe.com/connect/testing.md#test-business-tax-ids).

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d business_type=company \
  -d "business_profile[mcc]"=5995 \
  -d "business_profile[url]"="https://accessible.stripe.com" \
  -d "company[name]=Test company" \
  -d "company[phone]=628123456787" \
  -d "company[address][line1]=address_full_match" \
  -d "company[address][city]=Madrid" \
  -d "company[address][postal_code]=28009" \
  -d "company[address][country]=ES" \
  -d "company[tax_id]=222221001"
```

A continuación, indica un representante:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123/persons \
  -u sk_test_123: \
  -d "first_name=Marie" \
  -d "last_name=Dupont" \
  -d "dob[year]=1901" \
  -d "dob[month]=1" \
  -d "dob[day]=1" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=Madrid" \
  -d "address[postal_code]=28009" \
  -d "address[country]=ES" \
  -d "email=test@example.com" \
  -d "phone=%2B35366666666" \
  -d "nationality=ES" \
  -d "relationship[representative]=true" \
  -d "relationship[title]=CEO"
```

Luego, crea un propietario:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123/persons \
  -u sk_test_123: \
  -d "first_name=Adam" \
  -d "last_name=Smith" \
  -d "dob[year]=1901" \
  -d "dob[month]=1" \
  -d "dob[day]=1" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=Madrid" \
  -d "address[postal_code]=28009" \
  -d "address[country]=ES" \
  -d "email=owner@example.com" \
  -d "relationship[owner]=true"
```

Indica que has terminado de crear propietarios estableciendo `empresa.owners_provided` como verdadero:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d "company[owners_provided]=true"
```

Si examinas la `cuenta`, puedes ver que los requisitos de propietario se mantienen y que la matriz `requirements.errors` contiene una entrada con un `requisito` de `propietarios` y un `código` de `verification_failed_other`. Eso significa que Stripe no ha podido verificar a los propietarios utilizando la información proporcionada por la empresa.

> Si utilizas la versión beta pública de la API, el código de error es [verification_data_not_found](https://docs.stripe.com/changelog/clover/2025-10-29/accounts-verification-data-error.md) en lugar de `verification_failed_other`.

Si recibes este error para una `cuenta`, real, comprueba que has introducido los datos de la entidad jurídica correcta. En este ejemplo se supone que los datos son correctos y que debes proporcionar un documento para verificarlos.

En el caso de una `cuenta` real, [utiliza la API Files para cargar un documento](https://docs.stripe.com/file-upload.md) y, a continuación, actualiza la `cuenta` utilizando el token devuelto en la respuesta. Para este ejemplo, utiliza el token de prueba `file_relationship_document_success`. Para otros desencadenantes de resultados, véase[ Tokens de relación de documento de prueba](https://docs.stripe.com/connect/testing.md#test-relationship-document-tokens).

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d "documents[proof_of_ultimate_beneficial_ownership][files][]"=file_relationship_document_success
```

Unos momentos después de actualizar la `cuenta`, podrás obtener los requisitos actuales y ver que los requisitos del propietario se han eliminado.

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123:
```

### Prueba una empresa sin propietarios aplicables

Si una empresa no tiene propietarios con más del 25 % de participación, Stripe requiere la información de los directores. Este ejemplo muestra cómo proporcionar la información de los directores.

Crea una cuenta de prueba siguiendo [las instrucciones anteriores](https://docs.stripe.com/connect/upcoming-requirements-updates.md#create-a-test-account) y, a continuación, configura los datos básicos de la empresa. Establece el número de ID fiscal en `000000000`, lo que activa el éxito de la verificación empresa.

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d business_type=company \
  -d "business_profile[mcc]"=5995 \
  -d "business_profile[url]"="https://accessible.stripe.com" \
  -d "company[name]=Test company" \
  -d "company[phone]=628123456787" \
  -d "company[address][line1]=address_full_match" \
  -d "company[address][city]=Madrid" \
  -d "company[address][postal_code]=28009" \
  -d "company[address][country]=ES" \
  -d "company[tax_id]=000000000"
```

A continuación, indica un representante:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123/persons \
  -u sk_test_123: \
  -d "first_name=Marie" \
  -d "last_name=Dupont" \
  -d "dob[year]=1901" \
  -d "dob[month]=1" \
  -d "dob[day]=1" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=Madrid" \
  -d "address[postal_code]=28009" \
  -d "address[country]=ES" \
  -d "email=test@example.com" \
  -d "phone=%2B35366666666" \
  -d "nationality=ES" \
  -d "relationship[representative]=true" \
  -d "relationship[title]=CEO"
```

Para indicar que la empresa no tiene propietarios relevantes, establece `empresa.owners_provided` como verdadero sin crear ningún propietario. Para reutilizar una `cuenta` de prueba existente que tenga propietarios, puedes eliminar todos los propietarios existentes.

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d "company[owners_provided]=true"
```

La matriz `requirements.alternatives` contiene un conjunto de propiedades de director como alternativa a las propiedades de propietario. El proceso para crear un director es muy similar al proceso para crear un propietario:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123/persons \
  -u sk_test_123: \
  -d "first_name=Adam" \
  -d "last_name=Smith" \
  -d "dob[year]=1901" \
  -d "dob[month]=1" \
  -d "dob[day]=1" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=Madrid" \
  -d "address[postal_code]=28009" \
  -d "address[country]=ES" \
  -d "email=owner@example.com" \
  -d "relationship[director]=true" \
  -d "relationship[title]=President"
```

Indica que has terminado de crear directores estableciendo `empresa.directors_provided` como verdadero:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d "company[directors_provided]=true"
```

Para simular una verificación correcta de la relación, establece `empresa.name` en la cadena `match_name_relationships`:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d "company[name]=match_name_relationships"
```

### Otros casos de prueba

Las siguientes pruebas también son útiles:

- Una entidad del tipo `sin ánimo_de lucro`, que requiere la verificación del director (la verificación del beneficiario efectivo real no es una opción).
- Cumplimiento de los requisitos de verificación del director con un documento.
- Empresas del Reino Unido que requieren tanto la verificación del beneficiario efectivo final (UBO) como la verificación de los directores.

#### Programa - Brasil

*Última actualización: 1 de julio de 2026*

## Comprensión de los cambios en los requisitos de verificación

Para cumplir las normativas del Banco Central de Brasil (BCB) en virtud de la Circular BCB 3978/20, Stripe actualizará sus requisitos de verificación aplicables a los procesos Conocimiento del cliente (KYC), Conocimiento de la empresa (KYB) y los Beneficiarios efectivos finales (UBO).

Si tus cuentas conectadas operan en Brasil, es posible que tengas que actualizar tus flujos de onboarding y corrección. Si no realizas las actualizaciones necesarias, se interrumpirá el acceso de tus cuentas conectadas a los pagos y los servicios financieros.

## Elección de un enfoque de integración

Stripe recomienda usar onboarding alojado o integrado en Stripe para recopilar requisitos de verificación de empresas e identidad. Estas opciones requieren menos recursos de implementación y mantenimiento que usar la activación de API. La siguiente tabla describe las principales diferencias:

- [Onboarding alojado en Stripe](https://docs.stripe.com/connect/hosted-onboarding.md): (Recomendado) Envía cuentas a un flujo alojado en Stripe para enviar la información requerida.
- [Onboarding integrado](https://docs.stripe.com/connect/embedded-onboarding.md): (Recomendado) Integra componentes de onboarding proporcionados por Stripe que permiten a las cuentas enviar información directamente a Stripe desde tu aplicación.
- [Activación de API](https://docs.stripe.com/connect/api-onboarding.md): crea y gestiona un flujo de activación personalizado con las API de Stripe.

|  | **Activación alojada de Stripe** | **Activación integrada** | **Activación de API** |
| --- | --- | --- | --- |
| Opción recomendada para | Plataformas que quieren que Stripe gestione la activación | Plataformas que quieren un flujo de activación dentro de la aplicación con el logotipo de tu marca | Plataformas que necesitan control total y pueden crearlo y mantenerlo |
| Iniciativa inicial de implementación | 3 a 4 semanas de ingeniería | 3 a 4 semanas de ingeniería | 30-40 semanas de ingeniería |
| Esfuerzo continuo para abordar las actualizaciones de requisitos | Gestionada automáticamente por Stripe | Gestionada automáticamente por Stripe | Requiere una supervisión proactiva para los próximos cambios, además de recursos de ingeniería para actualizar el flujo de activación para cada cambio |
| Personalización | Interfaz alojada por Stripe con imágenes de marca de la plataforma | Componente altamente temático al que acceden las cuentas a través de la aplicación de la plataforma | La plataforma diseña, crea y mantiene la interfaz |
| Medidas para ser compatible con otros países | Gestionada automáticamente por Stripe | Gestionada automáticamente por Stripe | Requiere recursos de ingeniería para actualizar el flujo de activación de cada país adicional |

Obtén más información sobre las [opciones de onboarding de Connect](https://docs.stripe.com/connect/onboarding.md) y la [migración de tus flujos de Onboarding y corrección basados en API a flujos alojados o integrados](https://docs.stripe.com/connect/migrate-from-api-onboarding.md) en Stripe.

Las plataformas que utilizan el onboarding alojado o integrado de Stripe no necesitan modificar sus integraciones para adaptarse a estas actualizaciones de los requisitos, ya que Stripe se encarga de ello automáticamente. Las plataformas que utilizan el onboarding basado en API deben realizar un seguimiento activo de los cambios en los requisitos y destinar recursos de ingeniería a cada actualización.

## Resumen de la integración de API

Si tu plataforma utiliza un onboarding basado en API, debes actualizar tu integración para que se adapte a los siguientes cambios en las cuentas conectadas de Brasil:

- **KYC: Verificación de la identidad de las personas físicas**: recopilar el CPF, la fecha de nacimiento, la dirección y una prueba de que la persona está viva para todas las cuentas de particulares y los representantes de empresas.
- **KYB: Verificación de la identidad jurídica**: recopilar el CNPJ, el nombre de la empresa y el domicilio social de las personas jurídicas; gestionar la verificación programática y los flujos alternativos de verificación documental.
- **Estatus del registro del ID fiscal**: gestionar el estado del registro en caso de que el CPF o el CNPJ estén inactivos o no sean válidos.
- **Prueba de autorización**: verifica que el representante de la empresa esté autorizado para representar a la empresa; para solucionarlo mediante una comprobación programática o la declaración `company.representative_declaration`.
- **Verificación de UBO y de la relación**: comprueba que los propietarios (UBO) y los directores figuran en el registro CNPJ; para solucionarlo mediante la comparación programática de nombres, la subida de un documento o el proceso en cascada de propietario a director.
- **Capacidad financiera**: recopila los beneficios mensuales o los ingresos brutos.
- **Nuevos códigos de error**: gestionar los nuevos códigos de error de verificación que aparecen en la matriz `requirements.errors`.

## KYC: Verificación de identidad de particulares

Stripe está reforzando la verificación de identidad para las cuentas de particulares en Brasil con el fin de cumplir los requisitos del Banco Central de Brasil (BCB). Las cuentas conectadas que pertenezcan a particulares y a representantes de cuentas de personas jurídicas deben ser verificadas; es posible que deban proporcionar información adicional como parte de la activación.

Las siguientes personas deben proporcionar información KYC verificable:

- **Representante de la empresa**: el particular que firma las Condiciones de servicio y es legalmente responsable de la cuenta.
- **Propietarios**: los propietarios de las entidades jurídicas (cuando corresponda).

Stripe utiliza una combinación de datos introducidos manualmente y revisión de documentos para verificar la identidad de cada persona. Además, la normativa brasileña exige una comprobación de vitalidad (`proof_of_liveness`) para confirmar que la persona que presenta los documentos de identidad se encuentra físicamente presente. Los flujos de onboarding alojados e integrados de Stripe gestionan este paso automáticamente. Si tu plataforma utiliza un onboarding basado en API, debes redirigir a los usuarios a un paso de verificación alojado por Stripe o integrar el componente incrustado `<stripe-connect-kyc-details>` para completar la recopilación de datos de verificación de vida. Consulta [Gestionar los requisitos de verificación de vida](https://docs.stripe.com/connect/api-onboarding.md?accounts-namespace=v1&liveness=hosted#proof-of-liveness) para obtener más detalles.

**Requisitos de edad:** los representantes de la empresa deben tener 18 años o más. Los propietarios, directores y responsables deben tener 18 años o más. A los nuevos usuarios que no cumplan estos requisitos no se les habilitarán las funciones. Se realizará el offboarding de las cuentas existentes con un representante de la empresa menor de 18 años de forma inmediata cuando se migre su plataforma.

### Campos obligatorios

Las cuentas de particulares brasileñas ahora requieren los siguientes campos:

| Campo | Descripción |
| --- | --- |
| `person.first_name`, `person.last_name` | Nombre legal completo. |
| `person.id_number` | CPF (ID fiscal del contribuyente brasileño particular). |
| `person.address.line1`, `.city`, `.postal_code`, `.country` | Dirección residencial en Brasil. Todos los representantes de la empresa deben ser residentes en Brasil y facilitar una dirección en Brasil. |
| `person.dob.day`, `.month`, `.year` | Fecha de nacimiento. |
| `person.verification.proof_of_liveness` | Selfie de prueba de vida. (Solo para flujos de activación integrados y alojados en Stripe). |
| `person.verification.additional_document` | Requisito de documento opcional cuando falla la verificación de dirección introducida manualmente. |

Asegúrate de que tu interfaz de usuario recopile específicamente el CPF; no aceptamos otros tipos de identificación (números de pasaporte, números de identificación fiscal extranjeros) para las cuentas brasileñas.

### Respuesta de requisitos inicial

Cuando se crea una nueva cuenta particular, el hash de `requisitos` incluirá:

```json
{
  "currently_due": [
    "person.first_name",
    "person.last_name",
    "person.id_number",
    "person.dob.day",
    "person.dob.month",
    "person.dob.year",
    "person.address.line1",
    "person.address.city",
    "person.address.state",
    "person.address.country",
    "person.verification.proof_of_liveness"
  ],
  "pending_verification": [],
  "alternatives": [
    {
      "original_fields_due": ["person.address.line1", "person.address.city", "person.address.state", "person.address.country"],
      "alternative_fields_due": ["person.verification.additional_document"]
    }
  ],
  "errors": []
}
```

### Recopilación de datos personales

Utiliza la API Persons para enviar campos particulares:

```shell
curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}}/persons/{{PERSON_ID}} \
  -u "{{PLATFORM_SECRET_KEY}}:" \
  -d "first_name=Maria" \
  -d "last_name=Silva" \
  -d "id_number=123.456.789-09" \
  -d "dob[day]=15" \
  -d "dob[month]=6" \
  -d "dob[year]=1985" \
  -d "address[line1]=Rua das Flores, 123" \
  -d "address[city]=São Paulo" \
  -d "address[state]=SP" \
  -d "address[postal_code]=01310-100" \
  -d "address[country]=BR"
```

### Manejo de errores

| Código de error | Activar | Corrección |
| --- | --- | --- |
| `verification_failed_id_number_inactive` | CPF encontrado, pero el estatus es inactivo (por ejemplo, suspendido, cancelado, fallecido). | Los usuarios deben resolver el estatus del CPF con la Secretaría de Ingresos Federales de Brasil (Receita Federal). En el caso de las cuentas con un estatus de CPF cancelado, nulo o de persona fallecida, es posible que Stripe deshabilite sus funciones. |
| `verification_failed_keyed_match` | Tanto la consulta programática como la revisión manual no lograron verificar el CPF. | El usuario vuelve a enviar el CPF y el documento de identidad; la cuenta entra en la cola MVR. |
| `verification_document_type_not_supported` | El documento subido no es del tipo adecuado, procede de un país incorrecto o es ilegible. | El usuario vuelve a cargar un documento de identidad expedido por el gobierno de Brasil aceptable. |

## Verificación de entidad jurídica para KYB

Stripe está actualizando los requisitos de verificación de empresas para las personas jurídicas en Brasil con el fin de cumplir con la normativa de prevención del blanqueo de capitales del Banco Central de Brasil (BCB). Este tipo de verificación se enmarca en la categoría general de requisitos de Conocimiento de la empresa (KYB). Si entre tus cuentas conectadas hay empresas constituidas en Brasil, es posible que deban proporcionar información adicional durante la activación.

Stripe verifica las personas jurídicas mediante el CNPJ (Cadastro Nacional da Pessoa Jurídica), el número de registro nacional de empresas de Brasil, junto con el nombre de la empresa y el domicilio social. En primer lugar, Stripe intenta realizar una verificación automática cotejando los datos con el registro del CNPJ del Gobierno brasileño. Si la información introducida no coincide, el titular de la cuenta puede cumplir con este requisito subiendo un documento de verificación de la empresa (como un certificado del CNPJ expedido por la Receita Federal).

Además de la verificación de identidad, la normativa brasileña de prevención del blanqueo de capitales exige a Stripe que evalúe la capacidad financiera de una cuenta conectada antes de habilitar los cobros y los pagos. Todas las cuentas brasileñas deben facilitar sus ingresos mensuales estimados antes de que se activen las funciones. Esta información se utiliza únicamente con fines de supervisión reglamentaria, y no la verificamos de forma independiente durante el onboarding.

### Campos obligatorios

Los siguientes campos son obligatorios para las cuentas de entidades jurídicas brasileñas:

| Campo | Descripción |
| --- | --- |
| `company.tax_id` | CNPJ (número de registro de empresa de Brasil de 14 dígitos). |
| `company.name` | Nombre legal de la empresa: debe coincidir con el registro CNPJ. |
| `company.address.line1`, `.city`, `.postal_code` | Dirección registrada de la empresa en Brasil. |
| `company.verification.document` | Opcional al principio; obligatorio si falla la verificación programática. |
| `business_profile.monthly_estimated_revenue.amount` | Ingresos brutos mensuales en BRL. |
| `business_profile.monthly_estimated_revenue.currency` | Debe ser en `brl`. |

### Respuesta de requisitos inicial

```json
{
  "currently_due": [
    "company.tax_id",
    "company.name",
    "company.address.line1",
    "company.address.city",
    "company.address.postal_code",
    "business_profile.monthly_estimated_revenue.amount",
    "business_profile.monthly_estimated_revenue.currency"
  ],
  "pending_verification": [],
  "alternatives": [
    {
      "original_fields_due": [
        "company.tax_id",
        "company.name",
        "company.address.line1",
        "company.address.city",
        "company.address.postal_code"
      ],
      "alternative_fields_due": [
        "company.tax_id",
        "company.name",
        "company.address.line1",
        "company.address.city",
        "company.address.postal_code",
        "company.verification.document"
      ]
    }
  ],
  "errors": []
}
```

La matriz `alternatives` indica que, si falla la verificación programática del CNPJ, la plataforma puede resolverlo proporcionando además un `company.verification.document`.

### Recopilación de datos de la empresa

```shell
curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \
  -u "{{PLATFORM_SECRET_KEY}}:" \
  -d "company[tax_id]=12.345.678/0001-99" \
  -d "company[name]=Empresa Exemplo Ltda" \
  -d "company[address][line1]=Avenida Paulista, 1000" \
  -d "company[address][city]=São Paulo" \
  -d "company[address][postal_code]=01310-100" \
  -d "company[address][country]=BR" \
  -d "business_profile[monthly_estimated_revenue][amount]=5000000" \
  -d "business_profile[monthly_estimated_revenue][currency]=brl"
```

Tras enviar el ID fiscal, el nombre y la dirección de la empresa, los requisitos pasan a `pending_verification` mientras Stripe comprueba los datos en el registro del CNPJ:

```json
{
  "currently_due": [],
  "pending_verification": [
    "company.tax_id",
    "company.name",
    "company.address.line1",
    "company.address.city",
    "company.address.postal_code"
  ],
  "alternatives": [],
  "errors": []
}
```

Espera a recibir el webhook `account.updated` antes de continuar. Si la verificación se realiza correctamente, todos los campos se borrarán de los requisitos. Si la verificación falla, consulta la sección sobre gestión de errores que aparece a continuación.

### Estatus de registro del ID fiscal

Además de cotejar el CNPJ con los registros mercantiles, Stripe comprueba el estatus de registro del CNPJ (y del CPF del representante de la empresa) con los registros del Gobierno brasileño. No es posible modificar el ID fiscal una vez que se ha configurado.

| Tipo de entidad jurídica | Aprobado | Error | Baja inmediata obligatoria |
| --- | --- | --- | --- |
| Particulares (CPF) | Normal | Suspendida, Pendiente de regularización | Cancelada, Nula, Fallecida |
| Entidades jurídicas (CNPJ) | Activo (Ativa), Pendiente de regularización (Ativa não regular) | Suspendida (Suspensa) | Disuelta (Baixada), Cancelada (Baixada), Inapta (Inapta), Nula (Nula), Con domicilio en el extranjero |

Las cuentas con un CPF o CNPJ suspendido se consideran válidas en el momento del onboarding, pero se espera que resuelvan su estatus en un plazo aproximado de 30 días. Si no se resuelve, limitaremos las funciones de pago. A las cuentas con estatus que requieren la baja (canceladas, nulas, fallecidas, disueltas, no aptas) se les desactivan todas las funciones de forma inmediata y no pueden subsanarse mediante la carga de documentos.

### Capacidad financiera

La normativa brasileña de prevención del blanqueo de capitales exige a Stripe que recopile la capacidad financiera estimada de una cuenta conectada antes de habilitar los cobros y los pagos. Esto se aplica a todas las cuentas brasileñas, tanto de particulares como de personas jurídicas.

`monthly_estimated_revenue.amount` se expresa en la unidad de divisas más pequeña (centavos). Por ejemplo, 50 000 BRL = `5 000 000`. Recopilamos estos valores únicamente con fines de seguimiento normativo y no los verificamos de forma independiente durante el onboarding.

### Manejo de errores

| Código de error | Activar | Corrección |
| --- | --- | --- |
| `verification_failed_keyed_match` | No se ha encontrado el CNPJ, o bien el nombre de la empresa o la dirección no coinciden con los datos del registro del CNPJ. | Vuelve a introducir el nombre legal correcto y la dirección registrada, o carga `company.verification.document`. |
| `verification_failed_id_number_status_not_found` | Se ha encontrado el CNPJ, pero no se ha podido recuperar el estatus fiscal. | Vuelve a enviar o carga un documento de verificación de la empresa. |
| `verification_failed_id_number_inactive` | Se ha encontrado el CNPJ, pero su estatus es inactivo (por ejemplo, suspendido o disuelto). | En caso de estatus suspendido, la cuenta tiene un período de gracia para resolver su situación con Receita Federal. En caso de estatus disuelto, cancelado, inapto o nulo, la cuenta será dada de baja; no es posible resolverlo mediante la carga de documentos. |
| `verification_document_type_not_supported` | El documento de la empresa que se ha subido es ilegible o no es del tipo adecuado. | Vuelve a cargar un documento de verificación de la empresa aceptable. |
| `verification_document_name_mismatch` | El nombre de la empresa que figura en el documento no coincide con el nombre introducido. | Vuelve a introducir el nombre legal exactamente como aparece en el certificado CNPJ. |
| `verification_document_id_number_mismatch` | El ID fiscal del documento no coincide con el CNPJ introducido, o el estatus del ID fiscal no se encuentra o está inactivo. | Vuelve a subir un certificado CNPJ actualizado de la Receita Federal. |
| `verification_document_address_mismatch` | La dirección del documento no coincide con la dirección introducida. | Vuelve a introducir la dirección para que coincida con la dirección registrada en el certificado CNPJ. |

## Justificante de autorización

Todas las cuentas que no sean de `individual` de Brasil requieren la verificación Justificante de autorización (PoA). Esto confirma que el representante de la empresa está autorizado para actuar en nombre de la misma.

En primer lugar, Stripe intenta llevar a cabo la verificación programática comprobando el nombre del representante en el registro CNPJ. Si el nombre del representante coincide con el de una persona autorizada en el registro, la verificación se aprueba automáticamente y no es necesaria ninguna otra acción. Si la verificación programática falla, el representante debe enviar la declaración `company.representative_declaration`.

### Alternativa de los requisitos iniciales

En el caso de una `cuenta` de empresa, la matriz [alternatives](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-alternatives) contiene los campos obligatorios para la declaración del representante:

```json
{
  "alternatives": [
    {
      "original_fields_due": ["representative.first_name", "representative.last_name"],
      "alternative_fields_due": [
        "company.representative_declaration.date",
        "company.representative_declaration.ip",
        "representative.first_name",
        "representative.last_name"
      ]
    }
  ]
}
```

Si el intento inicial de Stripe de verificar `representative.first_name` y `representative.last_name` falla, la plataforma o la cuenta deberán proporcionar la fecha y la dirección IP de la declaración del representante. También siguen siendo obligatorios el nombre y los apellidos (que aparecen tanto en `original_fields_due` como en `alternative_fields_due`).

### Estado de error cuando falla la verificación programática

Si el nombre proporcionado no coincide con el registro CNPJ, la matriz [requirements.errors](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-errors) contiene requisitos específicos de `Person` con códigos de error `verification_failed_representative_authority`. Además, la matriz `alternatives` se actualiza para hacer referencia al ID de `Person` en `original_fields_due`:

```json
{
  "errors": [
    { "requirement": "people.{{PERSON_ID}}.first_name", "code": "verification_failed_representative_authority" },
    { "requirement": "people.{{PERSON_ID}}.last_name", "code": "verification_failed_representative_authority" }
  ],
  "alternatives": [
    {
      "original_fields_due": [
        "company.name",
        "company.tax_id",
        "people.{{PERSON_ID}}.first_name",
        "people.{{PERSON_ID}}.last_name"
      ],
      "alternative_fields_due": [
        "company.representative_declaration.date",
        "company.representative_declaration.ip"
      ]
    },
    {
      "original_fields_due": ["company.owners_provided", "owners.first_name", "owners.last_name"],
      "alternative_fields_due": [
        "company.directors_provided",
        "company.owners_provided",
        "directors.first_name",
        "directors.last_name"
      ]
    },
    {
      "original_fields_due": ["company.owners_provided", "owners.first_name", "owners.last_name"],
      "alternative_fields_due": [
        "company.directors_provided",
        "company.owners_provided",
        "directors.first_name",
        "directors.last_name",
        "documents.proof_of_registration.files"
      ]
    },
    {
      "original_fields_due": ["company.owners_provided", "owners.first_name", "owners.last_name"],
      "alternative_fields_due": [
        "company.owners_provided",
        "documents.proof_of_ultimate_beneficial_ownership.files",
        "owners.first_name",
        "owners.last_name"
      ]
    }
  ]
}
```

### Envía la declaración del representante

Para solucionarlo una verificación de PoA programática fallida, proporciona la declaración del representante:

```shell
curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \
  -u "{{PLATFORM_SECRET_KEY}}:" \
  -d "company[representative_declaration][date]={{UNIX_TIMESTAMP}}" \
  -d "company[representative_declaration][ip]={{USER_IP_ADDRESS}}" \
  -d "company[representative_declaration][user_agent]={{USER_AGENT}}"
```

El campo `date` es una marca de tiempo de Unix que representa el momento en que el representante aceptó la declaración. El campo `ip` es la dirección IP del representante en ese momento. El campo `user_agent` es opcional, pero recomendado.

Una vez proporcionada la declaración, los errores de PoA desaparecen y la cuenta puede continuar con los requisitos restantes (como la verificación de UBO).

### Manejo de errores

| Código de error | Activar | Corrección |
| --- | --- | --- |
| `verification_failed_representative_authority` | El nombre del representante no coincide con ninguna persona autorizada del registro CNPJ. | Envía `company.representative_declaration` con `date` (marca de tiempo de Unix) y `ip` (dirección IP del representante) para certificar la autorización. |

## Verificación de UBO y relación

La normativa en materia de AML brasileña (Circular BCB 3978/20) exige que se identifique y verifique que los propietarios (UBO) y directores de las entidades jurídicas figuran legalmente en el registro CNPJ.

### Ámbito de la normativa

Los siguientes tipos de empresa están sujetos a la normativa en materia de AML:

| Tipo de verificación | Estructuras empresariales |
| --- | --- |
| Verificación del propietario (UBO) | Sociedad de responsabilidad limitada (MMLLC), sociedad anónima privada, sociedad colectiva privada |
| Verificación del director | Sociedad anónima, ente público, organización sin ánimo de lucro |
| Fuera del ámbito de aplicación | Particulares, empresas unipersonales (MEI) |

### Recopila la información en orden

Recopila primero la información del propietario (UBO). En caso de que la cuenta no tenga propietarios, como cuando todos los accionistas son entidades jurídicas en lugar de personas físicas, deberás recopilar la información del director. Esta lógica de cascada ayuda a Stripe a verificar la propiedad efectiva de la cuenta en el orden más eficiente.

### Cómo funciona la verificación

Stripe recomienda que proporciones los propietarios y directores de la siguiente manera:

1. **Rellenado automático mediante programación** (Private preview): Una vez completada la verificación KYB, puedes obtener los nombres de los titulares o de los directores a través de la API de rellenado automático. Si proporcionas personas cuyos nombres coincidan, la verificación se aprobará mediante coincidencia unidireccional. Consulta [Rellenado automático de la información del titular y del director](https://docs.stripe.com/connect/upcoming-requirements-updates.md#prefill-owner-and-director-information) y crea tu cuenta.
2. **Alternativa de documento**: si los nombres rellenados previamente no coinciden, sube `documents.proof_of_ultimate_beneficial_ownership` (para propietarios) o `documents.proof_of_registration` (para directores).
3. **Proceso en cascada de director**: si no se pueden verificar los propietarios (por ejemplo, si todos los propietarios son entidades jurídicas en lugar de particulares), para solucionarlo mediante `company.directors_provided` y personas con el cargo de director.

### Campos de personas obligatorios

| Campo | Descripción |
| --- | --- |
| `person.first_name`, `person.last_name` | Nombre legal completo (debe coincidir con el registro CNPJ para la verificación programática). |
| `person.id_number` | CPF (ID fiscal del contribuyente brasileño particular). |
| `person.dob.day`, `.month`, `.year` | Fecha de nacimiento. |
| `person.address.line1`, `.city`, `.state`, `.postal_code` | Dirección de residencia de Brasil. |
| `person.email` | Dirección de correo electrónico. |
| `person.political_exposure` | Declaración de exposición política (`none` o `existing`). |
| `person.relationship.owner` o `person.relationship.director` | Función en la cuenta (`owner` para los UBO, `director` para los directores). |
| `person.relationship.percent_ownership` | Opcional; si se omite, se considera a la persona un UBO (umbral >25 %). |

### Alternativas a los requisitos iniciales para una empresa

Cuando se crea una cuenta de empresa, la matriz `requirements.alternatives` incluye alternativas para los tres procesos de verificación (proceso en cascada de director, proceso en cascada de director + documento, subida de documento del propietario):

```json
{
  "currently_due": [
    "company.owners_provided",
    "owners.first_name",
    "owners.last_name",
    "owners.id_number",
    "owners.dob.day",
    "owners.dob.month",
    "owners.dob.year",
    "owners.address.line1",
    "owners.address.city",
    "owners.address.state",
    "owners.address.postal_code",
    "owners.email",
    "owners.political_exposure"
  ],
  "alternatives": [
    {
      "original_fields_due": ["company.owners_provided", "owners.first_name", "owners.last_name"],
      "alternative_fields_due": [
        "company.directors_provided",
        "company.owners_provided",
        "directors.first_name",
        "directors.last_name"
      ]
    },
    {
      "original_fields_due": ["company.owners_provided", "owners.first_name", "owners.last_name"],
      "alternative_fields_due": [
        "company.directors_provided",
        "company.owners_provided",
        "directors.first_name",
        "directors.last_name",
        "documents.proof_of_registration.files"
      ]
    },
    {
      "original_fields_due": ["company.owners_provided", "owners.first_name", "owners.last_name"],
      "alternative_fields_due": [
        "company.owners_provided",
        "documents.proof_of_ultimate_beneficial_ownership.files",
        "owners.first_name",
        "owners.last_name"
      ]
    }
  ]
}
```

Las tres alternativas representan formas distintas de satisfacer el requisito de verificación de propietario:

- **Proceso en cascada de director**: en lugar de verificar a los propietarios, proporciona los directores (`company.directors_provided`, `directors.first_name`, `directors.last_name`).
- **Proceso en cascada de director + documento**: proporciona los directores y sube un archivo `documents.proof_of_registration`.
- **Subida de documento de propietario**: proporciona los nombres de los propietarios y sube un archivo `documents.proof_of_ultimate_beneficial_ownership`.

### Rellenado automático de la información del titular y del director (Private preview)

Si lo deseas, puedes integrarte con una API que detecta y rellena mediante programación los propietarios o directores asociados a una entidad jurídica. La cuenta conectada puede verificar la relación confirmando la información detectada en lugar de mediante la carga de documentos.

Este proceso puede aumentar las tasas de verificación y reducir las fricciones, pero no funciona para todas las cuentas. Aún es necesario gestionar la carga de documentos o el proceso en cascada de director para aquellas cuentas en las que Stripe no puede rellenar previamente sus relaciones.

Si te interesa rellenar automáticamente la verificación de propietario o directores, crea tu cuenta a continuación.

### ¿Te interesa obtener acceso anticipado al rellenado automático del UBO/director en Stripe?

Enter your email to request access.

```bash
curl https://docs.stripe.com/preview/register \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Referer: https://docs.stripe.com/connect/upcoming-requirements-updates" \
  -d '{"email": "EMAIL", "preview": "risk_requirements_beta_preview"}'
```

### Coincidencia de propietario programática

Crea personas como propietarias con nombres que coincidan con los del registro del CNPJ y después confirma que se han facilitado los datos de los propietarios. Si el nombre del propietario coincide, la verificación se supera mediante programación. Si lo deseas, puedes utilizar la [API de relleno automático](https://docs.stripe.com/connect/upcoming-requirements-updates.md#prefill-owner-and-director-information) (Private preview) para obtener nombres sugeridos antes de crear las personas.

```shell
# Create owner with matching name
curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}}/persons \
  -u "{{PLATFORM_SECRET_KEY}}:" \
  -d "first_name=Maria" \
  -d "last_name=Santos" \
  -d "id_number=123.456.789-09" \
  -d "dob[day]=15" \
  -d "dob[month]=6" \
  -d "dob[year]=1985" \
  -d "address[line1]=Rua das Flores, 123" \
  -d "address[city]=São Paulo" \
  -d "address[state]=SP" \
  -d "address[postal_code]=01310-100" \
  -d "email=maria@example.com" \
  -d "political_exposure=none" \
  -d "relationship[owner]=true" \
  -d "relationship[percent_ownership]=26"

# Confirm owners provided
curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \
  -u "{{PLATFORM_SECRET_KEY}}:" \
  -d "company[owners_provided]=true"
```

Si el nombre del propietario coincide con el del registro, la verificación se aprobará mediante programación.

### Carga de documentos de propietario

Si el nombre del propietario no coincide con el del registro del CNPJ (o si la verificación programática no está activada), aparecerá el error `verification_missing_owners`. Sube un justificante del documento de UBO para solucionarlo:

```shell
# 1. Upload the relationship document
curl https://files.stripe.com/v1/files \
  -u "{{PLATFORM_SECRET_KEY}}:" \
  -F "file=@/path/to/ownership_document.pdf" \
  -F "purpose=account_requirement"

# 2. Attach to account
curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \
  -u "{{PLATFORM_SECRET_KEY}}:" \
  -d "documents[proof_of_ultimate_beneficial_ownership][files][0]={{FILE_ID}}"
```

### Proceso en cascada de director

Si el propietario no se puede verificar (por ejemplo, todos los accionistas son entidades jurídicas), indícanos los directores para solucionarlo:

```shell
# Create director person
curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}}/persons \
  -u "{{PLATFORM_SECRET_KEY}}:" \
  -d "first_name=Carlos" \
  -d "last_name=Oliveira" \
  -d "id_number=987.654.321-00" \
  -d "dob[day]=20" \
  -d "dob[month]=3" \
  -d "dob[year]=1978" \
  -d "address[line1]=Av Brasil, 500" \
  -d "address[city]=Rio de Janeiro" \
  -d "address[state]=RJ" \
  -d "address[postal_code]=20040-020" \
  -d "email=carlos@example.com" \
  -d "political_exposure=none" \
  -d "relationship[director]=true"

# Confirm directors and owners provided
curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \
  -u "{{PLATFORM_SECRET_KEY}}:" \
  -d "company[directors_provided]=true" \
  -d "company[owners_provided]=true"
```

### Documentos aceptados

Los documentos de propiedad que se aceptan dependen de si la estructura de propiedad es simple (todos los accionistas son particulares) o compleja (al menos un accionista es una entidad jurídica):

#### Estructuras de propiedad simples

Sube un *contrato social* o un *estatuto social*. El documento debe contener lo siguiente:

- Nombre y CNPJ de la entidad jurídica
- Nombre completo y CPF (o fecha de nacimiento de los no residentes) de cada uno de los accionistas
- Porcentajes de propiedad
- Firmas
- Sello del registro mercantil (Junta Comercial)

#### Estructuras de propiedad complejas

Descarga la plantilla de atestado de Stripe ([plantilla de UBO](https://docs.stripecdn.com/6e82842bfc01bd0b1c46d77f7d46b69673a9ca965ed2ad9ef53139f98abdbbaf.pdf) o [plantilla de directores](https://docs.stripecdn.com/715ffef45157ff700bc368a4011659ee23bc8ba3c68746c5c15948a6eee1591f.pdf)); a continuación, rellénala y súbela. Las empresas con niveles intermedios (sociedades de cartera o de gestión de fondos, subsidiarias) que separan los beneficiarios efectivos de la entidad operativa deben seguir este proceso.

### Manejo de errores

| Código de error | Activar | Corrección |
| --- | --- | --- |
| `verification_missing_owners` | Los nombres de los propietarios que se han indicado no coinciden con ningún propietario del registro del CNPJ. | Añade a personas cuyos nombres coincidan con los del registro o sube `documents.proof_of_ultimate_beneficial_ownership`. |
| `verification_missing_directors` | Los nombres de los directores que se han indicado no coinciden con ningún director del registro del CNPJ. | Añade a personas cuyos nombres coincidan con los del registro o sube `documents.proof_of_registration`. |
| `verification_data_not_found` | No se han podido recuperar datos de propietario ni de director en el registro del CNPJ para esta entidad. | Sube `documents.proof_of_ultimate_beneficial_ownership` (para propietarios) o `documents.proof_of_registration` (para directores). |
| `verification_document_type_not_supported` | El documento de relación que se ha subido es ilegible o no es del tipo adecuado. | Sube un documento válido (contrato social, estatuto social o la plantilla de atestado de Stripe). |

## Pruebas

Utiliza los [entornos de prueba](https://docs.stripe.com/connect/testing.md) para verificar que tu integración gestiona todos los estados de KYC/KYB.

### Prueba: KYC válido (particular)

```shell
# Create test account
curl https://api.stripe.com/v1/accounts \
  -u "{{TEST_SECRET_KEY}}:" \
  -H "Stripe-Version: 2026-03-25.dahlia;experimental_onboarding_preview=v2" \
  -d "type=custom" \
  -d "country=BR" \
  -d "capabilities[transfers][requested]=true"

# Submit person data (use test CPF: 000.000.001-91 for success)
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons/{{PERSON_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "first_name=Maria" \
  -d "last_name=Silva" \
  -d "id_number=000.000.001-91" \
  -d "dob[day]=15" \
  -d "dob[month]=6" \
  -d "dob[year]=1985" \
  -d "address[line1]=Rua das Flores, 123" \
  -d "address[city]=São Paulo" \
  -d "address[state]=SP" \
  -d "address[postal_code]=01310-100" \
  -d "address[country]=BR"
```

Para completar las pruebas de validación del KYC, una `proof_of_liveness` sigue siendo necesaria. Consulta [Cómo gestionar los requisitos de prueba de vida](https://docs.stripe.com/connect/api-onboarding.md?accounts-namespace=v1&liveness=hosted#proof-of-liveness) para obtener más detalles.

### Prueba: CPF inactivo (`verification_document_id_number_mismatch`)

```shell
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons/{{PERSON_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "id_number=000.000.002-00"
```

Error esperado en los requisitos:

```json
{
  "code": "verification_document_id_number_mismatch",
  "reason": "",
  "requirement": "person.id_number"
}
```

### Prueba: KYB válido (entidad jurídica)

```shell
# Create test company account
curl https://api.stripe.com/v1/accounts \
  -u "{{TEST_SECRET_KEY}}:" \
  -H "Stripe-Version: 2026-03-25.dahlia;experimental_onboarding_preview=v2" \
  -d "type=custom" \
  -d "country=BR" \
  -d "business_type=company" \
  -d "capabilities[transfers][requested]=true"

# Submit company data (use test CNPJ: 00.000.000/0001-91 for success)
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "company[tax_id]=00.000.000/0001-91" \
  -d "company[name]=Empresa Teste Ltda" \
  -d "company[address][line1]=Avenida Paulista, 1000" \
  -d "company[address][city]=São Paulo" \
  -d "company[address][postal_code]=01310-100" \
  -d "company[address][country]=BR" \
  -d "business_profile[monthly_estimated_revenue][amount]=5000000" \
  -d "business_profile[monthly_estimated_revenue][currency]=brl"
```

### Prueba: error de coincidencia de CNPJ introducido (`verification_failed_keyed_match`)

```shell
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "company[tax_id]=00.000.000/0002-00" \
  -d "company[name]=Wrong Name Ltda"
```

Errores esperados en los requisitos:

```json
[
  { "code": "verification_failed_keyed_match", "requirement": "company.tax_id" },
  { "code": "verification_failed_keyed_match", "requirement": "company.name" },
  { "code": "verification_failed_keyed_match", "requirement": "company.address.line1" }
]
```

Resuelve el problema subiendo un documento de verificación de la empresa:

```shell
# 1. Upload CNPJ certificate PDF
curl https://files.stripe.com/v1/files \
  -u "{{TEST_SECRET_KEY}}:" \
  -F "file=@/path/to/cnpj_certificate.pdf" \
  -F "purpose=account_requirement"

# 2. Attach to account
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "company[verification][document][front]={{FILE_ID}}"
```

### Prueba: Éxito programático de PoA

Usa `match_representative` como nombre del representante, junto con un CNPJ no mágico. El proveedor de la prueba devuelve una coincidencia satisfactoria y no se requiere ninguna certificación.

```shell
# Create company account
curl https://api.stripe.com/v1/accounts \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "type=custom" \
  -d "country=BR" \
  -d "business_type=company" \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=123456789" \
  -d "company[name]=Empresa Teste Ltda" \
  -d "company[address][line1]=address_full_match" \
  -d "company[address][city]=São Paulo" \
  -d "company[address][state]=SP" \
  -d "company[address][postal_code]=01310-100" \
  -d "capabilities[card_payments][requested]=true"

# Create representative with magic first_name
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "first_name=match_representative" \
  -d "last_name=Silva" \
  -d "id_number=000000000" \
  -d "dob[day]=1" \
  -d "dob[month]=1" \
  -d "dob[year]=1901" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=São Paulo" \
  -d "address[state]=SP" \
  -d "address[postal_code]=01310-100" \
  -d "email=rep@example.com" \
  -d "political_exposure=none" \
  -d "relationship[representative]=true" \
  -d "relationship[title]=CEO"
```

Previsto: no hay errores `verification_failed_representative_authority`. El PoA se aprueba mediante programación. Solo quedan los requisitos de UBO.

### Prueba: Fallo de PoA programático con la alternativa de certificación

Usa `mismatch_representative` como nombre del representante. La comprobación programática falla y los campos del nombre de la persona tienen errores `verification_failed_representative_authority`.

```shell
# Create company account
curl https://api.stripe.com/v1/accounts \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "type=custom" \
  -d "country=BR" \
  -d "business_type=company" \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=000000000" \
  -d "company[name]=Empresa Teste Ltda" \
  -d "company[address][line1]=address_full_match" \
  -d "company[address][city]=São Paulo" \
  -d "company[address][state]=SP" \
  -d "company[address][postal_code]=01310-100" \
  -d "capabilities[card_payments][requested]=true"

# Create representative with mismatch magic first_name
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "first_name=mismatch_representative" \
  -d "last_name=Silva" \
  -d "id_number=000000000" \
  -d "dob[day]=1" \
  -d "dob[month]=1" \
  -d "dob[year]=1901" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=São Paulo" \
  -d "address[state]=SP" \
  -d "address[postal_code]=01310-100" \
  -d "email=rep@example.com" \
  -d "political_exposure=none" \
  -d "relationship[representative]=true" \
  -d "relationship[title]=CEO"
```

Errores esperados en los requisitos:

```json
[
  { "code": "verification_data_not_found", "requirement": "directors.first_name" },
  { "code": "verification_data_not_found", "requirement": "directors.last_name" },
  { "code": "verification_data_not_found", "requirement": "owners.first_name" },
  { "code": "verification_data_not_found", "requirement": "owners.last_name" },
  { "code": "verification_failed_representative_authority", "requirement": "people.{{PERSON_ID}}.first_name" },
  { "code": "verification_failed_representative_authority", "requirement": "people.{{PERSON_ID}}.last_name" }
]
```

Los errores `verification_data_not_found` se producen porque el registro del CNPJ no ha devuelto ningún dato sobre el UBO para el CNPJ de prueba. Para solucionarlo, envía la declaración del representante:

```shell
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "company[representative_declaration][date]=1772226508" \
  -d "company[representative_declaration][ip]=162.211.155.69"
```

Tras su envío, los errores de PoA se borran y solo quedan los requisitos de UBO.

### Prueba: Cumplir los requisitos mediante la coincidencia programática de propietario

Usa el CNPJ `222221003` para desencadenar el error `verification_missing_owners`. Para resolverlo, crea un propietario con un nombre que coincida con el registro del CNPJ. De forma opcional, puedes utilizar la [API de rellenado automático](https://docs.stripe.com/connect/upcoming-requirements-updates.md#prefill-owner-and-director-information) (Private preview) para obtener los nombres esperados.

```shell
# Create company with magic CNPJ for missing owners
curl https://api.stripe.com/v1/accounts \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "type=custom" \
  -d "country=BR" \
  -d "business_type=company" \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=222221003" \
  -d "company[name]=Empresa Teste Ltda" \
  -d "company[address][line1]=address_full_match" \
  -d "company[address][city]=São Paulo" \
  -d "company[address][state]=SP" \
  -d "company[address][postal_code]=01310-100" \
  -d "capabilities[card_payments][requested]=true"

# Create owner with name matching the CNPJ registry
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "first_name=match_representative" \
  -d "last_name=match_representative" \
  -d "id_number=000000000" \
  -d "dob[day]=1" \
  -d "dob[month]=1" \
  -d "dob[year]=1901" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=São Paulo" \
  -d "address[state]=SP" \
  -d "address[postal_code]=01310-100" \
  -d "email=owner@example.com" \
  -d "political_exposure=none" \
  -d "relationship[owner]=true" \
  -d "relationship[percent_ownership]=26"

# Confirm owners provided
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "company[owners_provided]=true"
```

Previsto: tras la configuración de `owners_provided`, todos los requisitos del propietario se borran. No queda ningún error `verification_missing_owners`.

### Prueba: cumplir los requisitos mediante la subida de documentos de propietarios (`verification_missing_owners`)

Usa el CNPJ `222221003` y crea un propietario que tenga un nombre que no coincida. Cuando los errores `verification_missing_owners` aparezcan, sube un justificante del documento de UBO para solucionarlo.

```shell
# Create non-matching owner
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "first_name=Carlos" \
  -d "last_name=NonMatch" \
  -d "id_number=000000000" \
  -d "dob[day]=1" \
  -d "dob[month]=1" \
  -d "dob[year]=1901" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=São Paulo" \
  -d "address[state]=SP" \
  -d "address[postal_code]=01310-100" \
  -d "email=carlos@example.com" \
  -d "political_exposure=none" \
  -d "relationship[owner]=true"

# Set owners_provided
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "company[owners_provided]=true"
```

Errores previstos después de la evaluación:

```json
[
  { "code": "verification_missing_owners", "requirement": "owners.first_name" },
  { "code": "verification_missing_owners", "requirement": "owners.last_name" }
]
```

Para solucionarlo, sube un documento:

```shell
# Upload relationship document
curl https://files.stripe.com/v1/files \
  -u "{{TEST_SECRET_KEY}}:" \
  -F "file=@/path/to/ownership_doc.pdf" \
  -F "purpose=account_requirement"

# Attach to account
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "documents[proof_of_ultimate_beneficial_ownership][files][0]={{FILE_ID}}"
```

### Prueba: Cumplir los requisitos mediante el proceso en cascada de director

Usa el CNPJ `222221004` para activar la ruta de verificación de directores. Crea personas directoras con nombres que coincidan con el registro del CNPJ. De forma opcional, puedes utilizar la [API de rellenado automático](https://docs.stripe.com/connect/upcoming-requirements-updates.md#prefill-owner-and-director-information) (Private preview) para obtener los nombres esperados.

```shell
# Create company with magic CNPJ for missing directors
curl https://api.stripe.com/v1/accounts \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "type=custom" \
  -d "country=BR" \
  -d "business_type=company" \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=222221004" \
  -d "company[name]=Empresa Teste Ltda" \
  -d "company[address][line1]=address_full_match" \
  -d "company[address][city]=São Paulo" \
  -d "company[address][state]=SP" \
  -d "company[address][postal_code]=01310-100" \
  -d "capabilities[card_payments][requested]=true"

# Create director with name matching the CNPJ registry
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "first_name=match_representative" \
  -d "last_name=match_representative" \
  -d "id_number=000000000" \
  -d "dob[day]=1" \
  -d "dob[month]=1" \
  -d "dob[year]=1901" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=São Paulo" \
  -d "address[state]=SP" \
  -d "address[postal_code]=01310-100" \
  -d "email=director@example.com" \
  -d "political_exposure=none" \
  -d "relationship[director]=true"

# Confirm directors and owners provided
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "company[directors_provided]=true" \
  -d "company[owners_provided]=true"
```

Previsto: tras configurar `directors_provided` y `owners_provided`, los requisitos de director y de propietario se borran.

### Prueba: solucionar el problema de subir un documento que no sea válido (`verification_document_type_not_supported`)

Sube un documento de relación no válido para desencadenar el error `verification_document_type_not_supported`; después sube un documento válido para solucionarlo.

```shell
# Upload invalid document (use file_relationship_document_invalid magic value)
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "documents[proof_of_ultimate_beneficial_ownership][files][0]=file_relationship_document_invalid"
```

Errores previstos después de la evaluación:

```json
[
  { "code": "verification_document_type_not_supported", "requirement": "documents.proof_of_ultimate_beneficial_ownership.files" },
  { "code": "verification_missing_owners", "requirement": "owners.first_name" },
  { "code": "verification_missing_owners", "requirement": "owners.last_name" }
]
```

Los errores `verification_missing_owners` persisten porque la carga de un documento que no es válido no soluciona el problema de coincidencia de nombre. Sube un documento válido para solucionarlo:

```shell
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "documents[proof_of_ultimate_beneficial_ownership][files][0]=file_relationship_document_success"
```

#### Programa - Singapur

*Última actualización: 12 de junio de 2026*

## Cómo entender los cambios en los requisitos de verificación

Para ajustarse a los requisitos revisados de la norma PSN01 de la Autoridad Monetaria de Singapur (MAS), Stripe va a actualizar sus requisitos de verificación para Know Your Business (KYB) y para beneficiarios efectivos (UBO).

Si tus cuentas conectadas operan en Singapur, es posible que tengas que actualizar tus flujos de onboarding y de corrección. Si no realizas las actualizaciones necesarias, se interrumpirá el acceso de tus cuentas conectadas a los pagos y servicios financieros.

## Elección de un enfoque de integración

Stripe recomienda usar onboarding alojado o integrado en Stripe para recopilar requisitos de verificación de empresas e identidad. Estas opciones requieren menos recursos de implementación y mantenimiento que usar la activación de API. La siguiente tabla describe las principales diferencias:

- [Onboarding alojado en Stripe](https://docs.stripe.com/connect/hosted-onboarding.md): (Recomendado) Envía cuentas a un flujo alojado en Stripe para enviar la información requerida.
- [Onboarding integrado](https://docs.stripe.com/connect/embedded-onboarding.md): (Recomendado) Integra componentes de onboarding proporcionados por Stripe que permiten a las cuentas enviar información directamente a Stripe desde tu aplicación.
- [Activación de API](https://docs.stripe.com/connect/api-onboarding.md): crea y gestiona un flujo de activación personalizado con las API de Stripe.

|  | **Activación alojada de Stripe** | **Activación integrada** | **Activación de API** |
| --- | --- | --- | --- |
| Opción recomendada para | Plataformas que quieren que Stripe gestione la activación | Plataformas que quieren un flujo de activación dentro de la aplicación con el logotipo de tu marca | Plataformas que necesitan control total y pueden crearlo y mantenerlo |
| Iniciativa inicial de implementación | 3 a 4 semanas de ingeniería | 3 a 4 semanas de ingeniería | 30-40 semanas de ingeniería |
| Esfuerzo continuo para abordar las actualizaciones de requisitos | Gestionada automáticamente por Stripe | Gestionada automáticamente por Stripe | Requiere una supervisión proactiva para los próximos cambios, además de recursos de ingeniería para actualizar el flujo de activación para cada cambio |
| Personalización | Interfaz alojada por Stripe con imágenes de marca de la plataforma | Componente altamente temático al que acceden las cuentas a través de la aplicación de la plataforma | La plataforma diseña, crea y mantiene la interfaz |
| Medidas para ser compatible con otros países | Gestionada automáticamente por Stripe | Gestionada automáticamente por Stripe | Requiere recursos de ingeniería para actualizar el flujo de activación de cada país adicional |

Obtén más información sobre las [opciones de onboarding de Connect](https://docs.stripe.com/connect/onboarding.md) y la [migración de tus flujos de Onboarding y corrección basados en API a flujos alojados o integrados](https://docs.stripe.com/connect/migrate-from-api-onboarding.md) en Stripe.

Las plataformas que utilizan el onboarding alojado o integrado de Stripe no necesitan modificar sus integraciones para adaptarse a estas actualizaciones de los requisitos, ya que Stripe se encarga de ello automáticamente. Las plataformas que utilizan el onboarding basado en API deben realizar un seguimiento activo de los cambios en los requisitos y destinar recursos de ingeniería a cada actualización.

## Resumen de la integración de API

Si tu plataforma utiliza el onboarding basado en la API, actualiza tu integración para gestionar los siguientes cambios en las cuentas conectadas de Singapur:

- **KYB: detalles de la empresa y verificación de la entidad jurídica:** recopila [los datos de la empresa y los campos de la entidad jurídica](https://docs.stripe.com/connect/upcoming-requirements-updates.md#kyb-business-details-and-legal-entity-verification), incluidos la fecha de constitución, el centro de actividad principal y el lugar de administración.
- **Verificación de la dirección registrada:** gestiona la [verificación de la dirección registrada](https://docs.stripe.com/connect/upcoming-requirements-updates.md#registered-address-verification) cuando Stripe no pueda verificarla automáticamente.
- **Verificación del documento de constitución:** Solicita un [documento de constitución](https://docs.stripe.com/connect/upcoming-requirements-updates.md#constitution-document-verification) para empresas, sociedades y organizaciones sin ánimo de lucro cuando sea necesario.
- **Verificación del beneficiario efectivo y de la relación:** recopila la [información de verificación del beneficiario efectivo y de la relación](https://docs.stripe.com/connect/upcoming-requirements-updates.md#ubo-and-relationship-verification) de los propietarios, directores y ejecutivos clave en los casos en que sea obligatorio.

Antes de la entrada en vigor, puedes supervisar [future_requirements](https://docs.stripe.com/api/accounts/object.md#account_object-future_requirements) para ver la vista previa de los próximos requisitos. Una vez que los requisitos estén activos, supervisa el hash `requirements` de la cuenta y escucha el webhook `account.updated` para detectar los cambios en los requisitos.

Asegúrate de que tu integración esté configurada para [gestionar las actualizaciones de verificación](https://docs.stripe.com/connect/handle-verification-updates.md) durante el onboarding de nuevas cuentas y al recopilar información actualizada de cuentas existentes.

## Línea temporal de los requisitos

La siguiente línea temporal explica los hitos clave de estos cambios. Actualiza y prueba tu integración con antelación para evitar cualquier problema cuando los nuevos requisitos entren en vigor.

| Fecha | Hito | Descripción |
| --- | --- | --- |
| Julio de 2026 | Iniciar planificación de integración | Consulta esta guía y los cambios para empezar a planificar las actualizaciones de tu integración. |
| Septiembre de 2026 | Comienza la implementación de `future_requirements` (onboarding de la API) | Para las plataformas que utilizan el onboarding de la API, Stripe comienza a añadir los nuevos requisitos a `future_requirements` tanto para las cuentas nuevas como para las existentes. |
| 1 de noviembre de 2026 | Comienza la implementación de los nuevos requisitos | Asegúrate de que tu flujo de onboarding actualizado esté listo para recopilar los nuevos requisitos. Tu flujo actualizado debe estar funcionando el 1 de noviembre, momento en el que Stripe empezará a implementar los nuevos requisitos. Todos los nuevos requisitos estarán activos a finales de noviembre. |

## KYB: detalles de la empresa y verificación de la entidad jurídica

Stripe va a actualizar los requisitos de KYB para las cuentas que no sean de [particular](https://docs.stripe.com/api/accounts/object.md#account_object-business_type) en Singapur. Estos requisitos incluyen nuevos campos de [empresa](https://docs.stripe.com/api/accounts/object.md#account_object-company) y la verificación de la información registrada de la empresa.

### Campos obligatorios

| Campo | Tipo | Descripción |
| --- | --- | --- |
| `company.registration_date` (Nueva) | Objeto con `day`, `month` y `year` | La fecha en la que se constituyó la empresa. |
| `company.address` | Objeto [Dirección](https://docs.stripe.com/api/accounts/object.md#account_object-company-address) | Dirección registrada de la empresa (nueva verificación de un requisito existente) |
| `company.principal_place_of_business` (Nueva) | Objeto [Dirección](https://docs.stripe.com/api/accounts/object.md#account_object-company-address) | Ubicación principal en la que la empresa desarrolla sus operaciones. |
| `company.administrative_address` (Nueva) | Objeto [Dirección](https://docs.stripe.com/api/accounts/object.md#account_object-company-address) | Ubicación en la que se administra la empresa. |

Si alguna de las direcciones es la misma, envía los mismos valores de dirección para cada una de ellas. No omitas ninguna.

Crea una cuenta de empresa de Singapur. Utiliza el ID de cuenta devuelto en los siguientes ejemplos.

```curl
curl https://api.stripe.com/v1/accounts \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d country=SG \
  -d type=custom \
  -d business_type=company \
  -d "capabilities[card_payments][requested]=true" \
  -d "capabilities[transfers][requested]=true"
```

### Respuesta de requisitos inicial

El hash `requirements` de la nueva cuenta incluye entradas como las siguientes:

```json
{
  "currently_due": [
    "company.registration_date.day",
    "company.registration_date.month",
    "company.registration_date.year",
    "company.address.line1",
    "company.address.postal_code",
    "company.principal_place_of_business.line1",
    "company.principal_place_of_business.postal_code",
    "company.administrative_address.line1",
    "company.administrative_address.postal_code"
  ]
}
```

Los campos en `currently_due` permanecerán ahí hasta que proporciones valores para ellos.

### Recopila los datos de la empresa

El siguiente ejemplo muestra cómo enviar los nuevos requisitos:

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "company[registration_date][day]=20" \
  -d "company[registration_date][month]=3" \
  -d "company[registration_date][year]=2015" \
  --data-urlencode "company[address][line1]=60 Anson Road #05-01" \
  -d "company[address][postal_code]=079914" \
  --data-urlencode "company[principal_place_of_business][line1]=60 Anson Road #05-01" \
  -d "company[principal_place_of_business][postal_code]=079914" \
  --data-urlencode "company[administrative_address][line1]=1 Raffles Place #30-01" \
  -d "company[administrative_address][postal_code]=048616"
```

### Verificación de la dirección registrada

La dirección registrada (`company.address`) ya es obligatoria para las cuentas de Singapur. Esta actualización añade la verificación de la dirección registrada como parte de la verificación de la entidad jurídica.

Si Stripe no puede verificar la dirección registrada de la cuenta, comprueba el hash `requirements` del objeto Account. Muestra qué campos de la dirección no se han podido verificar, enumera `company.verification.document` como método alternativo para resolver el requisito e incluye detalles en la matriz [`errors`](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-errors):

```json
{
  "currently_due": [
    "company.address.line1",
    "company.address.postal_code"
  ],
  "alternatives": [
    {
      "original_fields_due": [
        "company.address.line1",
        "company.address.postal_code"
      ],
      "alternative_fields_due": [
        "company.verification.document"
      ]
    }
  ],
  "errors": [
    {
      "code": "verification_failed_keyed_match",
      "reason": "We couldn't match the account's registered business address to government records. You can either fix any errors in the account's Unique Entity Number (UEN) or registered business address. Alternatively, you can upload a document that shows the company's registered address.",
      "requirement": "company.address.line1"
    },
    {
      "code": "verification_failed_keyed_match",
      "reason": "We couldn't match the account's registered business address to government records. You can either fix any errors in the account's Unique Entity Number (UEN) or registered business address. Alternatively, you can upload a document that shows the company's registered address.",
      "requirement": "company.address.postal_code"
    }
  ]
}
```

Para resolver el requisito, recopila un documento de verificación de la empresa aceptable de la cuenta conectada.

- Para las empresas constituidas localmente: un perfil de [BizFile](https://www.bizfile.gov.sg/) de la [Autoridad de Contabilidad y Regulación Corporativa (ACRA)](https://www.acra.gov.sg/).
- Para las sociedades: un certificado de registro o declaración anual presentado en el [Registro de Sociedades (ROS)](https://www.mha.gov.sg/what-we-do/registry-of-societies).
- Para las entidades relacionadas con el [Majlis Ugama Islam Singapura (MUIS)](https://www.muis.gov.sg/): una carta del MUIS que contenga la dirección registrada.

Sube el documento de verificación de la empresa.

```bash
curl https://files.stripe.com/v1/files \
  -u <<YOUR_SECRET_KEY>>: \
  -F "file"="@/path/to/company_verification_document.pdf" \
  -F "purpose"="account_requirement"
```

Adjunta el documento de verificación de la empresa a la cuenta.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "company[verification][document][front]={{FILE_ID}}"
```

## Verificación del documento de constitución

Las empresas, organizaciones sin ánimo de lucro y sociedades colectivas deben cumplir el requisito del documento de constitución. Este requisito no se aplica a empresas unipersonales ni a particulares.

| Clasificación de la cuenta | Valores de la API | Requisito del documento de constitución |
| --- | --- | --- |
| Empresa privada | `business_type=company` con `company.structure=private_company` | Obligatorio a menos que la ACRA confirme que la cuenta utiliza una constitución modelo. |
| Sociedad anónima | `business_type=company` con `company.structure=public_company` | Obligatorio a menos que la ACRA confirme que la cuenta utiliza una constitución modelo. |
| Organización sin fines de lucro | `business_type=non_profit` | Obligatorio cuando se devuelve en los requisitos de la cuenta. |
| Sociedad colectiva | `business_type=company` with `company.structure=private_partnership` | Obligatorio cuando se devuelve en los requisitos de la cuenta. |
| Empresa unipersonal o particular | `business_type=company` con `company.structure=sole_proprietorship`, o `business_type=individual` | No es necesaria. |

Si la ACRA confirma que la entidad ha adoptado una [constitución modelo](https://sso.agc.gov.sg/SL/CoA1967-S833-2015?DocDate=20151231), el requisito del documento de constitución se cumple automáticamente y no es necesario subir ningún documento.

De lo contrario, debes recopilar el documento y enviarlo como `documents.company_memorandum_of_association.files`. Stripe revisa el documento para identificar a cualquier persona que posea un control, autoridad o poderes significativos sobre la entidad. Debes añadir a dichas personas a la cuenta como beneficiarios efectivos para cumplir los requisitos.

| Campo | Tipo |
| --- | --- |
| `documents.company_memorandum_of_association.files` (Nueva) | Cargar archivo |

### Respuesta de requisitos inicial

Cuando se requiere un documento de constitución, el hash `requirements` de la cuenta incluye:

```json
{
  "currently_due": [
    "documents.company_memorandum_of_association.files"
  ]
}
```

### Sube un documento de constitución

El siguiente ejemplo muestra cómo subir un documento de constitución personalizado:

```bash
curl https://files.stripe.com/v1/files \
  -u <<YOUR_SECRET_KEY>>: \
  -F "file"="@/path/to/constitution.pdf" \
  -F "purpose"="account_requirement"
```

Adjunta el documento de constitución a la cuenta.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "documents[company_memorandum_of_association][files][]={{FILE_ID}}"
```

### Manejo de errores

Gestiona los [errores de verificación de documentos](https://docs.stripe.com/connect/handling-api-verification.md#handle-document-verification-problems) estándar para las subidas de documentos de constitución.

## Verificación de UBO y relación

Los requisitos para el beneficiario efectivo en Singapur dependen del tipo de empresa de la cuenta conectada.

1. Las empresas privadas deben identificar y añadir a los propietarios.
2. Las organizaciones sin fines de lucro deben identificar y añadir a los directores y a los ejecutivos clave.
3. Algunas entidades pueden reunir los requisitos para una exención de UBO, como las instituciones financieras elegibles o las entidades que en un 75 % o más son propiedad de sociedades holding elegibles.

### Campos obligatorios

| Campo de API de la persona | Descripción |
| --- | --- |
| `person.first_name`, `person.last_name` | Nombre legal. |
| `person.full_name_aliases` | [Alias de nombre](https://docs.stripe.com/api/persons/object.md#person_object-full_name_aliases). |
| `person.id_number` | Número de identificación nacional (NRIC o FIN para residentes en Singapur). |
| `person.nationality` (Nueva) | Código de país de dos letras ([ISO 3166-1 alfa-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). |
| `person.dob` (Nueva) | [Fecha de nacimiento](https://docs.stripe.com/api/persons/object.md#person_object-dob). |
| `person.address` (Nueva) | [Dirección de residencia](https://docs.stripe.com/api/persons/object.md#person_object-address). |

En el caso de los propietarios y directores que sean UBO, Stripe verifica el nombre legal y el número de identificación. Los alias, la nacionalidad, la fecha de nacimiento y la dirección de residencia son obligatorios para cumplir los requisitos normativos actualizados de Singapur, pero no activan una verificación de identidad independiente.

Los campos de persona obligatorios utilizan rutas con el prefijo de la función en el hash `requirements` de la cuenta:

```json
{
  "currently_due": [
    "company.owners_provided",
    "company.directors_provided",
    "owners.first_name",
    "owners.last_name",
    "owners.id_number",
    "owners.full_name_aliases",
    "owners.nationality",
    "owners.dob.day",
    "owners.dob.month",
    "owners.dob.year",
    "owners.address.line1",
    "owners.address.postal_code",
    "directors.first_name",
    "directors.last_name",
    "directors.id_number",
    "directors.full_name_aliases",
    "directors.nationality",
    "directors.dob.day",
    "directors.dob.month",
    "directors.dob.year",
    "directors.address.line1",
    "directors.address.postal_code"
  ]
}
```

Dependiendo del estado de la cuenta, algunos campos podrían estar ya completados o rellenados previamente. Envía los campos que aparecen en las matrices `requirements.currently_due`, `requirements.eventually_due` o `requirements.past_due` de la cuenta.

### Envía los campos de UBO

Si Stripe ya ha creado o rellenado previamente la [Persona](https://docs.stripe.com/api/persons/object.md), actualiza esa [Persona](https://docs.stripe.com/api/persons/object.md) con los campos que faltan.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons/{{PERSON_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d nationality=SG \
  -d "dob[day]=15" \
  -d "dob[month]=6" \
  -d "dob[year]=1985" \
  --data-urlencode "address[line1]=10 Bayfront Avenue #01-01" \
  -d "address[city]=Singapore" \
  -d "address[postal_code]=018956" \
  -d "address[country]=SG"
```

Si creas una [Persona](https://docs.stripe.com/api/persons/object.md) de UBO nueva, incluye la relación de la persona, el nombre legal, el número de identificación, los alias, la nacionalidad, la fecha de nacimiento y la dirección de residencia.

#### Propietarios como UBO para empresas

En el caso de las empresas privadas, Stripe intenta identificar a las personas que poseen el 25 % o más de la empresa a partir de los registros gubernamentales. Cuando Stripe identifica a los propietarios, elabora una lista de las personas de la cuenta para encontrar los registros de propietarios rellenados previamente.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons \
  -u "<<YOUR_SECRET_KEY>>:"
```

Actualiza cada propietario con los campos pendientes que se devuelvan en los requisitos de la cuenta.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons/{{PERSON_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d nationality=SG \
  -d "dob[day]=15" \
  -d "dob[month]=6" \
  -d "dob[year]=1985" \
  --data-urlencode "address[line1]=10 Bayfront Avenue #01-01" \
  -d "address[city]=Singapore" \
  -d "address[postal_code]=018956" \
  -d "address[country]=SG"
```

Una vez añadidos o actualizados todos los propietarios obligatorios, establece `company.owners_provided=true` si ese campo aparece en los requisitos de la cuenta.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "company[owners_provided]=true"
```

Para conocer todos los detalles sobre los mecanismos de verificación de UBO existentes, los umbrales de titularidad, la alternativa de directores como UBO, las exenciones, los documentos de prueba de UBO, las declaraciones de directores y los códigos de error, consulta la [Información de verificación obligatoria](https://docs.stripe.com/connect/required-verification-information.md). Esta sección solo aborda los **nuevos campos** que se añaden en esta actualización.

## Prueba tu integración

Crea o actualiza una cuenta conectada de Singapur en un entorno de prueba y utiliza un [UEN de empresa de muestra de Singapur](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#sample-companies-singapore) como `company.tax_id`. Utiliza estos ejemplos para comprobar que tu integración gestiona los estados de verificación de KYB de Singapur, del documento de constitución y de los UBO. A continuación, revisa los `requisitos` de la cuenta.

Los resultados de la verificación pueden actualizarse de forma asíncrona. Tras enviar los datos de prueba, recupera la cuenta o espera un evento `account.updated` y, a continuación, revisa sus `requisitos`.

### Prueba de propietarios que faltan

Usa [180100002M](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100002m) para comprobar si falta información sobre el propietario.

1. Establece `company.owners_provided=true`.
2. No añadas objetos [Person](https://docs.stripe.com/api/persons/object.md) del propietario necesarios.

Esto produce los requisitos de los propietarios como `owners.first_name`, `owners.last_name` y `company.owners_provided`, y devuelve el error `verification_missing_owners`.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100002M" \
  -d "company[owners_provided]=true"
```

Requisitos y errores esperados:

```json
{
  "currently_due": [
    "company.owners_provided",
    "owners.first_name",
    "owners.last_name"
  ],
  "errors": [
    { "code": "verification_missing_owners", "requirement": "owners.first_name" },
    { "code": "verification_missing_owners", "requirement": "owners.last_name" }
  ]
}
```

### Prueba de no coincidencia de propietarios

Usa [180100002M](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100002m) para probar el envío de un propietario que no coincida con los datos de relaciones del entorno de pruebas.

1. Crea un propietario que no coincida.
2. Establece `company.owners_provided=true`.

Stripe devuelve `verification_missing_owners` porque no ha podido hacer coincidir el propietario enviado con los propietarios del perfil de muestra.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100002M"
```

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d first_name=Mismatch \
  -d last_name=Owner \
  -d id_number=S9999999Z \
  -d "dob[day]=1" \
  -d "dob[month]=1" \
  -d "dob[year]=1990" \
  -d "address[line1]=10 ANSON ROAD" \
  -d "address[city]=Singapore" \
  -d "address[postal_code]=079903" \
  -d "address[country]=SG" \
  -d "relationship[owner]=true" \
  -d "relationship[percent_ownership]=30"
```

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "company[owners_provided]=true"
```

Requisitos y errores esperados:

```json
{
  "currently_due": [
    "owners.first_name",
    "owners.last_name"
  ],
  "errors": [
    { "code": "verification_missing_owners", "requirement": "owners.first_name" },
    { "code": "verification_missing_owners", "requirement": "owners.last_name" }
  ]
}
```

### Requisitos para los directores de organizaciones sin ánimo de lucro

Usa [R01SS0001A](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-r01ss0001a) para comprobar los requisitos relacionados con el prefijo de director en el caso de una organización sin ánimo de lucro.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d business_type=non_profit \
  -d "company[tax_id]=R01SS0001A"
```

Requisitos y errores esperados:

```json
{
  "currently_due": [
    "company.directors_provided",
    "directors.first_name",
    "directors.last_name"
  ],
  "errors": []
}
```

### Prueba de directores que faltan

Usa [180100002M](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100002m) para comprobar si faltan directores necesarios.

1. Establece `company.directors_provided=true`.
2. No añadas objetos [Person](https://docs.stripe.com/api/persons/object.md) de director necesarios.

Esto produce los requisitos de los directores como `directors.first_name`, `directors.last_name` y `company.directors_provided`, y devuelve `verification_missing_directors`.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100002M" \
  -d "company[directors_provided]=true"
```

Requisitos y errores esperados:

```json
{
  "currently_due": [
    "company.directors_provided",
    "directors.first_name",
    "directors.last_name"
  ],
  "errors": [
    { "code": "verification_missing_directors", "requirement": "directors.first_name" },
    { "code": "verification_missing_directors", "requirement": "directors.last_name" }
  ]
}
```

### Prueba de no coincidencia de directores

Usa [180100002M](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100002m) para comprobar si hay una discrepancia en el director.

1. Crea tres objetos [Person](https://docs.stripe.com/api/persons/object.md) de director que no coincidan con los tres directores del perfil de muestra.
2. Establece `company.directors_provided=true`.

Esto devuelve `verification_directors_mismatch`.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100002M"
```

Crea el primer director que no coincida y repite esta petición dos veces más con información diferente del director que no coincida.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d first_name=Mismatch \
  -d last_name=Director \
  -d id_number=S8888888Z \
  -d "dob[day]=1" \
  -d "dob[month]=1" \
  -d "dob[year]=1990" \
  -d "address[line1]=10 ANSON ROAD" \
  -d "address[city]=Singapore" \
  -d "address[postal_code]=079903" \
  -d "address[country]=SG" \
  -d "relationship[director]=true"
```

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "company[directors_provided]=true"
```

Requisitos y errores esperados:

```json
{
  "currently_due": [
    "directors.first_name",
    "directors.last_name"
  ],
  "errors": [
    { "code": "verification_directors_mismatch", "requirement": "directors.first_name" },
    { "code": "verification_directors_mismatch", "requirement": "directors.last_name" }
  ]
}
```

### Prueba sin accionistas significativos

Usa [180100001C](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100001c) para probar una empresa donde ningún accionista posea el 25 % o más de la misma.

1. Envía el UEN.
2. Establece `company.owners_provided=true` sin añadir objetos [Person](https://docs.stripe.com/api/persons/object.md) de propietario.

Stripe devuelve `verification_missing_directors` porque requiere directores como UBO cuando no hay propietarios correspondientes.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100001C" \
  -d "company[owners_provided]=true"
```

Requisitos y errores esperados:

```json
{
  "currently_due": [
    "company.directors_provided",
    "directors.first_name",
    "directors.last_name"
  ],
  "errors": [
    { "code": "verification_missing_directors" }
  ]
}
```

### Prueba de propiedad compleja o documento alternativo

Usa [180100005E](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100005e) para simular una estructura de propiedad que incluya una entidad jurídica intermediaria.

Esto produce el requisito `documents.proof_of_ultimate_beneficial_ownership.files` y el error `verification_requires_additional_proof_of_registration`.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100005E"
```

Requisitos y errores esperados:

```json
{
  "currently_due": [
    "documents.proof_of_ultimate_beneficial_ownership.files"
  ],
  "errors": [
    { "code": "verification_requires_additional_proof_of_registration", "requirement": "documents.proof_of_ultimate_beneficial_ownership.files" }
  ]
}
```

Resuelve el problema subiendo un documento que acredite el beneficiario efectivo final y adjuntándolo a la cuenta:

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "documents[proof_of_ultimate_beneficial_ownership][files][]={{FILE_ID}}"
```

### Prueba del requisito de documento de constitución

Usa [180100013R](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100013r) para simular una empresa privada que no use una constitución modelo.

Esto produce el requisito `documents.company_memorandum_of_association.files` y el error `verification_failed_other`.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100013R"
```

Requisitos y errores esperados:

```json
{
  "currently_due": [
    "documents.company_memorandum_of_association.files"
  ],
  "errors": [
    { "code": "verification_failed_other", "requirement": "documents.company_memorandum_of_association.files" }
  ]
}
```

Para resolverlo, sube un documento de constitución y adjúntalo a la cuenta:

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "documents[company_memorandum_of_association][files][]={{FILE_ID}}"
```

## Obtener ayuda

- Si tienes preguntas sobre estos cambios de requisitos, ponte en contacto con el [Soporte de Stripe](https://support.stripe.com).
- Para preguntas sobre la integración de la API, consulta la [documentación de Connect](https://docs.stripe.com/connect.md).
- Para supervisar el estatus de cumplimiento de la normativa de tus cuentas, usa la página [Cuentas para revisar](https://dashboard.stripe.com/connect/accounts/overview) en tu Dashboard.

#### Programa - US

*Última actualización: 23 de septiembre de 2025*

## ¿Qué va a cambiar?

- **Información obligatoria recogida de las cuentas conectadas:** estamos actualizando la información que necesitamos de las empresas unipersonales, las organizaciones sin ánimo de lucro y las LLC unipersonales y simplificando la forma en que obtenemos el consentimiento del tutor legal para las cuentas abiertas por menores. Además, ahora se requiere un correo electrónico para el representante de la cuenta para todo tipo de entidad jurídica, y un cambio para las entidades gubernamentales y las empresas públicas.
- **Cómo verificamos la información de la empresa y proporcionamos nuevas respuestas detalladas de verificación:** estamos actualizando nuestros criterios de válida información de la empresa e introduciendo nuevos códigos de error de verificación cuando no podemos aceptar o verificar la información proporcionada.
- **Umbral a partir del cual verificamos los números de identificación fiscal (TIN):** en los casos de las cuentas conectadas Custom y Express, estableceremos límites más bajos de volumen de pagos para la verificación de TIN, en concordancia con los límites actuales de declaración de impuestos federales.
- **Cómo rellenamos automáticamente las descripciones del cargo del extracto bancario y los prefijos de las descripciones del cargo del extracto bancario:** si no se proporciona ninguna descripción del cargo del extracto bancario, se usará el nombre de perfil de la empresa, la URL de la empresa o el nombre de la entidad jurídica de la cuenta conectada.

Estos cambios afectarán a todos los usuarios que hayan solicitado la funcionalidad [card_payments](https://docs.stripe.com/api/accounts/object.md#account_object-capabilities-card_payments) en EE. UU.

## La información que recogemos de forma obligatoria de las cuentas conectadas

La nueva información que recopilamos y los nuevos campos añadidos a la API son:

- Las empresas que sean [company.structure](https://docs.stripe.com/api/accounts/create.md#create_account-company-structure) de `sole_proprietorship` y `single_member_llc` deberán indicar la dirección de su empresa («dirección de la empresa»). En caso de que la dirección de la empresa sea la misma que la dirección personal del representante, tus cuentas conectadas podrán indicar los mismos valores para ambas.
- Las entidades legales que son [company.structure](https://docs.stripe.com/api/accounts/create.md#create_account-company-structure) de `government_instrumentality`, `tax_exempt_government_instrumentality`, `governmental_unit`, `public_company`, `public_corporation` y `public_partnership` deben proporcionar un correo electrónico para el representante de la cuenta. Este requisito ahora se aplica a todos los tipos de entidades jurídicas.
- Para simplificar el proceso de obtención del consentimiento del tutor legal para las cuentas abiertas por menores, se ha actualizado la [API Persons](https://docs.stripe.com/api/persons.md) con un nuevo tipo de relación, `legal_guardian`, así como un campo adicional, `additional_tos_acceptances`, para registrar el acuerdo del tutor legal con las Condiciones de servicio de Stripe. Si la fecha de nacimiento del representante de la cuenta indica que la persona es menor de edad, se activa un requisito de la cuenta para añadir un `legal_guardian` antes de que la cuenta pueda activarse.

## Cómo verificamos la información de la empresa y proporcionamos nuevas respuestas de verificación detalladas

### Actualizaciones de la información que ya hemos recogido

Solicitaremos la siguiente información a tus cuentas conectadas:

| Campo | Requisitos actualizados | Aspectos adicionales que se deben tener en cuenta |
| --- | --- | --- |
| Se recogen el SSN o el ITIN de los representantes que residen en EE.&nbsp;UU. | Se requieren los últimos cuatro dígitos al activar todos los tipos de cuentas (incluyendo las cuentas conectadas Custom y Express). | Esto ya se hace con las cuentas conectadas Standard. |
| SSN o ITIN recogidos de propietarios residentes en EE. UU. | Últimos cuatro dígitos necesarios cuando el volumen de pagos supere los 500.000 USD para todos los tipos de cuentas (incluyendo las cuentas conectadas Custom y Express) | Consulta *SSN Full 9 Digit Note* a continuación |
| Documento nacional de identidad o documento de verificación recogidos de representantes no residentes en EE. UU. | Documento nacional de identidad o de verificación en la activación para todo tipo de cuentas (incluyendo las cuentas conectadas Custom y Express) | Solo se aplica a los representantes no residentes en EE. UU. |
| Documento nacional de identidad o de verificación recogido de propietarios no residentes en EE. UU. | Documento nacional de identidad o documento de verificación cuando el volumen de pagos supere los 500.000 USD para todos los tipos de cuentas (incluyendo las cuentas conectadas Custom y Express). | Solo se aplica a propietarios no residentes en EE. UU. |

> Si no podemos obtener mediante programación el SSN completo de nueve dígitos de un particular asociado a tu cuenta con la información ya proporcionada, debes proporcionar los nueve dígitos completos.

### Nuevos códigos de error de verificación

Cuando no podamos verificar la información proporcionada por tus cuentas conectadas, se mostrarán los códigos de error de las respuestas detalladas de verificación en la matriz [requirements.errors](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-errors). [Consulta la documentación](https://docs.stripe.com/connect/handling-api-verification.md#validation-and-verification-errors).

#### Errores síncronos

| Campo | Nuevo código de error | Mensaje de error |
| --- | --- | --- |
| Descripción del producto | `invalid_product_description_length` | La descripción de tu producto debe tener al menos 10 caracteres. |
| Descripción del producto | `invalid_product_description_url_match` | La descripción de tu producto debe ser distinta a tu URL. |
| Descripción (completa) del cargo del extracto bancario | `invalid_statement_descriptor_length` | Tu descripción del cargo del extracto bancario debe tener de 5 a 22 caracteres. |
| Descripción (completa) del cargo del extracto bancario | `invalid_statement_descriptor_business_mismatch` | Tu descripción del cargo del extracto bancario debe parecerse al nombre de tu empresa, el nombre de tu entidad jurídica o tu URL. |
| Descripción (completa) del cargo del extracto bancario | `invalid_statement_descriptor_denylisted` | No se aceptan descripciones genéricas o conocidas del cargo del extracto bancario. |
| Descripción (corta) del cargo del extracto bancario | `invalid_statement_descriptor_prefix_mismatch` | El prefijo de la descripción del cargo del extracto bancario debe parecerse a la descripción del cargo en tu extracto bancario, el nombre de tu empresa, el nombre de tu persona jurídica o tu URL. |
| Descripción (corta) del cargo del extracto bancario | `invalid_statement_descriptor_prefix_denylisted` | No se aceptan prefijos genéricos o conocidos en la descripción del cargo del extracto bancario. |
| Nombre de la empresa LE | `invalid_company_name_denylisted` | No se aceptan nombres de empresas genéricos o conocidos. |
| Nombre del perfil comercial (DBA, por sus siglas en inglés) | `invalid_business_profile_name_denylisted` | No se aceptan nombres de empresas genéricos o conocidos. |
| Nombre del perfil comercial (DBA, por sus siglas en inglés) | `invalid_business_profile_name` | Los nombres de los perfiles de empresas deben estar formados por palabras reconocibles. |
| Fecha de nacimiento de las personas | `invalid_dob_age_under_minimum` | La persona debe tener al menos 13 años. |
| Fecha de nacimiento de las personas | `invalid_dob_age_over_maximum` | La fecha de nacimiento debe estar dentro de los últimos 120 años. |
| Núm.&nbsp;de teléfono de las personas | `invalid_phone_number` | Parece que el número de teléfono no es válido. Asegúrate de que tenga el formato correcto. |
| Núm.&nbsp;de teléfono comercial de LE | `invalid_phone_number` | Parece que el número de teléfono no es válido. Asegúrate de que tenga el formato correcto. |
| Identificación fiscal de la empresa | `invalid_tax_id_format` | Los ID fiscales deben ser un conjunto único de 9 números sin guiones ni ningún otro caracter especial. |
| URL | `invalid_url_format` | Formato como https://example.com |
| URL | `invalid_url_denylisted` | No se aceptan direcciones URL de empresa genéricas. |

#### Errores asíncronos

| Campo | Nuevo código de error | Mensaje de error |
| --- | --- | --- |
| URL | `invalid_url_website_inaccessible` | No se ha podido visitar esta URL. Asegúrate de que está disponible y se ha introducido correctamente o proporciona otra. |
| URL | `invalid_url_website_business_information_mismatch` | La información de la empresa en tu sitio web debe coincidir con los datos que has facilitado a Stripe. |
| URL | `invalid_url_website_incomplete` | Parece que a tu sitio web le falta información obligatoria. Obtén más información sobre los requisitos de sitio web |
| URL | `invalid_url_website_other` | No hemos podido verificar tu empresa con la URL que nos has facilitado. Asegúrate de haberla introducido correctamente o proporciona otra URL. |
| URL | `invalid_url_web_presence_detected` | Como usas un sitio web, una aplicación, una página en las redes sociales o un perfil en línea para vender productos o servicios, debes proporcionar una URL para tu empresa. |

### Actualización del umbral para la verificación de números de identificación fiscal (TIN)

De acuerdo con los límites de la IRS para la presentación de formularios&nbsp;1099-K, 1099-NEC y 1099-MISC, actualizaremos el umbral a partir del cual verificamos el TIN a cuando el volumen de pagos alcance el umbral de 600&nbsp;USD o a un plazo de 30&nbsp;días desde el primer cargo, lo que suceda primero.

### Cómo rellenamos automáticamente las descripciones del cargo del extracto bancario y sus prefijos

Si no se proporciona, la descripción del cargo del extracto bancario se rellenará automáticamente con los siguientes campos suministrados (en este pedido): [empresa_profile.name](https://docs.stripe.com/api/accounts/object.md#account_object-business_profile-name) («nombre comercial»), [empresa_profile.url](https://docs.stripe.com/api/accounts/object.md#account_object-business_profile-url), nombre de la entidad jurídica ([individual.first_name](https://docs.stripe.com/api/accounts/object.md#account_object-individual-first_name) + [individual.last_name](https://docs.stripe.com/api/accounts/object.md#account_object-individual-last_name) o [company.name](https://docs.stripe.com/api/accounts/object.md#account_object-company-name))`. Además, si no se proporciona el prefijo de la descripción del cargo del extracto bancario, se rellenará automáticamente con los primeros 10 caracteres de la descripción del cargo del extracto bancario.

## See also

- [Activación de Connect para cuentas Custom](https://docs.stripe.com/connect/custom/hosted-onboarding.md)
- [Soluciones de activación para cuentas Custom](https://docs.stripe.com/connect/custom/onboarding.md)
- [Actualización de cuentas](https://docs.stripe.com/connect/updating-service-agreements.md)
- [Gestión de la verificación de identidad con la API](https://docs.stripe.com/connect/handling-api-verification.md)
- [Pruebas de verificación de identidad de cuentas Custom](https://docs.stripe.com/connect/testing-verification.md)
