Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
Get started with Connect
Integration fundamentals
    Make API calls for connected accounts
    Integration recommendations
    Listen for updates
    Testing
    Accounts v2 API overview
Example integrations
Onboard accounts
Configure account Dashboards
Accept payments
Pay out to accounts
Manage your Connect platform
Tax forms for your Connect platform
Work with connected account types
HomePlatforms and marketplacesIntegration fundamentals

Testing Stripe Connect

Before going live, test your Connect integration for account creation, identity verification, and payouts.

Copy page

Use testing to make sure your Connect integration handles different flows correctly. You can use Sandboxes to simulate live mode while taking advantage of Stripe-provided special tokens to use in your tests. See the payments testing guide for more information on testing charges, disputes, and so on.

Create test accounts

You can create multiple test accounts with different account types or controller properties that you want to test.

You can create test accounts using the Accounts API or in the Stripe Dashboard.

Use 000-000 as the SMS code when prompted for test accounts.

Test the OAuth flow

You can test your OAuth integration with connected accounts that use a Stripe-hosted Dashboard using your test client_id.

Your test client_id is ca_FkyHCg7X8mlvCUdMDao4mMxagUfhIwXb. You can find this in your Connect OAuth settings.

Your test client_id allows you to:

  • Set your redirect_uri to a non-HTTPS URL
  • Set your redirect_uri to localhost
  • Force-skip the account form instead of having to fill out an entire account application (Stripe Dashboard accounts only)
  • Get test access tokens for connected accounts

To test the OAuth flow, create a new account after clicking the OAuth link. You can also test connecting an existing Stripe account only if the email is different from your platform account.

Identity verification

Testing verification guide

Verification is a crucial component for onboarding accounts. Use our dedicated guide to testing verification.

After creating a test connected account, you can use tokens to test different verification statuses to make sure you’re handling different requirements and account states. You can use the following tokens to test verification with test accounts.

Test dates of birth

Use these dates of birth (DOB) to trigger certain verification conditions.

DOBType
1901-01-01Successful verification. Any other DOB results in unsuccessful verification.
1902-01-01Successful, immediate verification. The verification result is returned directly in the response, not as part of a webhook event.
1900-01-01This DOB triggers an Office of Foreign Assets Control (OFAC) alert.

Test addresses

Use these addresses for line1 to trigger certain verification conditions. You must pass in legitimate values for the city, state, and postal_code arguments.

TokenType
address_full_match​Successful verification.
address_full_match_sync​Successful, immediate verification.
address_no_matchUnsuccessful verification.
address_line1_no_matchUnsuccessful verification from partial address match.

Test personal ID numbers

Use these personal ID numbers for the individual.id_number attribute on the Account or the id_number attribute on the Person object to trigger certain verification conditions.

NumberType
000000000Successful verification. 0000 also works for SSN last 4 verification.
111111111Unsuccessful verification (identity mismatch).
222222222Successful, immediate verification. The verification result is returned directly in the response, not as part of a webhook event.

Test identity documents

For testing, use test images or file tokens instead of uploading your own test IDs. For details, refer to Uploading a file.

Test document images

You can use a verified image that causes the user to be automatically marked verified. You can use an unverified image that causes the user to be automatically marked unverified.

Note

Test images take precedence over test ID numbers. If you upload a verified image, verification succeeds, even if you also provide an unsuccessful test ID value. Similarly, an unverified image automatically fails verification regardless of the value of other test artifacts.

Test file tokens

Use these file tokens to trigger certain identity verification conditions.

TokenType
file_identity_document_successUses the verified image and marks that document requirement as satisfied.
file_identity_document_failureUses the unverified image and marks that document requirement as not satisfied.

Business information verification

Business address validation

In some countries, the business address associated with your connected account must be validated before charges, payouts, or both can be enabled on the connected account.

Test business addresses

Use these addresses for line1 to trigger certain validation conditions. You must pass in legitimate values for the city, state, and postal_code arguments.

Make sure you start with an address token that has the least permissive validation condition you want to test for. This is because you can’t use an address token that has a more restrictive validation condition than the previous token used. For example, if you provided address_full_match to have both charges and payouts enabled, you can’t disable payouts or charges afterward by changing the token to an invalid one. You can work around this by creating a new account with the relevant token.

TokenType
address_full_match​Both charges and payouts are enabled on the account.
address_no_match​Only charges are enabled on the account. Since validation failed on the line1 attribute, it becomes listed again in the requirements hash.
address_line1_no_matchNeither charges nor payouts are enabled on the account. Since validation failed, the address attributes become listed again in the requirements hash.

