Accéder directement au contenu
Créez un compte ou connectez-vous
Le logo de la documentation Stripe
/
Demander à l’IA
Créer un compteConnectez-vous
Commencer
Paiements
Revenus
Plateformes et places de marché
Gestion des fonds
Ressources de développement
API et trousse SDKAide
Aperçu
Démarrer avec Connect
Concevez votre intégration
Principes de base de l'intégration
Exemples d'intégration
Gestion de compte
Inscrire des comptes
Configurer les Dashboard des comptes
Fonctionnalités et exigences en matière d’informations
    Capacités et configurations des comptes
    Informations de vérification requises
      Gérer les évolutions des exigences de vérification
      Gérer la vérification avec l'API
      Gérer la vérification avec des jetons
      Tester la vérification de compte
      Vérification d'identité pour les comptes connectés
      Mettre à jour les informations vérifiées
    Vérifications supplémentaires
Utiliser les types de comptes connectés
Traitement des paiements
Accepter les paiements
Effectuer des virements vers des comptes
Administration d'une plateforme
Gérer votre plateforme Connect
Formulaires fiscaux pour votre plateforme Connect
États-Unis
Français (Canada)
AccueilPlateformes et places de marchéCapabilities and information requirementsRequired verification information

Gérer la vérification avec l'API

Learn how Connect platforms can use webhooks and the API to handle verification of connected accounts.

Comptes connectés applicables

Ce contenu ne s’applique qu’aux comptes connectés avec certaines configurations.
Ce contenu s’applique aux comptes connectés pour lesquels la plateforme est chargée de collecter les informations mises à jour lorsque les exigences arrivent à échéance ou changent.

Connect platforms that onboard connected accounts using the API must provide Stripe with required information for Know Your Customer (KYC) purposes and to enable account capabilities. They must collect the information themselves and use the Accounts and Persons APIs to provide it to Stripe. We then verify the information, asking for more details when needed.

Responsible platforms must also monitor their connected accounts’ requirement statuses and handle any updates in a timely manner.

Processus de vérification

Pour activer les paiements et virements d’un compte connecté, Stripe a besoin de certaines informations, dont la nature varie selon :

  • Le pays d’origine des comptes connectés
  • Le type de contrat de prestation de services qui s’applique aux comptes connectés.
  • Les fonctionnalités demandées pour les comptes connectés.
  • Les paramètres business_type (par exemple, individuel ou entreprise) et company.structure (par exemple, public_corporation ou private_partnership)

Platforms must choose the proper onboarding flow for their business and connected accounts to meet the KYC requirements. That means providing all the requisite information up front or incrementally. Either way, set up your integration to watch for and respond to requests from Stripe.

  1. Establish a Connect webhook URL in your webhook settings to watch for activity, especially account.updated events. When using the Persons API, also watch for person.updated events.
  2. Immediately after creating an account, check the Account object’s requirements.currently_due attribute for additional requirements. Obtain any required information from the connected account and update the Account. As long as requirements.currently_due isn’t empty, the Account has outstanding requirements that might restrict its capabilities.
  3. Continue watching for account.updated event notifications to see if the requirements hash changes, and ask the connected account for additional information as needed.

When you provide additional information, you don’t need to resubmit previously verified details. For example, if the dob is already verified, you don’t need to provide it again unless it changes.

Stripe risk review requirements

Stripe risk reviews of a connected account can add extra requirements, which you can’t provide using the API. You can take action in your Dashboard, or the connected account can provide them through a Connect embedded component, Stripe-hosted onboarding, or remediation link.

Determine if verification is needed

The charges_enabled and payouts_enabled attributes on an Account object indicate whether it can create charges and accept payouts.

If either of those attributes is false, check the Account’s requirements hash to determine what information is needed to enable charges and payouts.

The requirements hash contains the following properties:

