# Gerenciar verificação com a API Saiba como as plataformas Connect podem usar webhooks e a API para gerenciar a verificação de contas conectadas. As plataformas Connect que fazem onboarding de contas conectadas usando a API devem fornecer à Stripe as informações necessárias para fins de [Conheça seu Cliente](https://support.stripe.com/questions/know-your-customer) (KYC) e para habilitar [funções de conta](https://docs.stripe.com/connect/account-capabilities.md). Elas próprias devem coletar os dados e usar as APIs Accounts e Persons para fornecê-los à Stripe. Em seguida, verificamos as informações, solicitando mais detalhes quando necessário. Plataformas responsáveis também devem monitorar o status de necessidades de suas contas conectadas e [ lidar com quaisquer atualizações](https://docs.stripe.com/connect/handle-verification-updates.md) de forma oportuna. ## Processo de verificação Antes de habilitar cobranças e *repasses* (A payout is the transfer of funds to an external account, usually a bank account, in the form of a deposit) em uma conta conectada, a Stripe precisa de alguns dados que variam em função de: - O país de origem das contas conectadas - O [tipo de contrato de serviços](https://docs.stripe.com/connect/service-agreement-types.md) aplicável às contas conectadas - As [funções](https://docs.stripe.com/connect/account-capabilities.md) solicitadas para as contas conectadas - O [business_type](https://docs.stripe.com/api/accounts/object.md#account_object-business_type) (por exemplo, individual ou empresa) e a [company.structure](https://docs.stripe.com/api/accounts/object.md#account_object-company-structure) (por exemplo, `public_corporation` ou `private_partnership`) As plataformas precisam escolher o melhor fluxo de [onboarding](https://docs.stripe.com/connect/identity-verification.md#onboarding-flows) para que suas empresas e usuários atendam aos requisitos KYC. Isso significa fornecer todas as informações necessárias desde o início ou de maneira gradual. De qualquer forma, configure sua integração para ficar atento e responder às solicitações da Stripe. 1. Estabeleça um URL de [webhook Connect](https://docs.stripe.com/connect/webhooks.md) nas configurações de [webhook](https://dashboard.stripe.com/account/webhooks) para monitorar atividades, especialmente eventos `conta.updated`. Ao usar a [API Persons](https://docs.stripe.com/api/persons.md), observe também eventos `person.updated`. 1. Imediatamente após criar uma conta, verifique o atributo da `Account` e quaisquer requisitos [requirements.currently_due](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-currently_due) adicionais do objeto. Obtenha todas as informações necessárias da conta conectada e atualize a `Account`. Contanto que `requirements.currently_due` não esteja vazia, a`Account` possui requisitos pendentes que podem restringir suas capacidades. 1. Continue dando atenção às notificações de evento de `account.updated` para ver se existem mudanças nos `requirements` de hash e solicite à conta conectada informações adicionais conforme o necessário. Quando você fornece informações adicionais, você não precisa reenviar dados verificados anteriormente. Por exemplo, se o `dob` já estiver verificado, você não precisa fornecer novamente a menos que mude. ### Requisitos de revisão de risco da Stripe As análises de risco da Stripe em uma conta conectada podem adicionar requisitos extras, os quais você não pode fornecer usando a API. É possível [tomar ação em seu dashboard](https://docs.stripe.com/connect/dashboard/managing-individual-accounts.md#actions-required), ou a conta conectada pode fornecê-los através de [um componente Connect embutido](https://docs.stripe.com/connect/supported-embedded-components.md#onboarding-and-compliance),[pelo onboarding proporcionado pela Stripe](https://docs.stripe.com/connect/hosted-onboarding.md), ou por um [link de remediação](https://docs.stripe.com/connect/dashboard/remediation-links.md). ## Determinar se a verificação é necessária Os atributos `charges_enabled` e `payouts_enabled` em um objeto `Account` indicam se ele pode criar cobranças e aceitar repasses. Se algum desses atributos for falso, verifique o hash de `requisitos` da `conta` para determinar quais informações são necessárias para habilitar cobranças e repasses. O hash de `requirements` contém as seguintes propriedades: | Propriedade | Descrição | | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `current_deadline` | O prazo para coletar informações listadas em `currently_due` para que a conta permaneça com o status `active`. Essa data representa o prazo mais curto entre todos os requisitos relacionados às funcionalidades solicitadas pela conta, incluindo exigências de risco e capacidades não visíveis. | | `currently_due` | Uma matriz contendo os requisitos que você deve resolver até `current_deadline` para que a conta permaneça `ativa`. | | `disabled_reason` | Uma descrição do motivo pelo qual a conta não está ativada e, portanto, impedida de processar pagamentos ou transferências. | | `errors` | Uma matriz contendo detalhes sobre os requisitos `currently_due` com erros que você precisa resolver. Para obter mais informações, consulte a seção [Erros de validação e verificação](https://docs.stripe.com/connect/handling-api-verification.md#validation-and-verification-errors). | | `eventually_due` | Uma matriz contendo os requisitos que você pode precisar resolver, dependendo se os limites correspondentes foram atingidos. Quando um desses possíveis requisitos é exigido, ele aparece nas matrizes `eventually_due` e `currently_due`. Se um requisito for exigido e sua data de vencimento for anterior à `current_deadline` existente, a `current_deadline` muda para a data de entrada em vigor do limite correspondente. | | `past_due` | Uma matriz que contém os requisitos que desabilitaram recursos porque não foram resolvidos antes do `current_deadline`. A matriz `past_due` é um subconjunto de `currently_due`. | | `pending_verification` | Uma matriz contendo requisitos que estão sendo revisados ou que podem se tornar necessários com base na revisão. Essa matriz fica vazia, a menos que haja uma verificação assíncrona pendente. Uma verificação malsucedida move um requisito para `eventually_due`, `currently_due`, `alternative_fields_due`, ou `past_due`, a menos que haja uma verificação assíncrona pendente. Um requisito que falhou e está pendente de verificação também pode permanecer em `pending_verification`. | O exemplo abaixo mostra como seria o hash `requirements` para dados de uma conta que está com os status `currently_due`, `eventually_due` e que causam `erros` de verificação. ```json { "id": ""{{CONNECTED_ACCOUNT_ID}}"", "object": "account", "requirements": { "alternatives": [], "current_deadline": 1529085600, "currently_due": [ "company.tax_id", "company.verification.document", "tos_acceptance.date", "tos_acceptance.ip" ], "disabled_reason": null, "errors": [ { "requirement": "company.verification.document", "reason": "The company name on the account couldn't be verified. Either update your business name or upload a document containing the business name.", "code": "failed_name_match" } ], "eventually_due": [ "company.address.city", "company.address.line1", "company.address.postal_code", "company.address.state", "company.tax_id", "company.verification.document", "external_account", "tos_acceptance.date", "tos_acceptance.ip" ], "past_due": [], "pending_verification": [] }, ... } ``` Se `requirements.currently_due` contém entradas, marque `requirements.current_deadline`, que é um carimbo de data e hora Unix. Normalmente, a Stripe desativa repasses na conta se não recebermos as informações até a `current_deadline`. No entanto, outras consequências podem se aplicar em algumas situações. Por exemplo, se os repasses já estiverem desativados e a conta não responder às nossas consultas, a Stripe também pode desativar a capacidade de processar cobranças. Separadamente, a propriedade [requirements.disabled_reason](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-disabled_reason) pode conter uma string descrevendo o motivo da desativação de determinadas funções da conta. Em algumas situações, as plataformas e as contas conectadas podem enviar um formulário para resolver ou recorrer do motivo. - Contas conectadas com acesso ao Stripe Dashboard completo, incluindo contas Standard, podem acessar dados adicionais (se disponíveis) no Dashboard. - As plataformas podem procurar o `disabled_reason` de uma conta na página de [contas conectadas](https://docs.stripe.com/connect/dashboard/review-actionable-accounts.md). Você pode fornecer informações adicionais em nome de suas contas conectadas. Se o motivo da desativação estiver associado a um recurso, você pode gerar um Link para um formulário para que a conta resolva o recurso. | Motivo | Significado | | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `action_required.requested_capabilities` | É necessário [solicitar funções](https://docs.stripe.com/connect/account-capabilities.md#requesting-unrequesting) para a conta conectada. | | `listed` | A conta pode estar vinculada a uma pessoa ou empresa listada em registros de restrição internacional. Nesses casos, a Stripe analisa a situação e pode encerrar ou reativar a conta após avaliação. | | `rejected.fraud` | A conta é rejeitada por indícios de fraude ou envolvimento em atividades ilícitas. | | `rejected.incomplete_verification` | A conta foi rejeitada por requisitos de verificação incompletos dentro do limite exigido. | | `rejected.listed` | A conta foi recusada por constar em uma lista de restrições ou restrições aplicadas a pessoas ou entidades (como prestadores de serviços financeiros ou órgãos governamentais). | | `rejected.other` | A conta pode ter sido recusada por outros motivos que não envolvem listas de restrição específicas. | | `rejected.terms_of_service` | A conta foi rejeitada por suspeita de violação dos termos de serviço. | | `requirements.past_due` | Verificações adicionais são necessárias para habilitar funções nesta conta. | | `requirements.pending_verification` | A Stripe está verificando os dados da conta conectada. Nenhuma ação é obrigatória. Inspecione a matriz [requirements.pending_verification](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-pending_verification) para ver os dados que estão sendo verificados. | | `under_review` | A conta está sendo analisada pela Stripe. | ## Erros de validação e verificação O objeto `Account` inclui uma matriz [requirements.errors](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-errors) que explica por que os requisitos de validação ou verificação não foram cumpridos. Você deve cumprir esses requisitos para pedir a ativação das funções da conta. A matriz de `erros` tem os seguintes atributos: | Atributo | Descrição | | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `code` | Indica o tipo de erro que ocorreu. Consulte a [referência da API](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-errors-code) para ver todos os códigos de erro possíveis. | | `reason` | Uma mensagem em linguagem simples que explique por que o erro ocorreu e como resolvê-lo. | | `requisito` | Especifica quais informações da matriz `currently_due` ou `alternative_fields_due` é necessária. | O exemplo a seguir mostra uma matriz de `erros` para uma conta com requisitos que são `currently_due`, o motivo pelo qual as informações enviadas não podem ser usadas para ativar a conta e como resolver o erro. ```json { "id": ""{{CONNECTED_ACCOUNT_ID}}"", "object": "account", "requirements": { "current_deadline": 1234567800, "currently_due": [ "company.address.line1", "{{PERSON_ID}}.verification.document" ], "errors": [ { "requirement": "company.address.line1", "code": "invalid_street_address", "reason": "The provided street address cannot be found. Please verify the street name and number are correct in \"10 Downing Street\"" }, { "requirement": "{{PERSON_ID}}.verification.document", "code": "verification_document_failed_greyscale", "reason": "Greyscale documents cannot be read. Please upload a color copy of the document." } ] }, ... } ``` Se a verificação ou validação não for bem-sucedida, os requisitos podem aparecer novamente em `currently_due`, `alternative_fields_due` ou `eventually_due` com informações de erro. Para receber a notificação desses requisitos, defina um [Webhook Connect](https://docs.stripe.com/connect/webhooks.md) para ouvir o evento `conta.updated`. ## Dados comerciais A Stripe verifica todas as informações enviadas sobre uma empresa. Por exemplo, podemos verificar se o URL da empresa é válido, acessível e inclui informações sobre a empresa. Para verificar o status dessa verificação, você pode recuperar o hash de `requirements` no objeto `Account`. Os seguintes erros estão relacionados à verificação de dados comerciais: | Erro | Resolução | | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------- | | `invalid_business_profile_name` | Os nomes das empresas devem ser fáceis de entender e consistir em palavras reconhecíveis. | | `invalid_business_profile_name_denylisted` | O nome da empresa deve corresponder à empresa da conta e não pode ser um nome genérico ou muito conhecido. | | `invalid_product_description_length` | A descrição do produto precisa ter no mínimo 10 caracteres. | | `invalid_product_description_url_match` | A descrição do produto precisa ser diferente do URL da empresa. | Consulte [Gerenciar erros de verificação de URL](https://docs.stripe.com/connect/handling-api-verification.md#url-verification) para resolver os seguintes erros: - `invalid_url_denylisted` - `invalid_url_format` - `invalid_url_web_presence_detected` - `invalid_url_website_business_information_mismatch` - `invalid_url_website_empty` - `invalid_url_website_inaccessible` - `invalid_url_website_inaccessible_geoblocked` - `invalid_url_website_inaccessible_password_protected` - `invalid_url_website_incomplete` - `invalid_url_website_incomplete_cancellation_policy` - `invalid_url_website_incomplete_customer_service_details` - `invalid_url_website_incomplete_legal_restrictions` - `invalid_url_website_incomplete_refund_policy` - `invalid_url_website_incomplete_return_policy` - `invalid_url_website_incomplete_terms_and_conditions` - `invalid_url_website_incomplete_under_construction` - `invalid_url_website_other` ## Representantes da empresa Você deve recolher e enviar informações sobre as pessoas associadas a uma conta conectada. O processo depende se suas contas conectadas são empresas, pessoas físicas ou ambas. Para empresas, use a [API Persons](https://docs.stripe.com/api/persons.md) para adicionar as informações a um objeto `Person` associado ao objeto `Account`. Para adicionar documentos ao hash de [verificação](https://docs.stripe.com/api/persons/object.md#person_object-verification) no objeto `Person`, primeiro use a [API Files](https://docs.stripe.com/api/files.md) para carregar os arquivos de documento nos servidores da Stripe. Para pessoas físicas, você pode criar uma `Person` ou adicionar as informações ao hash [pessoa física](https://docs.stripe.com/api/accounts/object.md#account_object-individual) no objeto `Account`. Se suas contas conectadas incluem empresas e pessoas físicas, crie objetos `Person` para que você possa usar o mesmo processo para todas elas. Para verificar o status de verificação de uma `Account`, você pode recuperar seu hash de [requisitos](https://docs.stripe.com/api/persons/object.md#person_object-requirements). Os seguintes erros estão relacionados à verificação de identidade: | Erro | Resolução | | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | | `invalid_address_city_state_postal_code` | A Stripe não conseguiu validar a combinação de cidade, estado e código postal no endereço informado. | | `invalid_address_highway_contract_box` | O endereço da sua empresa deve ser um endereço físico válido, a partir do qual você exerce sua atividade, e não pode ser uma caixa postal privada. | | `invalid_address_private_mailbox` | O endereço da sua empresa deve ser um endereço físico válido, a partir do qual você exerce sua atividade, e não pode ser uma caixa postal privada. | | `invalid_dob_age_under_minimum` | A idade mínima é 13 anos. | | `invalid_dob_age_over_maximum` | A data de nascimento da pessoa precisa estar dentro dos últimos 120 anos. | | `invalid_phone_number` | A Stripe não conseguiu validar o número de telefone cadastrado na conta. Verifique se a formatação corresponde ao país da pessoa. | | `invalid_street_address` | A Stripe não conseguiu validar o nome ou número da rua no endereço informado. | | `invalid_tax_id` `invalid_tax_id_format` | O ID fiscal precisa ser um conjunto único de 9 números sem traços ou outros caracteres especiais. | ## Documentos de verificação aceitos Os tipos de documentos de identificação que a Stripe aceita para contas conectadas variam conforme o país e são [os mesmos que para outras contas Stripe](https://docs.stripe.com/acceptable-verification-documents.md). ## Informações da empresa Durante o processo de verificação, pode ser necessário coletar informações sobre a empresa de uma conta. Para verificar o status da verificação, você pode recuperar o subhash [company.verification](https://docs.stripe.com/api/accounts/object.md#account_object-company-verification) no objeto `Conta`. ```json { "id": ""{{CONNECTED_ACCOUNT_ID}}"", "object": "account", ... "company": { "verification": { "document": null }, ... }, ... } ``` É possível consultar a definição de cada atributo de verificação diretamente no objeto `Account`. ## Descrições no extrato A Stripe valida a [descrição no extrato e o prefixo de descrição no extrato](https://docs.stripe.com/connect/statement-descriptors.md) quando você os define em uma `Account`. Por exemplo, podemos verificar se os primeiros 22 caracteres, que são fornecidos às bandeiras de cartão, correspondem à descrição da empresa. Verificamos se eles correspondem ao `business_profile.name`, `business_profile.url` ou ao nome da empresa ou da pessoa física da `Account`. Para verificar o status de verificação da descrição no extrato, você pode recuperar o hash `requirements` no objeto `Account`. Os seguintes erros estão relacionados à verificação da descrição no extrato: | Erro | Resolução | | --------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | | `invalid_statement_descriptor_length` | A descrição no extrato deve ter pelo menos 5 caracteres. | | `invalid_statement_descriptor_business_mismatch` | A descrição no extrato precisa ser similar ao nome da empresa, nome da pessoa jurídica ou URL da empresa. | | `invalid_statement_descriptor_denylisted` `invalid_statement_descriptor_prefix_denylisted` | A descrição no extrato não pode corresponder a um nome da empresa genérico ou conhecido. | | `invalid_statement_descriptor_prefix_mismatch` | O prefixo da descrição no extrato precisa ser similar à sua descrição no extrato, nome da empresa, nome da pessoa jurídica ou URL. | ## Gerenciar problemas de verificação de documentos Consulte a tabela a seguir para resolver erros comuns de verificação de requisitos relacionados a arquivos de documento carregados. Se a verificação falhar, não envie novamente o mesmo arquivo. Os uploads duplicados falham automaticamente. | Tipo de verificação | Código | Resolução | | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Empresa​ | `verification_failed_keyed_match`, `verification_failed_document_match` | Não conseguimos verificar os dados da conta. O usuário da conta pode carregar um documento de verificação ou atualizar os dados. | | Empresa​ | `verification_failed_tax_id_not_issued`, `verification_failed_tax_id_match` | O IRS não conseguiu verificar as informações fornecidas pelo usuário da sua conta. Corrija possíveis erros no nome da empresa ou no ID fiscal, ou carregue um documento que as verifique. (somente EUA) | | Empresa​ | `verification_failed_id_number_match`, `verification_failed_name_match`, `verification_failed_address_match` | As informações no documento não correspondem às fornecidas pelo usuário da conta. Peça a ele para verificar as informações e corrigir ou carregar um documento correspondente. | | Empresa​ | `verification_document_address_missing`, `verification_document_id_number_missing`, `verification_document_name_missing` | O documento carregado não contém as informações necessárias. Peça ao usuário da sua conta para carregar outro documento que contenha as informações faltantes. | | Empresa​ | `verification_legal_entity_structure_mismatch` | O tipo de empresa ou a estrutura parecem estar incorretos. Informe o tipo de empresa e a estrutura corretos para esta conta. | | Identity | `verification_failed_keyed_identity` | Não foi possível verificar o nome da conta. Solicite ao usuário da conta que verifique se informou o nome jurídico completo e também para fornecer um documento de identificação oficial com foto com o mesmo nome. | | Identity | `verification_document_name_mismatch`, `verification_document_dob_mismatch`, `verification_document_address_mismatch`, `verification_document_id_number_mismatch`, `verification_document_photo_mismatch` | Os dados do documento de identidade não correspondem aos dados informados pelo usuário da conta. Solicite ao usuário que verifique e corrija os dados informados na conta. | | Identity | `verification_document_fraudulent`, `verification_document_manipulated` | O documento pode ter sido alterado. Entre em contato com o suporte da Stripe para saber o motivo da falha na verificação. | | Relacionamento | `information_missing` | Consulte a mensagem de erro para as informações faltantes no documento ou dados digitados. Se estiver relacionado a holdings com participação acionária significativa, o código de erro também identifica as holdings faltantes. Saiba mais sobre a verificação de [propriedade usufrutuária para holdings](https://support.stripe.com/questions/beneficial-ownership-verification-for-holding-companies). | | Relacionamento | `verification_failed_authorizer_authority` | Não foi possível verificar a autoridade do autorizador informado. Altere o autorizador para uma pessoa registrada como representante autorizado. Saiba mais sobre a [verificação da autoridade do representante](https://support.stripe.com/questions/representative-authority-verification). | | Relacionamento | `verification_failed_representative_authority` | Não foi possível verificar a autoridade do representante da conta. Adicione um autorizador à conta e forneça uma Carta de Autorização assinada pelo autorizador. Saiba mais sobre a [verificação da autoridade representante](https://support.stripe.com/questions/representative-authority-verification). | | Relacionamento | `verification_missing_owners` | Não foi fornecido o nome do proprietário da empresa. Forneça informações sobre todos os proprietários da empresa. | | Relacionamento | `verification_missing_directors` | Os diretores não foram informados. Atualize a conta e carregue um documento de cadastro com os diretores atuais. | | Relacionamento | `verification_document_directors_mismatch` | Os diretores listados no documento não correspondem aos cadastrados na conta. Atualize a conta e carregue um documento de cadastro com os diretores atuais. | | Relacionamento | `verification_rejected_ownership_exemption_reason` | Rejeitamos o motivo de isenção de propriedade. Escolha outro motivo de isenção ou carregue um comprovante de propriedade usufrutuária final. | | Carregar | `verification_document_corrupt`, `verification_document_copy`, `verification_document_greyscale`, `verification_document_incomplete`, `verification_document_not_readable`, `verification_document_not_uploaded`, `verification_document_not_signed`, `verification_document_missing_back`, `verification_document_missing_front`, `verification_document_too_large` | O carregamento falhou por um problema no arquivo. Solicite ao usuário que forneça um novo arquivo que cumpra estes requisitos: - Imagem colorida (8.000 pixels por 8.000 pixels ou menor) - 10 MB ou menos - Os documentos de identidade estão no formato JPG ou PNG - Os documentos de endereço ou pessoa jurídica estão no formato JPG, PNG ou PDF - Os documentos de pessoa jurídica devem incluir todas as páginas - Não deve ser protegido por senha | | Carregar | `verification_document_country_not_supported`, `verification_document_invalid`, `verification_document_type_not_supported` | O arquivo fornecido não é uma forma [aceitável de documento de identificação dos países suportados](https://docs.stripe.com/connect/handling-api-verification.md#acceptable-verification-documents), ou não é um tipo esperado de documento de pessoa jurídica. Peça ao usuário da sua conta para fornecer um novo arquivo que atenda a esse requisito. | | Carregar | `verification_document_verification_failed_other`, `verification_document_failed_other` | Fale com o suporte da Stripe para saber o motivo da falha na verificação de identidade. | | Carregar | `verification_document_expired`, `verification_document_issue_or_expiry_date_missing` | A data de emissão ou validade não consta no documento, ou o documento está vencido. Para documentos de identidade, a data de validade deve ser posterior à data de envio do documento. Para documentos de endereço, a data de emissão não pode ser anterior aos últimos seis meses. | ## Gerenciar erros de verificação de URL Os termos de serviço da Stripe exigem que todas as empresas de e-commerce preencham a propriedade [business_profile.url](https://docs.stripe.com/api/accounts/object.md#account_object-business_profile-url) em sua `Account` com um URL funcional do site da empresa ao solicitar a capacidade `card_payments`. Uma conta conectada é considerada uma empresa de e-commerce se promover ou vender quaisquer produtos ou serviços por meio de um site online, perfil de mídia social ou aplicativo móvel. Para mais informações, consulte as [Perguntas frequentes Site da empresa para ativação de conta](https://support.stripe.com/questions/business-website-for-account-activation-faq). Se a conta conectada não opera um site para promover seu negócio, vender produtos ou aceitar pagamentos, ela é obrigada a fornecer a propriedade [business_profile.product_description](https://docs.stripe.com/api/accounts/object.md#account_object-business_profile-product_description) em seu lugar. A descrição do produto deve detalhar o tipo de produtos vendidos, bem como a forma como o negócio cobra seus clientes (por exemplo, transações presenciais). Os URLs para empresas de e-commerce devem estar em conformidade com determinados padrões de bandeiras de cartão. Para cumprir esses padrões, a Stripe realiza uma série de verificações ao revisar URLs. Saiba mais sobre as [práticas recomendadas](https://docs.stripe.com/get-started/checklist/website.md) para URLs e elementos comuns para empresas de e-commerce. Em muitos casos, você pode resolver erros de verificação de URL fazendo uma das seguintes ações: - [Gere um link](https://docs.stripe.com/connect/dashboard/remediation-links.md) de remediação no Dashboard da sua plataforma. - Atualizando o [empresa_profile.url](https://docs.stripe.com/api/accounts/update.md#update_account-business_profile-url) no objeto `Account`. Se você resolver o erro de outra forma (por exemplo, usando o site da empresa para corrigir um problema), deve acionar a nova verificação alterando o URL no objeto `Account` para qualquer outro valor e, em seguida, alterando-o imediatamente de volta. Você não pode usar a API para resolver todos os problemas relacionados ao URL. Alguns erros de verificação de URL exigem informações como acessar o site da conta conectada ou confirmar que a conta está isenta de requisitos de URL. Esses problemas exigem que você ou sua conta conectada forneça informações complementares. Se não conseguir resolver o problema, encaminhe sua conta conectada para [entrar em contato com o suporte da Stripe](https://support.stripe.com/contact). Consulte a tabela a seguir para resolver erros de verificação de URL. | Erro | Resolução | | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `invalid_url_denylisted` | O URL informado corresponde a um site comercial genérico que a Stripe acredita não estar relacionado à conta. Informe um URL específico da sua empresa. | | `invalid_url_format` | O URL informado está formatado incorretamente. Informe um URL formatado corretamente, como `https://example.com`. | | `invalid_url_web_presence_detected` | Detectamos que a conta usa um site, perfil de rede social ou aplicativo móvel para vender ou promover produtos ou serviços, mas não foi fornecido um URL. Por favor, informe um URL. | | `invalid_url_website_business_information_mismatch` | As informações no site com o URL fornecido não correspondem às informações na conta Stripe. | | `invalid_url_website_empty` | Não podemos verificar o site com a URL informado porque o site não tem conteúdo. | | `invalid_url_website_inaccessible` | Não conseguimos acessar o site com o URL informado. Se você bloqueia determinadas regiões de visualizar seu site, remova temporariamente o bloqueador até que possamos verificar seu site. | | `invalid_url_website_inaccessible_geoblocked` | Não conseguimos verificar o site com o URL informado porque determinadas regiões estão impedidas de acessá-lo. Se você bloqueia determinadas regiões de visualizar seu site, remova temporariamente o bloqueador até que possamos verificá-lo. | | `invalid_url_website_inaccessible_password_protected` | Não foi possível verificar o site com o URL informado porque o site é protegido por senha. | | `invalid_url_website_incomplete` | O site no URL informado não tem o nome da empresa ou uma descrição clara dos produtos e serviços oferecidos. | | `invalid_url_website_incomplete_cancellation_policy` | O site não contém uma política de cancelamento. | | `invalid_url_website_incomplete_customer_service_details` | O site não contém detalhes do atendimento ao cliente. | | `invalid_url_website_incomplete_legal_restrictions` | O site não contém divulgações aplicáveis a produtos e serviços que estejam sujeitos a restrições jurídicas ou de exportação. | | `invalid_url_website_incomplete_refund_policy` | O site não contém uma política de reembolso. | | `invalid_url_website_incomplete_return_policy` | O site não contém uma política e um processo de devolução. | | `invalid_url_website_incomplete_terms_and_conditions` | O site não contém termos e condições. | | `invalid_url_website_incomplete_under_construction` | Não foi possível verificar o site com o URL informado porque o site ainda está em construção. | | `invalid_url_website_other` | Não é possível verificar a empresa da conta usando um site, perfil de rede social ou aplicativo móvel no URL fornecido. | ## Lidar com os requisitos de vida útil Uma conta pode ter um ou mais objetos [Person](https://docs.stripe.com/api/persons.md) com um requisito de `proof_of_liveness`. Um requisito de `proof_of_liveness` pode exigir a cobrança de uma credencial de identificação eletrônica, como [MyInfo](https://www.singpass.gov.sg/main/individuals/) em Singapura, ou usando o Stripe Identity para coletar um documento ou selfie. Recomendamos usar um sistema de onboarding hospedado ou incorporado pela Stripe para atender a todas as variações do requisito de `proof_of_liveness`. #### Hospedado O [onboarding hospedado pela Stripe](https://docs.stripe.com/connect/hosted-onboarding.md) pode cumprir todas as variações dos requisitos de `proof_of_liveness`. [Crie um link de conta](https://docs.stripe.com/connect/hosted-onboarding.md#create-account-link) usando o ID da conta conectada e envie a conta para o `url` retornado. ```curl curl https://api.stripe.com/v1/account_links \ -u "<>:" \ -d "account={{CONNECTEDACCOUNT_ID}}" \ --data-urlencode "refresh_url=https://example.com/refresh" \ --data-urlencode "return_url=https://example.com/return" \ -d type=account_onboarding \ -d "collection_options[fields]=currently_due" ``` A conta recebe uma solicitação para cumprir o requisito `proof_of_liveness`, junto com quaisquer outros requisitos atualmente vencidos. Ouça o evento `account.updated` enviado ao seu endpoint de webhook para ser notificado quando a conta cumprir os requisitos e atualizar os dados dela. Depois que a conta cumpre o requisito, é redirecionada para o `return_url` especificado. #### Integrado O [onboarding integrado](https://docs.stripe.com/connect/embedded-onboarding.md) pode cumprir todas as formas de requisitos de `proof_of_liveness`. Ao [criar uma sessão de conta](https://docs.stripe.com/api/account_sessions/create.md), habilite o onboarding de conta especificando `account_onboarding` no parâmetro `components`. Se você não precisa coletar dados da conta bancária, desative `external_account_collection`. Normalmente, isso se aplica a plataformas Connect que desejam usar provedores externos de cobrança de contas. ```curl curl https://api.stripe.com/v1/account_sessions \ -u "<>:" \ -d "account={{CONNECTEDACCOUNT_ID}}" \ -d "components[account_onboarding][enabled]=true" \ -d "components[account_onboarding][features][external_account_collection]=false" ``` Depois de criar a sessão da conta e [inicializar o ConnectJS](https://docs.stripe.com/connect/get-started-connect-embedded-components.md#account-sessions), você pode renderizar o componente de onboarding da conta no front-end: #### JavaScript ```js // Include this element in your HTML const accountOnboarding = stripeConnectInstance.create('account-onboarding'); accountOnboarding.setOnExit(() => { console.log('User exited the onboarding flow'); }); container.appendChild(accountOnboarding); // Optional: make sure to follow our policy instructions above // accountOnboarding.setFullTermsOfServiceUrl('{{URL}}') // accountOnboarding.setRecipientTermsOfServiceUrl('{{URL}}') // accountOnboarding.setPrivacyPolicyUrl('{{URL}}') // accountOnboarding.setCollectionOptions({ // fields: 'eventually_due', // futureRequirements: 'include', // requirements: { // exclude: ['business_profile.product_description'] // } // }) // accountOnboarding.setOnStepChange((stepChange) => { // console.log(`User entered: ${stepChange.step}`); // }); ``` A conta recebe uma solicitação para cumprir o requisito `proof_of_liveness`, junto com quaisquer outros requisitos atualmente vencidos. Ouça o evento `account.updated` enviado ao seu endpoint de webhook para ser notificado quando a conta cumprir os requisitos e atualizar os dados dela. Depois que a conta cumpre os requisitos, o ConnectJS chama seu gerenciador JavaScript `onExit`. #### Identity Você pode utilizar o [Stripe Identity](https://docs.stripe.com/identity.md) para atender ao requisito `proof_of_liveness` de um objeto `Person`, realizando a coleta de um documento e de uma selfie. [Crie uma VerificationSession](https://docs.stripe.com/api/identity/verification_sessions/create.md). Ao fazer isso, defina o parâmetro `related_person` para vincular os dados de verificação coletados ao objeto `Person` que precisa cumprir o requisito `proof_of_liveness`, conforme demonstrado no exemplo a seguir. ```curl curl https://api.stripe.com/v1/identity/verification_sessions \ -u "<>:" \ -d type=document \ -d "options[document][require_matching_selfie]=true" \ -d "related_person[account]={{CONNECTEDACCOUNT_ID}}" \ -d "related_person[person]={{PERSON_ID}}" ``` Depois que você cria o `VerificationSession`, use o retorno `client_secret` para [mostrar o modal de Identidade para o usuário](https://docs.stripe.com/identity/verify-identity-documents.md?platform=web&type=modal#show-modal) ou redirecionar o usuário para o `URL`. A conclusão da verificação atualiza automaticamente a conta. Enviamos um evento `account.updated` ao endpoint de webhook quando a conta concluir a verificação de identidade e atualizar os dados. ## Gerenciar verificação de identidade Dependendo dos dados de identificação verificados para uma conta, poderemos solicitar que você envie um ou mais documentos. Os documentos necessários aparecem no hash `requirements` do objeto `Account`. Você deve carregar os documentos que aparecem em `requirements.currently_due`: - `person.verification.document`: carregue uma digitalização ou foto colorida de uma forma de identificação aceitável. - `person.verification.additional_document`: carregue uma digitalização ou foto colorida de um documento que verifique o endereço do usuário, como uma conta de serviços públicos. - `empresa.verification.document`: exige uma comprovação de documento de entidade que estabeleça o número de identificação da entidade da empresa, como o seu estatuto social. Quando `requirements.alternatives.alternative_fields_due` contém requisitos de `verification.document`, eles podem ser usados como uma alternativa para `requirements.alternatives.original_fields_due`. Por questões de segurança, a Stripe não aceita documentos de identificação por e-mail. Enviar um documento é um processo feito em duas etapas: 1. [Carregue o arquivo para a Stripe](https://docs.stripe.com/connect/handling-api-verification.md#upload-a-file). 1. [Anexe o arquivo à conta](https://docs.stripe.com/connect/handling-api-verification.md#attach-a-file) ### Carregar um arquivo Para carregar um arquivo, chame a API Files para [criar um arquivo](https://docs.stripe.com/api/files/create.md). O arquivo carregado deve cumprir estes requisitos: - Imagem colorida (8.000 pixels por 8.000 pixels ou menor) - 10 MB ou menos - Os documentos de identidade estão no formato JPG ou PNG - Os documentos de endereço ou pessoa jurídica estão no formato JPG, PNG ou PDF Envie os dados do arquivo no parâmetro `file` e defina o parâmetro [purpose](https://docs.stripe.com/api/files/create.md#create_file-purpose) de acordo com o objeto `Account` ou `Person` ao qual o documento será vinculado. Consulte a documentação da API para identificar o valor correto para o campo de finalidade. #### curl ```bash curl https://files.stripe.com/v1/files \ -u <>: \ -H "Stripe-Account: {{CONNECTED_STRIPE_ACCOUNT_ID}}" \ -F "purpose"="identity_document" \ -F "file"="@/path/to/a/file" ``` A seguinte solicitação carrega o arquivo e retorna um token: ```json { "id": ""{{FILE_ID}}"", "created": 1403047735, "size": 4908 } ``` Use o valor `id` do token para vincular o arquivo a uma conta conectada para verificação de identidade. ### Anexar o arquivo Após fazer o upload do arquivo e receber o token correspondente, atualize o objeto `Account` ou `Person` e informe o ID do arquivo no campo apropriado. O exemplo a seguir é para um documento de identificação oficial: ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons/{{PERSON_ID}} \ -u "<>:" \ -d "verification[document][front]={{FILE_ID}}" ``` O exemplo a seguir é para um documento da empresa: ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d "company[verification][document][front]={{FILE_ID}}" ``` Esta atualização altera `verification.status` para `pending`. Se mais pessoas precisarem ser verificadas, use a [API Persons](https://docs.stripe.com/api/persons.md) para atualizá-las. ### Confirmar verificação de identidade O cumprimento de todos os requisitos de verificação de identidade de uma pessoa ou empresa aciona uma notificação de webhook `v2.core.account_person.updated` ou `v2.core.account[identity].updated`, sinalizando que o processo de verificação está concluído. A Stripe pode levar de alguns minutos a alguns dias úteis para verificar uma imagem, dependendo de sua legibilidade. Se a tentativa de verificação falhar, a entrada de requisito associada contém um erro com um `código` e uma `descrição` que descrevem a causa. A `descrição` é uma mensagem de linguagem simples não localizada, como “A imagem fornecida não é legível”, que você pode apresentar ao usuário da conta. O valor do `código` é uma string, como `verification_document_not_readable`, que você pode usar para traduzir mensagens de erro para os usuários da conta. A falha na verificação também aciona uma notificação de webhook `v2.core.account_person.updated` ou `v2.core.account[identity].updated`. ### Cobrança de documentos hospedados com o Stripe Identity Você pode usar [Stripe Identity](https://docs.stripe.com/identity.md) para cumprir um`person.verification.document` requisito ao recolher um documento e anexá-lo diretamente à conta. No entanto, você não pode usar o Stripe Identity para cumprir`person.verification.additional_document` ou requisitos de `company.verification.document`. [Crie uma VerificationSession](https://docs.stripe.com/api/identity/verification_sessions/create.md). Defina o parâmetro `related_person` para vincular os dados de verificação coletados ao objeto `Person` que exige o `document`, conforme ilustrado no exemplo a seguir: ```curl curl https://api.stripe.com/v1/identity/verification_sessions \ -u "<>:" \ -d type=document \ -d "related_person[account]={{CONNECTEDACCOUNT_ID}}" \ -d "related_person[person]={{PERSON_ID}}" ``` Depois de criar a `VerificationSession`, use o `cliente_secret` retornado para [mostrar o modal Identity ao usuário](https://docs.stripe.com/identity/verify-identity-documents.md?platform=web&type=modal#show-modal) ou redirecionar o usuário para o `URL`. A conclusão da verificação atualiza automaticamente a conta. Enviamos um evento `account.updated` ao endpoint de webhook quando a conta concluir a verificação de identidade e atualizar os dados. ## Gerenciamento de requisitos estabelecidos por formulário ou suporte A Stripe informa os requisitos de risco e conformidade no hash [requisitos](https://docs.stripe.com/api/accounts/object.md#account_object-requirements). Esses requisitos têm o formato `..`. - `id`: identifica exclusivamente as informações necessárias à Stripe ou aos nossos parceiros financeiros. Esse identificador é sempre prefixo com `interv_` para indicar que é um requisito de verificação de risco. - `requirement_description`: descreve especificamente as informações necessárias para preencher o requisito, como `identity_verification`, `rejection_appeal` e assim por diante. - `resolution_path`: especifica como você ou sua conta conectada pode fornecer as informações solicitadas: - `challenge`: a conta conectada deve responder diretamente às solicitações de desafio, que geralmente exigem informações confidenciais (como uma conta bancária) ou informações que somente o proprietário da conta pode fornecer (como uma selfie). - `form`: a conta conectada pode preencher solicitações de formulário, ou você pode preenchê-las em nome dela. - `Atenção`: a conta conectada deve resolver o problema por meio de um terceiro (por exemplo, o titular da conta deve enviar uma notificação de liberação para a Stripe). - `suporte`: o requisito não pode ser executado diretamente. Entre em contato com o [suporte da Stripe](https://support.stripe.com/). - `underwriting_case`: A Stripe solicitou informações adicionais sobre a conta conectada no dashboard de avaliação de risco. ```json { "id": ""{{CONNECTED_ACCOUNT_ID}}"", "object": "account", "requirements": { "current_deadline": 1234567800, "currently_due": [ "{{REQUIREMENT_ID}}.restricted_or_prohibited_industry_diligence.form" ], "pending_verification": [], ... }, ... } ``` Depois de satisfazer um caminho de resolução, o valor do caminho de resolução do requisito pode mudar para `support` e o requisito também aparece na seção `pending_verification` do hash de requisitos. A Stripe verifica os dados enviados e descarta o requisito como resolvido ou publica um novo requisito vencido. ```json { "id": ""{{CONNECTED_ACCOUNT_ID}}"", "object": "account", "requirements": { "current_deadline": 1234567800, "currently_due": [], "pending_verification": [ "{{REQUIREMENT_ID}}.restricted_or_prohibited_industry_diligence.support" ], ... }, ... } ``` É possível remediar requisitos de risco e conformidade de qualquer uma das seguintes maneiras, dependendo do tipo de requisito: - **Conecte componentes integrados do Connect**: [conecte componentes integrados do Connect](https://docs.stripe.com/connect/get-started-connect-embedded-components.md) ao seu site e direcione os usuários para o componente integrado da [conta de onboarding](https://docs.stripe.com/connect/supported-embedded-components/account-onboarding.md), onde eles serão solicitados a concluir os pedidos pendentes na sua interface. Você também pode usar o componente integrado do [banner de notificação](https://docs.stripe.com/connect/supported-embedded-components/notification-banner.md) para informar os usuários sobre quaisquer requisitos pendentes. - **Onboarding hospedado pela Stripe**: gere links para direcionar suas contas conectadas a concluir os requisitos pendentes automaticamente por meio de links de conta ou manualmente em seu [Dashboard da plataforma](https://docs.stripe.com/connect/dashboard/review-actionable-accounts.md). - **Concluir em nome das suas contas**: use o [Dashboard da plataforma](https://docs.stripe.com/connect/dashboard/review-actionable-accounts.md) para identificar e concluir requisitos de risco baseados em formulário em nome das contas conectadas. A tabela a seguir fornece mais informações sobre os requisitos relacionados a riscos e conformidade. | Valor | Descrição | | --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `business_model_verification` | Precisamos de mais informações sobre a natureza da empresa para verificar se podemos aceitar a conta. | | `restricted_or_prohibited_industry_diligence` | A empresa pode operar em uma categoria [restrita](https://stripe.com/legal/restricted-businesses) (por exemplo, venda de bebidas alcoólicas, seguros ou produtos financeiros). Poderemos precisar de mais informações sobre a natureza da empresa ou informações de licenciamento para verificar se podemos apoiar a conta. | | `intellectual_property_usage` | A empresa pode vender produtos ou serviços protegidos por direitos autorais. Precisamos de mais informações para verificar se a conta está autorizada a vender esses produtos. | | `supportability_rejection_appeal` | Os Termos de Serviço da Stripe proíbem trabalhar com a empresa. A conta pode recorrer dessa determinação. | | `other_supportability_inquiry` | Precisamos de mais informações para verificar se podemos aceitar a conta. | | `credit_review` | Precisamos de mais informações sobre a natureza da empresa para verificar se podemos aceitar a conta. | | `reserve_appeal` | Aplicamos uma reserva à conta, o que não afeta a capacidade da conta de aceitar pagamentos com a Stripe. A conta pode recorrer dessa determinação. | | `identity_verification` | A pessoa responsável pela conta deve verificar sua identidade fazendo o upload de um documento de identificação oficial e uma selfie. | | `url_inquiry` | O URL da empresa precisa refletir os produtos e serviços fornecidos. Pode ser necessário alterar o URL para que possamos aceitar a conta. | | `address_verification` | Devemos verificar o endereço da empresa através do envio de documentos. | | `bank_account_verification` | Precisamos verificar dados da conta bancária associada à empresa. | | `customer_service_contact` | Precisamos verificar os dados de contato do atendimento ao cliente associados à empresa. | | `domain_verification` | Precisamos verificar se o proprietário da conta controla o URL ou domínio que ele forneceu. | | `fulfillment_policy` | Precisamos verificar a política de execução da empresa. | | `other_compliance_inquiry` | Precisamos de mais informações de conformidade que não correspondam às outras descrições. | | `other_business_inquiry` | Precisamos de mais dados comerciais que não correspondam às outras descrições. | | `platform_concern` | A plataforma iniciou uma intervenção (teste real ou de integração da API) em sua própria conta conectada. | | `product_description` | A conta Stripe da empresa deve incluir uma descrição precisa do produto. | | `rejection_appeal` | Os Termos de Serviço da Stripe proíbem o suporte à empresa devido ao nível de risco que ela apresenta. A conta pode recorrer dessa determinação. | | `statement_descriptor` | Precisamos de uma descrição no extrato que reflita corretamente a empresa. | | `sanctions_review` | Precisamos verificar se a empresa não está envolvida com uma pessoa ou jurisdição sancionada. | | `pep_review` | Precisamos verificar se a empresa não está envolvida com uma pessoa de interesse ou politicamente exposta. | | `legal_hold` | A Stripe é obrigada a reter fundos por um motivo jurídico. A execução da exigência pode envolver o repasse de fundos a um terceiro. | ### Recuperar requisitos por funcionalidade Você pode recuperar os requisitos de risco e conformidade específicos de cada funcionalidade usando a [API Capabilities](https://docs.stripe.com/api/capabilities.md). Cada funcionalidade possui um hash `requirements` para indicar quais requisitos específicos estão afetando essa funcionalidade. Isso pode ajudar você a entender o status de uma determinada funcionalidade. ## See also - [Verificação de identidade para contas conectadas](https://docs.stripe.com/connect/identity-verification.md) - [Tokens de conta](https://docs.stripe.com/connect/account-tokens.md) - [Teste do Connect](https://docs.stripe.com/connect/testing.md) - [Teste de verificação de identidade da conta](https://docs.stripe.com/connect/testing-verification.md) - [Informações obrigatórias de verificação](https://docs.stripe.com/connect/required-verification-information.md)