Test business tax IDs

Use these business tax ID numbers for company.tax_id to trigger certain verification conditions. The test behavior might change depending on the Connected Account countries and the regulations in those countries. Depending on the country’s regulation, a valid tax document can mark tax ID verified in these countries.

NumberType
000000000Successful verification.
000000001Successful verification as a non-profit.
111111111Unsuccessful verification (identity mismatch).
111111112Unsuccessful verification (tax ID not issued).
222222222Successful, immediate verification. The verification result is returned directly in the response, not as part of a webhook event.

Test directorship verification

Stripe performs directorship verification by comparing the list of directors on the Account object against a list retrieved from local registries. If the country requires it, you can trigger verification for an Account object by using these tokens for the first_name attribute on the associated Person and setting the relationship.director attribute on the Person to true.

TokenType
mismatch_directorUnsuccessful verification of director due to a mismatched name. This can trigger a verification_directors_mismatch verification error.
missing_directorUnsuccessful verification due to directors missing on the account. This can trigger a verification_missing_directors verification error.
extraneous_directorUnsuccessful verification due to too many directors on the account. This can trigger a verification_extraneous_directors verification error.

The verification errors can trigger if multiple directors on the Account object use these magic tokens.

Test company name verification

Trigger company name verification for an Account object by using this token for the company.name attribute.

TokenType
mismatch_business_nameUnsuccessful verification due to a mismatched business name.
disallowed_nameUnsuccessful verification due to a generic or well-known business name.
match_name_relationshipsSuccessful verification of the business name.
match_name_onlyUnsuccessful verification due to a business name discrepancy.

Test statement descriptor verification

Trigger statement descriptor verification for an Account object by using this token for the settings.payments.statement_descriptor attribute.

TokenType
mismatchTrigger an invalid_statement_descriptor_business_mismatch verification error.
disallowedTrigger an invalid_statement_descriptor_denylisted verification error.

Trigger statement descriptor prefix verification for an Account object by using this token for the settings.card_payments.statement_descriptor_prefix attribute.

TokenType
mismatchTrigger an invalid_statement_descriptor_prefix_mismatch verification error.
disallowedTrigger an invalid_statement_descriptor_prefix_denylisted verification error.

Test business URL verification

Trigger URL verification for an Account object by using this token for the business_profile.url attribute.

TokenType
https://disallowed.stripe.comTrigger an invalid_url_denylisted verification error.
https://geoblocked.stripe.comTrigger an invalid_url_website_inaccessible_geoblocked verification error.
https://problem.stripe.comTrigger an invalid_url_website_other verification error.
https://missing.stripe.comTrigger an invalid_url_website_incomplete verification error.
https://mismatch.stripe.comTrigger an invalid_url_website_business_information_mismatch verification error.
https://passwordprotected.stripe.comTrigger an invalid_url_website_inaccessible_password_protected verification error.
https://accessible.stripe.comTrigger a successful validation of the URL.
https://underconstruction.stripe.comTrigger an invalid_url_website_incomplete_under_construction verification error.
https://inaccessible.stripe.comTrigger an invalid_url_website_inaccessible verification error.

Test Doing Business As (DBA) verification

Trigger DBA verification for an Account object by using this token for the business_profile.name attribute.

TokenType
disallowed_dbaTrigger an invalid_business_profile_name_denylisted verification error.
invalid_dbaTrigger an invalid_business_profile_name verification error.

Test product description verification

Trigger product description verification for an Account object by using this token for the business_profile.product_description attribute.

TokenType
require_urlTrigger an invalid_url_web_presence_detected verification error.

Test phone number validation

Clear phone number validation for an Account object by using this token for the following attributes:

  • business_profile.support_phone
  • company.phone
  • individual.phone

Clear phone number validation for a Person object by using this token for the phone attribute.

TokenType
0000000000Successful validation

Test capability disabled reasons

Trigger assignment of a specific requirements.disabled_reason to all of an Account object’s inactive Capability objects by using this token for the account’s business_profile.url attribute.

TokenType
https://inactivity.stripe.comSet an account as inactive and pause all verifications for it. Set the disabled reason for any inactive capabilities to paused.inactivity (rejected.other for API versions prior to 2024-06-20).

Trigger or advance verification

Trigger cards

Use these card numbers to trigger various conditions when you’re testing both requirements and tiered verification. For the trigger actions to work, you must use these cards with a Connect charge by setting on_behalf_of, or creating the charge directly on the connected account.

