Identity Verification for Custom Accounts

    Identity verification of Stripe accounts you manage is an important—and required—step toward reducing risk on your platform when using Connect.

    Every country has its own laws when it comes to paying out funds to individuals and companies. These are typically known as “Know Your Customer” (KYC) regulations. Regardless of the country, the broad requirements are:

    • Collecting information about the individual or company receiving funds
    • Verifying the information is accurate

    To support the widest range of platforms and user experiences, Connect lets Custom accounts collect the required information from your users and provide it to Stripe. This may include personal information and a scan of a government-issued ID. We’ll then attempt verification, asking for more information when needed.

    The rest of this page goes through the verification flow options, how our API fields translate to both companies and individuals, and how to localize information requests. You should also read our Handling Identity Verification with the API guide to learn how to programmatically provide information and handle requests.

    Verification flow and requirements

    Connect platforms need to collect the required information from Custom account owners and provide it to Stripe for verification. It’s up to the platform to decide exactly when and how to ask for information from its users while still meeting our requirements.

    The minimum information needed to send payouts must be provided to Stripe by the platform within seven days of the first charge created for that account or after processing a couple of thousand U.S. dollars (or equivalent) in charges—whichever comes first. This information includes:

    • The entity type (individual or company)
    • The business name (company only)
    • Full legal name of the individual or company representative
    • Date of birth of the individual or company representative

    If this isn’t completed, Stripe temporarily pauses charge creation until this information is provided. After 21 calendar days from the first charge, if this information still isn’t provided, charges on the account are automatically refunded. Charges are refunded incrementally, not in a lump sum. For example, if the first charge is made on May 1st, and the last charge is made on May 6th, the first charge is refunded on May 22nd, and the last charge is refunded on May 27th.

    Once the Custom account has received payouts totaling more than a couple of thousand U.S. dollars (or equivalent), we’ll ask for any additional verification information that is still required. If Stripe cannot verify the account with the information provided after paying out another few thousand U.S. dollars (or equivalent), payouts for that Custom account are temporarily paused until identity verification is complete.

    With this process in mind, platforms should decide whether to provide the bare minimum of information or the full user details up front.

      Provide bare minimum Provide full details
    • Fastest way to start
    • Higher onboarding rate
    • A single request for information (normally)
    • Fewer problems in receiving payouts
    • Weeds out potential fraudsters
    • Need to request and provide information later
    • Users may be bothered by repeated requests
    • More likely to see delays in receiving payouts
    • Some legitimate users may turn away
    • If not done properly at first, you'll still need to ask for more information later

    Individual vs. company information

    The specific KYC information required depends upon the type of entity involved. For individuals, it’s straightforward: collect and provide information about that person.

    For companies, collect information about the company. You’ll also need to collect information about one or more company representatives. A company representative can be anyone who has authorization to set up a Custom account on the company’s behalf. You might subsequently need to provide additional information about the company’s additional owners, if applicable.

    The API uses the same terminology regardless of entity type, so you may need to customize how you prompt your users for more for information. Consider these examples (this is not an exhaustive list):

      Individual Company
    legal_entity.address.* Individual's address Business's address
    legal_entity.first_name, legal_entity.dob.*, legal_entity.personal_address.* Individual's information Company representative's information
    legal_entity.personal_id_number Individual's personal ID number Company representative's personal ID number
    legal_entity.verification.document Individual's ID Company representative's ID

    Internationalization and localization

    If you support users in multiple countries, you’ll need to consider internationalization and localization when asking for information. Creating an interface that uses not only the user’s preferred language but also the proper localized terminology results in a smoother onboarding experience.

    For example, instead of always displaying Business Tax ID to your users, regardless of country, you should present:

    • EIN, U.S.
    • Business Number, Canada
    • Company Number, UK

    You can find recommended country-specific labels along with the other required verification information.

    Further reading

    Now that you've learned the basics of identity verification, you may want to read:


    We're always happy to help with code or other questions you might have! Search our documentation, contact support, or connect with our sales team. You can also chat live with other developers in #stripe on freenode

    Was this page helpful? Yes No


    Thank you for helping improve Stripe's documentation. If you need help or have any questions, please consider contacting support.