Property Description
current_deadlineThe date by which you must resolve the requirements in currently_due to keep the account active. This is the earliest deadline across all of the account’s requested capabilities and risk requirements, including any hidden capabilities.
currently_dueAn array containing the requirements that you must resolve by the current_deadline for the account to remain active.
disabled_reasonA description of why the account isn’t enabled and why it can’t process charges or transfers.
errorsAn array containing details about any currently_due requirements with errors that you must resolve. For more information, see the Validation and verification errors section.
eventually_dueAn array containing the requirements that you might need to resolve, depending on whether the corresponding thresholds are reached. After one of these potential requirements becomes required, it appears in both the eventually_due and currently_due arrays. If a requirement becomes required and its due date is before the existing current_deadline, the current_deadline changes to the corresponding threshold’s enforcement date.
past_dueAn array containing the requirements that have disabled capabilities because they weren’t resolved before the current_deadline. The past_due array is a subset of currently_due.
pending_verificationAn array containing requirements that are being reviewed or that might become required based on the review. This array is empty unless an asynchronous verification is pending. Unsuccessful verification moves a requirement to eventually_due, currently_due, alternative_fields_due, or past_due. A requirement that failed and is pending verification can also remain in pending_verification.

The example below shows what the requirements hash might look like for an account that has information that’s currently_due, information that’s eventually_due, and information that raised verification errors.

{ "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": [] }, ... }

If requirements.currently_due contains entries, check requirements.current_deadline, which is a Unix timestamp. Stripe typically disables payouts on the account if we don’t receive the information by the current_deadline. However, other consequences might apply in some situations. For example, if payouts are already disabled and the account is unresponsive to our inquiries, Stripe might also disable the ability to process charges.

Separately, the requirements.disabled_reason property can contain a string describing why the account has certain capabilities disabled. In some situations, platforms and connected accounts can submit a form to resolve or appeal the reason.

  • Connected accounts with access to the full Stripe Dashboard, including Standard accounts, can access additional information (if available) in the Dashboard.
  • Platforms can look up an account’s disabled_reason on the Connected accounts page. You might be able to provide additional information on behalf of your connected accounts. If the disabled reason is associated with an appeal, you can generate a link to a form for the account to resolve the appeal.
MotifSignification
action_required.requested_capabilitiesYou must request capabilities for the connected account.
listedThe account might be on a prohibited persons or companies list. Stripe investigates and either rejects or reinstates the account accordingly.
rejected.fraudThe account is rejected because of suspected fraud or illegal activity.
rejected.incomplete_verificationLe compte est exclu des exigences de vérification incomplètes dans les limites du seuil requis.
rejected.listedThe account is rejected because it’s on a third-party prohibited persons or companies list, for example, a financial services provider or government.
rejected.otherThe account is rejected for another reason.
rejected.terms_of_serviceThe account is rejected because of suspected terms of service violations.
requirements.past_dueAdditional verification information is required to enable capabilities on this account.
requirements.pending_verificationStripe vérifie actuellement les informations du compte connecté. Aucune action n’est requise. Consultez le tableau requirements.pending_verification pour prendre connaissance des informations en cours de vérification.
under_reviewThe account is under review by Stripe.

Validation and verification errors

The Account object includes a requirements.errors array that explains why the validation or verification requirements haven’t been met. You must fulfill these requirements in order to enable the account’s capabilities.

The errors array has the following attributes:

Attribute Description
codeIndicates the type of error that occurred. See the API reference for all possible error codes.
reasonA plain language message that explains why the error occurred and how to resolve it.
requirementSpecifies which information from the currently_due or alternative_fields_due array is needed.

The following example shows an errors array for an account with requirements that are currently_due, the reason why the submitted information can’t be used to enable the account, and how to resolve the error.

{ "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.", } ] }, ... }

If verification or validation is unsuccessful, requirements can reappear in currently_due, alternative_fields_due, or eventually_due with error information. To receive notification of these requirements, set a Connect webhook to listen to the account.updated event.

Informations de l’entreprise

Stripe verifies all information submitted about a business. For example, we might verify that the business URL is valid, is reachable, and includes information about the business. To check the verification status, you can retrieve the requirements hash on the Account object.

The following errors relate to business information verification:

Error Résolution
invalid_business_profile_nameBusiness names must be easy to understand and consist of recognizable words.
invalid_business_profile_name_denylistedThe business name must match the account’s business and can’t be a generic or well-known name.
invalid_product_description_lengthThe product description must be at least 10 characters.
invalid_product_description_url_matchThe product description must be different from the business URL.

See Handle URL verification errors to resolve the following URL errors:

  • 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

Business representatives

You must collect and submit information about the people associated with a connected account. The process depends on whether your connected accounts are companies, individuals, or both.

For companies, use the Persons API to add the information to a Person object associated with the Account object. To add documents to the verification hash on the Person object, first use the Files API to upload the document files to Stripe’s servers.

For individuals, you can either create a Person or add the information to the individual hash on the Account object.

If your connected accounts include both companies and individuals, create Person objects so you can use the same process for all of them.

To check the verification status of an Account, you can retrieve its requirements hash.

The following errors relate to person verification:

Error Résolution
invalid_address_city_state_postal_codeStripe couldn’t validate the combination of city, state, and postal code in the provided address.
invalid_address_highway_contract_boxThe person’s address must be a valid physical address that the account conducts business from, and it can’t be a Highway Contract Box.
invalid_address_private_mailboxThe person’s address must be a valid physical address that the account conducts business from, and it can’t be a private mailbox.
invalid_dob_age_under_minimumLa personne doit avoir au moins #### ans.
invalid_dob_age_over_maximumLa date de naissance de la personne doit se situer dans les #### dernières années.
invalid_phone_numberStripe couldn’t validate the phone number on the account. Make sure the formatting matches the person’s country.
invalid_street_addressStripe couldn’t validate the street name or number in the provided address.

invalid_tax_id

invalid_tax_id_format

The tax ID must be a unique set of 9 numbers without dashes or other special characters.

Acceptable verification documents

The types of identity documents that Stripe accepts for connected accounts vary by country and are the same as for other Stripe accounts.

Informations sur l' Entreprise

Au cours du processus de vérification, vous devrez peut-être recueillir des informations sur l'entreprise pour un compte.

To check the verification status, you can retrieve the company.verification subhash on the Account object.

{ "id":
"{{CONNECTED_ACCOUNT_ID}}"
, "object": "account", ... "company": { "verification": { "document": null }, ... }, ... }

You can look up the definition for each verification attribute on the Account object.

Libellés de relevé bancaire

Stripe validates the statement descriptor and statement descriptor prefix when you set them on an Account. For example, we might verify that the first 22 characters, which are provided to the card networks, match the description of the business. We check whether they’re a close match of the Account’s business_profile.name, business_profile.url, or the name of the company or individual.

To check the statement descriptor verification status, you can retrieve the requirements hash on the Account object.

The following errors relate to statement descriptor verification:

Error Résolution
invalid_statement_descriptor_lengthThe statement descriptor must be at least 5 characters.
invalid_statement_descriptor_business_mismatchThe statement descriptor must be similar to the business name, legal entity name, or business URL.

invalid_statement_descriptor_denylisted

invalid_statement_descriptor_prefix_denylisted

The statement descriptor can’t match a generic or well-known business name.

invalid_statement_descriptor_prefix_mismatchLe préfixe de libellé de relevé bancaire doit correspondre à votre libellé de relevé bancaire, au nom de votre entreprise, à la dénomination de votre entité juridique ou à votre URL.

Handle document verification problems

Refer to the following table to resolve common requirement verification errors related to uploaded document files.

If verification fails, don’t resubmit the same file. Duplicate uploads fail automatically.

Verification typede la transactionRésolution
Businessverification_failed_keyed_match, verification_failed_document_matchWe couldn’t verify the information on the account. Your account user can either upload a verification document or update their information.
Businessverification_failed_tax_id_not_issued, verification_failed_tax_id_matchThe IRS couldn’t verify the information that your account user provided. Ask them to correct any possible errors in the company name or tax ID or upload a document that verifies them. (US only)
Businessverification_failed_id_number_match, verification_failed_name_match, verification_failed_address_matchThe information on the document doesn’t match the information provided by the account user. Ask them to verify their information and either correct it or upload a matching document.
Businessverification_document_address_missing, verification_document_id_number_missing, verification_document_name_missingThe uploaded document is missing required information. Ask your account user to upload another document that contains the missing information.
Businessverification_legal_entity_structure_mismatchThe business type or structure seems to be incorrect. Provide the correct business type and structure for this account.
Identityverification_failed_keyed_identityWe couldn’t verify the name on the account. Ask your account user to verify that they provided their full legal name and to also provide a government-issued photo ID matching that name.
Identityverification_document_name_mismatch, verification_document_dob_mismatch, verification_document_address_mismatch, verification_document_id_number_mismatch, verification_document_photo_mismatchThe information on the ID document doesn’t match the information provided by the account user. Ask them to verify and correct the provided information.
Identityverification_document_fraudulent, verification_document_manipulatedThe document might have been altered. Contact Stripe support to learn why verification failed.
Relationshipinformation_missingSee the error message for the missing information in the document or keyed-in data. If related to holding companies with significant ownership, the error code also identifies the missing holding companies. Learn more about beneficial ownership verification for holding companies.
Relationshipverification_failed_authorizer_authorityWe couldn’t verify the authority of the provided authorizer. Change the authorizer to a person who is registered as an authorized representative. Learn more about representative authority verification.
Relationshipverification_failed_representative_authorityWe couldn’t verify the authority of the account representative. Add an authorizer to the account and provide a Letter of Authorization signed by the authorizer. Learn more about representative authority verification.
Relationshipverification_missing_ownersA business owner wasn’t provided. Provide information for all business owners.
Relationshipverification_missing_directorsDirectors weren’t provided. Update the account and upload a registration document with the current directors.
Relationshipverification_document_directors_mismatchThe directors listed in the document are missing from the account. Update the account and upload a registration document with the current directors.
Relationshipverification_rejected_ownership_exemption_reasonWe rejected the ownership exemption reason. Choose a different exemption reason or upload a proof of ultimate beneficial ownership document.
Uploadverification_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_largeThe upload failed because of a problem with the file. Ask your account user to provide a new file that meets these requirements:
  • Image en couleur (de 8 000 pixels par 8 000 pixels maximum)
  • 10 Mo maximum
  • Pièces d’identité au format JPG ou PNG
  • Justificatifs d’adresse ou d’entité juridique au format JPG, PNG ou PDF
  • Toutes les pages des documents concernant l’entité juridique doivent être incluses
  • Ne doit pas être protégé à l’aide d’un mot de passe
Uploadverification_document_country_not_supported, verification_document_invalid, verification_document_type_not_supportedThe provided file isn’t an acceptable form of ID from a supported country, or isn’t an expected type of legal entity document. Ask your account user to provide a new file that meets that requirement.
Uploadverification_document_verification_failed_other, verification_document_failed_otherContact Stripe support to learn why identity verification failed.
Uploadverification_document_expired, verification_document_issue_or_expiry_date_missingThe document is missing an issue or expiry date or is expired. The expiration date on an identity document must be after the date the document was submitted. The issue date on an address document must be within the last six months.

Handle URL verification errors

Stripe’s terms of service require all e-commerce businesses to populate the business_profile.url property on their Account with a working URL of their business website when requesting the card_payments capability. A connected account is considered an e-commerce business if it promotes or sells any products or services through an online website, social media profile, or mobile application. For more information, see the Business website for account activation FAQ.

If the connected account doesn’t operate a website to promote their business, sell products, or accept payments, they’re required to provide the business_profile.product_description instead. A product description must detail the type of products being sold, as well as the manner in which the business charges its customers (for example, in-person transactions).

URLs for e-commerce businesses must conform to certain card network standards. In order to comply with these standards, Stripe conducts a number of verifications when reviewing URLs. Learn about the best practices for URLs and common elements for e-commerce businesses.

In many cases, you can resolve URL verification errors by doing either of the following:

  • Generating a remediation link from your platform Dashboard.
  • Updating the business_profile.url on the Account object.

If you resolve the error another way (for example, by using the company website to fix a problem), you must trigger re-verification by changing the URL on the Account object to any other value, then immediately changing it back.

You can’t use the API to resolve all URL-related issues. Certain URL verification errors require information such as how to access the connected account’s website or to attest that the account is exempt from URL requirements. These issues require you or your connected account to provide supplemental information.

If you can’t resolve the issue, direct your connected account to contact Stripe support.

Refer to the following table to resolve URL verification errors.

Error Résolution
invalid_url_denylistedThe provided URL matches a generic business website that Stripe believes is unrelated to the account. Provide a URL that’s specific to the business.
invalid_url_formatThe provided URL is formatted incorrectly. Provide a URL that’s formatted correctly, such as https://example.com.
invalid_url_web_presence_detectedWe detected that the account uses a website, social media profile, or mobile application to sell or promote products or services, but a URL hasn’t been provided. Provide a URL.
invalid_url_website_business_information_mismatchThe information on the website at the provided URL doesn’t match the information on the Stripe account.
invalid_url_website_emptyWe can’t verify the website at the provided URL because the website has no content.
invalid_url_website_inaccessibleWe can’t reach the website at the provided URL. If you block certain regions from viewing your website, temporarily remove the blocker until we can verify your website.
invalid_url_website_inaccessible_geoblockedWe can’t verify the website at the provided URL because certain regions are blocked from accessing it. If you block certain regions from viewing your website, temporarily remove the blocker until we can verify your website.
invalid_url_website_inaccessible_password_protectedWe can’t verify the website at the provided URL because the website is password-protected.
invalid_url_website_incompleteLe site Web à l’URL fournie ne comporte pas de nom d’entreprise ni de description claire des biens et services offerts.
invalid_url_website_incomplete_cancellation_policyThe website doesn’t contain a cancellation policy.
invalid_url_website_incomplete_customer_service_detailsThe website doesn’t contain customer service details.
invalid_url_website_incomplete_legal_restrictionsThe website doesn’t contain applicable disclosures for products and services that are subject to legal or export restrictions.
invalid_url_website_incomplete_refund_policyThe website doesn’t contain a refund policy.
invalid_url_website_incomplete_return_policyThe website doesn’t contain a return policy and process.
invalid_url_website_incomplete_terms_and_conditionsThe website doesn’t contain terms and conditions.
invalid_url_website_incomplete_under_constructionWe can’t verify the website at the provided URL because the website is still under construction.
invalid_url_website_otherWe can’t verify the account’s business using a website, social media profile, or mobile application at the provided URL.

Handle liveness requirements

An account can have one or more Person objects with a proof_of_liveness requirement. A proof_of_liveness requirement might require collection of an electronic ID credential, such as MyInfo in Singapore, or by using Stripe Identity to collect a document or selfie. We recommend using Stripe-hosted or embedded onboarding to satisfy all variations of the proof_of_liveness requirement.

L’inscription des utilisateurs hébergée par Stripe permet de répondre à toutes les formes d’exigences proof_of_liveness.

Créez un lien de compte à l’aide de l’ID de compte connecté et envoyez le compte à l’url renvoyée.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/account_links \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d account=
"{{CONNECTED_ACCOUNT_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

Le compte reçoit un message l’invitant à répondre à l’exigence proof_of_liveness, ainsi qu’à toute autre exigence devant être satisfaite. Écoutez l’événement account.updated envoyé à votre endpoint de webhook pour recevoir une notification lorsque le compte satisfait aux exigences et met à jour ses informations. Une fois que le compte est en règle, il est redirigé vers la return_url spécifiée.

Handle identity verification

Depending on the identity information we have verified for an account, we might ask you to upload one or more documents. The required documents appear in the requirements hash on the Account object.

You must upload the documents that appear in requirements.currently_due:

  • person.verification.document: Upload a color scan or photo of an acceptable form of ID.
  • person.verification.additional_document: Upload a color scan or photo of a document that verifies the user’s address, such as a utility bill.
  • company.verification.document: Upload a proof of entity document that establishes the business entity ID number, such as the company’s articles of incorporation.

If requirements.alternatives.alternative_fields_due contains verification.document requirements, you can use them as an alternative to requirements.alternatives.original_fields_due.

For security reasons, Stripe doesn’t accept ID documents through email. Uploading a document is a two-step process:

  1. Upload the file to Stripe.
  2. Attach the file to the account.

Upload a file

To upload a file, call the Files API to create a File.

Le fichier chargé doit respecter les critères suivants :

  • Image en couleur (de 8 000 pixels par 8 000 pixels maximum)
  • 10 Mo maximum
  • Pièces d’identité au format JPG ou PNG
  • Justificatifs d’adresse ou d’entité juridique au format JPG, PNG ou PDF

Pass the file data in the file parameter and set the purpose parameter according to the Account or Person object that will hold the document. To identify the purpose, look up the property in the API Reference.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://files.stripe.com/v1/files \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -H "Stripe-Account: {{CONNECTED_STRIPE_ACCOUNT_ID}}" \ -F "purpose"="identity_document" \ -F "file"="@/path/to/a/file"

The following request uploads the file and returns a token:

{ "id":
"{{FILE_ID}}"
, "created": 1403047735, "size": 4908 }

Use the token’s id value to attach the file to a connected account for identity verification.

Joignez le fichier

After you upload the file and receive a representative token, update the Account or Person object and provide the file ID in the appropriate parameter.

The following example is for a government-issued ID document:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/accounts/
{{CONNECTED_ACCOUNT_ID}}
/persons/
{{PERSON_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "verification[document][front]"=
"{{FILE_ID}}"

The following example is for a company document:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/accounts/
{{CONNECTED_ACCOUNT_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "company[verification][document][front]"=
"{{FILE_ID}}"

This update changes verification.status to pending. If an additional person needs verification, use the Persons API to update them.

Confirm ID verification

Satisfying all identity verification requirements for a person or company triggers a v2.core.account_person.updated or v2.core.account[identity].updated webhook notification, signaling that the verification process is complete.

Stripe can take anywhere from a few minutes to a few business days to verify an image, depending on its readability.

If the verification attempt fails, the associated requirement entry contains an error with a code and description describing the cause. The description is a non-localized plain language message, such as “The image supplied isn’t readable,” that you can present to your account user. The code value is a string, such as verification_document_not_readable, that you can use to localize error messages for your account users.

Verification failure also triggers a v2.core.account_person.updated or v2.core.account[identity].updated webhook notification.

Hosted document collection with Stripe Identity

You can use Stripe Identity to fulfill a person.verification.document requirement by collecting a document and attaching it directly to the account. However, you can’t use Stripe Identity to fulfill person.verification.additional_document or company.verification.document requirements.

Create a VerificationSession. Specify the related_person parameter to associate the collected verification data with the Person object that requires the document, as shown in the following example:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/identity/verification_sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d type=document \ -d "related_person[account]"=
"{{CONNECTED_ACCOUNT_ID}}"
\ -d "related_person[person]"=
"{{PERSON_ID}}"

After you create the VerificationSession, use the returned client_secret to show the Identity modal to the user or redirect the user to the url. Verification completion automatically updates the account.

We send an account.updated event to your webhook endpoint when the account completes the identity check and updates their information.

Handle form or support-based requirements

Stripe reports risk and compliance requirements in the requirements hash. These requirements have the <id>.<requirement_description>.<resolution_path> format.

  • id: Uniquely identifies information that Stripe or our financial partners need. This identifier is always prefixed with interv_ to indicate that it’s a risk verification requirement.
  • requirement_description: Specifically describes the information needed to complete the requirement, such as identity_verification, rejection_appeal, and so on.
  • resolution_path: Specifies how you or your connected account can provide the requested information:
    • challenge: The connected account must respond directly to challenge prompts, which often require sensitive information (such as a bank account) or information that only the account owner can provide (such as a selfie).
    • form: The connected account can complete form requests, or you can complete them on their behalf.
    • support: The requirement isn’t directly actionable. Contact Stripe support.
{ "id":
"{{CONNECTED_ACCOUNT_ID}}"
, "object": "account", "requirements": { "current_deadline": 1234567800, "currently_due": [ "{{REQUIREMENT_ID}}.restricted_or_prohibited_industry_diligence.form" ], "pending_verification": [], ... }, ... }

Après avoir satisfait une résolution, la valeur du chemin de résolution utilisé peut passer à l’état support et l’exigence apparaît également dans la section pending_verification du hachage des exigences. Stripe vérifie les informations soumises et rejette l’exigence comme étant résolue ou publie une nouvelle exigence en attente de résolution.

{ "id":
"{{CONNECTED_ACCOUNT_ID}}"
, "object": "account", "requirements": { "current_deadline": 1234567800, "currently_due": [], "pending_verification": [ "{{REQUIREMENT_ID}}.restricted_or_prohibited_industry_diligence.support" ], ... }, ... }

Vous pouvez répondre aux exigences en matière de risque et de conformité de l’une des manières suivantes, selon le type d’exigence :

  • Connect embedded components: Embed Connect components into your website, and direct your users to the account onboarding embedded component, where they’re prompted to complete outstanding requirements in your UI. Alternatively, use the notification banner embedded component to prompt your users for any outstanding requirements.
  • Stripe hosted onboarding: Generate links to direct your connected accounts to complete outstanding requirements programmatically through account links or manually in your platform Dashboard.
  • Complete on behalf of your accounts: Use your platform Dashboard to identify and complete form-based risk requirements from connected account details on behalf of your accounts.

The following table provides more information about risk- and compliance-related requirements.

Value Description
business_model_verificationWe require more information about the nature of the business to verify that we can support the account.
restricted_or_prohibited_industry_diligenceThe business might operate in a restricted category (for example, selling alcohol, insurance, or financial products). We might require more information about the nature of the business or licensing information to verify that we can support the account.
intellectual_property_usageThe business might be selling products or services that are protected by copyright. We require more information to verify that the account is authorized to sell those products.
supportability_rejection_appealLes Conditions d’utilisation du service Stripe interdisent la prise en charge de l’activité. Le compte peut faire appel de cette décision.
other_supportability_inquiryWe require more information to verify that we can support the account.
credit_reviewWe require more information about the nature of the business to verify that we can support the account.
reserve_appealWe applied a reserve to the account, which doesn’t impact the account’s ability to accept payments with Stripe. The account can appeal this determination.
identity_verificationThe person responsible for the account must verify their identity by uploading a government-issued ID document and a selfie.
url_inquiryThe business URL must reflect the products and services that it provides. We might require a change to the URL before we can support the account.
address_verificationWe must verify the address of the business through document upload.
bank_account_verificationWe must verify bank account details associated with the business.
capability_disable_appealThe Stripe terms of service prohibit supporting specific capabilities associated with this business. The account can appeal this determination.
customer_service_contactWe must verify customer service contact information associated with the business.
domain_verificationWe must verify that the account owner controls the URL or domain that they provided.
fulfillment_policyWe must verify the business’s fulfillment policy.
other_compliance_inquiryWe require more compliance information that doesn’t fit any of the other descriptions.
other_business_inquiryWe require more business information that doesn’t fit any of the other descriptions.
platform_concernThe platform initiated an intervention (real or an API integration test) on its own connected account.
product_descriptionLe compte Stripe de l’entreprise doit contenir une description exacte du produit.
rejection_appealThe Stripe terms of service prohibit supporting the business because of the level of risk it presents. The account can appeal this determination.
statement_descriptorNous avons besoin d’un libellé de relevé bancaire qui correspond exactement à l’activité de l’entreprise.

Voir aussi

  • Identity verification for connected accounts
  • Account tokens
  • Testing Connect
  • Testing account identity verification
  • Required verification information
Cette page vous a-t-elle été utile?
OuiNon
  • Besoin d'aide? Contactez le service d'assistance.
  • Consultez notre journal des modifications.
  • Des questions? Contactez l'équipe commerciale.
  • GML? Lire llms.txt.
  • Optimisé par Markdoc