NumberTokenType
4000000000004202tok_visa_triggerNextRequirementsChanges the next set of eventually due requirements to currently due.
4000000000004210tok_visa_triggerChargeBlockTriggers a charge block.
4000000000004236tok_visa_triggerPayoutBlockTriggers a payout block.

Trigger next requirements

Live mode can require additional verification information when a connected account processes a certain amount of volume. This card sets any additional verification information to be required immediately. If no additional information is required, nothing appears.

Trigger a charge or payout block

If required information isn’t provided by the deadline, Stripe disables the connected account’s charges or payouts. These cards disable the connected account and move any currently due requirements to overdue. These cards have no effect until an account provides the initial information that’s required to enable charges and payouts.

Trigger bank account ownership verification

Connected accounts in the United States and India are subject to Bank account ownership verification. You can complete this verification by uploading supporting documents with the Connect Dashboard or with the API through the documents[bank_account_ownership_verification] hash.

While you’re testing, you can simulate the US bank account ownership verification process. Use the following test bank account numbers to trigger the verification process. One number presumes successful verification and the other prompts you to upload test images or file tokens to complete the verification process. These test accounts are only available for US accounts.

RoutingAccountType
110000000000999999991Triggers and completes the bank account ownership verification process after a short delay
110000000000999999992Triggers the bank account ownership verification process after a short delay and requests for document upload

Simulate requirements

If your platform has connected accounts in different countries or plans to, you might need to verify a person’s address as well as their identity (depending on the country). Stripe provides a sample date of birth (DOB) and sample addresses to test for this requirement.

Information providedPerson verification statusrequirements.currently_due
Verified date of birth and verified addressVerifiedNone
Verified date of birth and unverified addressUnverifiedverification.additional_document
Unverified date of birth and verified addressUnverifiedverification.document
Unverified date of birth and unverified addressUnverifiedverification.additional_document, verification.document

Add funds to Stripe balance

To test adding funds to your Stripe balance from a bank account in the Dashboard, create a sandbox and select the desired test bank account in the dropdown menu within the Add to balance dialog. You can simulate success or failure due to insufficient funds.

To test adding funds in the API, use the following test bank tokens as the source while you’re testing. Each token simulates a specific kind of event.

TokenType
btok_us_verifiedSuccessful
btok_us_verified_noAccountUnsuccessful with a no_account code
btok_us_verified_accountClosedUnsuccessful with an account_closed code
btok_us_verified_insufficientFundsUnsuccessful with an insufficient_funds code
btok_us_verified_debitNotAuthorizedUnsuccessful with a debit_not_authorized code
btok_us_verified_invalidCurrencyUnsuccessful with an invalid_currency code

Payouts

Use the following test bank and debit card numbers to trigger certain events during payout testing. You can only use these values while testing with test secret keys.

Test payouts simulate a live payout but aren’t processed with the bank. Test accounts with Stripe Dashboard access always have payouts enabled, as long as valid external bank information and other relevant conditions are met, and never requires real identity verification.

Note

You can’t use test bank and debit card numbers in the Stripe Dashboard on a live mode connected account. If you’ve entered your bank account information on a live mode account, you can still use a sandbox, and test payouts will simulate a live payout without processing actual money.

Bank numbers

Use these test bank account numbers to test payouts. You can only use them with test secret keys.

RoutingAccountType
110000000000123456789Payout succeeds.
110000000000111111116Payout fails with a no_account code.
110000000000111111113Payout fails with a account_closed code.
110000000000222222227Payout fails with a insufficient_funds code.
110000000000333333335Payout fails with a debit_not_authorized code.
110000000000444444440Payout fails with a invalid_currency code.
110000000000888888883Payout fails if method is instant. Bank account is not eligible for Instant Payouts.

Debit card numbers

Use these test debit card numbers to test payouts to a debit card. These can only be used with test secret keys.

NumberTokenType
4000056655665556tok_visa_debit_us_transferSuccessVisa debit. Payout succeeds.
4000056655665572tok_visa_debit_us_transferFailVisa debit. Payout fails with a could_not_process code.
4000056755665555tok_visa_debit_us_instantPayoutUnsupportedVisa debit. Card isn’t eligible for Instant Payouts.
5200828282828210tok_mastercard_debit_us_transferSuccessMastercard debit. Payout succeeds.
6011981111111113tok_discover_debit_us_transferSuccessDiscover debit. Payout succeeds.
Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access program.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc