Testing Stripe Connect
Before going live, test your Connect integration for account creation, identity verification, and payouts.
Testing is important to make sure your Connect integration handles different flows correctly. Use test mode to simulate live mode while taking advantage of Stripe-provided special tokens to make testing easier. Take a look at our payments testing guide for more information on testing charges, disputes, and more.
Create test accounts
You can create multiple test accounts and of any account type you might need (e.g., representing multiple countries).
You can create Custom test accounts using the API. You can also create test accounts of all account types through the Dashboard.
Test the OAuth flow Express accountsStandard accounts
You can test your OAuth integration for Express or Standard account creation with the development client_id
.
You can find your development client_id
in your Connect settings.
Your development 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 (Standard)
- Auto-fill
000 000 0000
as the test phone number and000-000
as the SMS code when prompted (Express) - 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 the platform account.
Identity and address verification Express accountsCustom accounts
After creating a test connected account, you can use tokens to test different verification statuses to ensure you’re handling different requirements and account states. The following tokens can be used to test verification with Custom and Express accounts. You will need to provide real information to activate a Standard connected account.
Test dates of birth
Use these dates of birth (DOB) to trigger certain verification conditions.
Number | Type |
---|---|
1901-01-01 ​ |
Successful verification. Any other DOB results in unsuccessful verification. |
19000101 | This DOB will trigger 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.
Number | Type |
---|---|
address_full_match ​ |
Successful verification. |
address_no_match |
Unsuccessful 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 cannot 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 cannot disable payouts or charges afterward by changing the token to an invalid one. You can work around this, though, by creating a new account with the relevant token.
Token | Type |
---|---|
address_full_match ​ |
Both charges and payouts are enabled on the account. |
address_line1_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_no_match |
Both charges and payouts are not enabled on the account. Since validation failed, the address attributes become listed again in the requirements hash. |
Test personal ID numbers
Use these personal ID numbers for individual[id_number] or the id_number attribute on the Person
object to trigger certain verification conditions.
Number | Type |
---|---|
000000000 | Successful verification. 0000 also works for SSN last 4 verification. |
111111111 | Unsuccessful verification (identity mismatch) |
Test business tax IDs
Use these business tax ID numbers for company[tax_id]
to trigger certain verification conditions.
Number | Type |
---|---|
000000000 | Successful verification |
000000001 | Successful verification as a non-profit |
111111111 | Unsuccessful verification (identity mismatch) |
Test identity documents
For testing Custom accounts, use test images or file tokens instead of uploading your own test IDs. For details, refer to Uploading a file. These images do not work for testing Express accounts.
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
.
Test file tokens
Use these file tokens to trigger certain identity verification conditions.
Token | Type |
---|---|
file_identity_document_success |
Uses the verified image and marks that document requirement as satisfied. |
file_identity_document_failure |
Uses the unverified image and marks that document requirement as not satisfied. |
Trigger cards
Use these card numbers to trigger various conditions when testing requirements and tiered verification. For the trigger actions to work, these cards must be used with a Connect charge by setting on_behalf_of
, or creating the charge directly on the connected account.
Number | Token | Type |
---|---|---|
4000000000004202 |
tok_visa_triggerNextRequirements |
Changes the next set of eventually due requirements to currently due. |
4000000000004210 |
tok_visa_triggerChargeBlock |
Triggers a charge block. |
4000000000004236 |
tok_visa_triggerPayoutBlock |
Triggers a payout block. |
Trigger Next Requirements
In live mode, additional verification information can be required when a connected account processes a certain volume. This card sets any additional verification information to be required immediately. If no additional information is required, nothing appears.
Trigger Charge or Payout Block
If required information is not 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.
Simulate requirements
If your platform has connected accounts in different countries or plans to, depending on the country, you might need to verify a person’s address as well as their identity. Stripe provides a sample date of birth (DOB) and sample addresses so that you can test for this requirement.
Information provided | Person verification status | requirements[currently_due] |
---|---|---|
Verified date of birth and verified address | Verified | None |
Verified date of birth and unverified address | Unverified | verification.additional_document |
Unverified date of birth and verified address | Unverified | verification.document |
Unverified date of birth and unverified address | Unverified | verification.additional_document , verification.document |
Add funds to Stripe balance
To test adding funds to your Stripe balance from a bank account in the Dashboard, enable test mode and select the desired test bank account in the drop-down 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 in test mode. Each token simulates a specific kind of event.
Token | Type |
---|---|
btok_us_verified |
Successful |
btok_us_verified_noAccount |
Unsuccessful with a no_account code |
btok_us_verified_accountClosed |
Unsuccessful with an account_closed code |
btok_us_verified_insufficientFunds |
Unsuccessful with an insufficient_funds code |
btok_us_verified_debitNotAuthorized |
Unsuccessful with a debit_not_authorized code |
btok_us_verified_invalidCurrency |
Unsuccessful with an invalid_currency code |
Payouts Express accountsCustom accounts
For Express and Custom accounts, use the following test bank and debit card numbers to trigger certain events during payouts testing. These values can only be used in test mode with test secret keys.
To create test mode payouts for a Standard account, use any valid bank account details (e.g., your own). Test mode payouts simulate a live payout but are not processed with the bank. Test mode Standard accounts always have payouts enabled, as long as valid external bank information and other relevant conditions are met, and never requires real identity verification.
Bank numbers
Use these test bank account numbers to test payouts. These can only be used with test secret keys.
Sort | Account | Type |
---|---|---|
108800 |
00012345 |
Payout succeeds. |
108800 |
11111116 |
Payout fails with a no_account code. |
108800 |
11111113 |
Payout fails with an account_closed code. |
108800 |
22222227 |
Payout fails with an insufficient_funds code. |
108800 |
33333335 |
Payout fails with a debit_not_authorized code. |
108800 |
44444440 |
Payout fails with an invalid_currency code. |
By specifying the appropriate country code (e.g., DE, IT, FR, etc.), you can use these test IBANs for any EU country and any valid currency for that country. As a demonstration, the IBANs displayed below are specified for Germany since they’re prefixed with DE
.
Number | Type |
---|---|
DE89370400440532013000 |
Payout succeeds. |
DE62370400440532013001 |
Payout fails with a no_account code. |
DE89370400440532013002 |
Payout fails with an account_closed code. |
DE89370400440532013003 |
Payout fails with an insufficient_funds code. |
DE89370400440532013004 |
Payout fails with a debit_not_authorized code. |
DE89370400440532013005 |
Payout fails with an invalid_currency code. |
Routing | Account | Type |
---|---|---|
110000 |
000123456 |
Payout succeeds. |
110000 |
111111116 |
Payout fails with a no_account code. |
110000 |
111111113 |
Payout fails with an account_closed code. |
110000 |
222222227 |
Payout fails with an insufficient_funds code. |
110000 |
333333335 |
Payout fails with a debit_not_authorized code. |
110000 |
444444440 |
Payout fails with an invalid_currency code. |
Routing | Account | Type |
---|---|---|
110-0000 |
0001234 |
Payout succeeds. |
110-0000 |
1111116 |
Payout fails with a no_account code. |
110-0000 |
1111113 |
Payout fails with an account_closed code. |
110-0000 |
2222227 |
Payout fails with an insufficient_funds code. |
110-0000 |
3333335 |
Payout fails with a debit_not_authorized code. |
110-0000 |
4444440 |
Payout fails with an invalid_currency code. |
Routing | Account | Type |
---|---|---|
11000-000 |
000123456789 |
Payout succeeds. |
11000-000 |
000111111116 |
Payout fails with a no_account code. |
11000-000 |
000111111113 |
Payout fails with an account_closed code. |
11000-000 |
000222222227 |
Payout fails with an insufficient_funds code. |
11000-000 |
000333333335 |
Payout fails with a debit_not_authorized code. |
11000-000 |
000444444440 |
Payout fails with an invalid_currency code. |
Routing | Account | Type |
---|---|---|
110-000 |
000123-456 |
Payout succeeds. |
110-000 |
111111-116 |
Payout fails with a no_account code. |
110-000 |
111111-113 |
Payout fails with an account_closed code. |
110-000 |
222222-227 |
Payout fails with an insufficient_funds code. |
110-000 |
333333-335 |
Payout fails with a debit_not_authorized code. |
110-000 |
444444-440 |
Payout fails with an invalid_currency code. |
Routing | Account | Type |
---|---|---|
HDFC0000261 |
123456788 |
Payout succeeds. |
HDFC0000261 |
000111111116 |
Payout fails with a no_account code. |
HDFC0000261 |
000111111113 |
Payout fails with an account_closed code. |
HDFC0000261 |
000222222227 |
Payout fails with an insufficient_funds code. |
HDFC0000261 |
000333333335 |
Payout fails with a debit_not_authorized code. |
HDFC0000261 |
000444444440 |
Payout fails with an invalid_currency code. |
Routing | Account | Type |
---|---|---|
1100000 |
0001234 |
Payout succeeds. |
1100000 |
1111116 |
Payout fails with a no_account code. |
1100000 |
1111113 |
Payout fails with an account_closed code. |
1100000 |
2222227 |
Payout fails with an insufficient_funds code. |
1100000 |
3333335 |
Payout fails with a debit_not_authorized code. |
1100000 |
4444440 |
Payout fails with an invalid_currency code. |
Account | Type |
---|---|
000000001234567897 |
Payout succeeds. |
000000111111111117 |
Payout fails with a no_account code. |
000000111111111133 |
Payout fails with an account_closed code. |
000000222222222224 |
Payout fails with an insufficient_funds code. |
000000333333333331 |
Payout fails with a debit_not_authorized code. |
000000444444444448 |
Payout fails with an invalid_currency code. |
Routing | Account | Type |
---|---|---|
TESTMYKL |
000123456000 |
Payout succeeds. |
TESTMYKL |
111111111116 |
Payout fails with a no_account code. |
TESTMYKL |
111111111113 |
Payout fails with an account_closed code. |
TESTMYKL |
222222222227 |
Payout fails with an insufficient_funds code. |
TESTMYKL |
333333333335 |
Payout fails with a debit_not_authorized code. |
TESTMYKL |
444444444440 |
Payout fails with an invalid_currency code. |
Account | Type |
---|---|
1100000000000010 |
Payout succeeds. |
1100001111111016 |
Payout fails with a no_account code. |
1100001111111013 |
Payout fails with an account_closed code. |
1100002222222027 |
Payout fails with an insufficient_funds code. |
1100003333333035 |
Payout fails with a debit_not_authorized code. |
1100004444444040 |
Payout fails with an invalid_currency code. |
Routing | Account | Type |
---|---|---|
1100-000 |
000123456 |
Payout succeeds. |
1100-000 |
111111116 |
Payout fails with a no_account code. |
1100-000 |
111111113 |
Payout fails with an account_closed code. |
1100-000 |
222222227 |
Payout fails with an insufficient_funds code. |
1100-000 |
333333335 |
Payout fails with a debit_not_authorized code. |
1100-000 |
444444440 |
Payout fails with an invalid_currency code. |
Routing | Account | Type |
---|---|---|
110000000 |
000123456789 |
Payout succeeds. |
110000000 |
000111111116 |
Payout fails with a no_account code. |
110000000 |
000111111113 |
Payout fails with an account_closed code. |
110000000 |
000222222227 |
Payout fails with an insufficient_funds code. |
110000000 |
000333333335 |
Payout fails with a debit_not_authorized code. |
110000000 |
000444444440 |
Payout fails with an invalid_currency code. |
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.
Number | Token | Type |
---|---|---|
4000056655665556 | tok_visa_debit_us_transferSuccess | Visa debit. Payout succeeds. |
4000056655665572 | tok_visa_debit_us_transferFail |
Visa debit.
Payout fails with a could_not_process code.
|
4000056755665555 | tok_visa_debit_us_instantPayoutUnsupported | Visa debit. Card is not eligible for Instant Payouts. |
5200828282828210 | tok_mastercard_debit_us_transferSuccess | Mastercard debit. Payout succeeds. |
6011981111111113 | tok_discover_debit_us_transferSuccess | Discover debit. Payout succeeds. |
Number | Token | Type |
---|---|---|
4000051240000005 | tok_visa_debit_ca_transferSuccess | Visa debit. Payout succeeds. |
4000051240000021 | tok_visa_debit_ca_transferFail |
Visa debit.
Payout fails with a could_not_process code.
|
4000051240000039 | tok_visa_debit_ca_instantPayoutUnsupported | Visa debit. Card is not eligible for Instant Payouts. |
5510121240000006 | tok_mastercard_debit_ca_transferSuccess | Mastercard debit. Payout succeeds. |
Number | Token | Type |
---|---|---|
4000057020000008 | tok_visa_debit_sg_transferSuccess | Visa debit. Payout succeeds. |
4000057020000016 | tok_visa_debit_sg_transferFail |
Visa debit.
Payout fails with a could_not_process code.
|
4000057020000024 | tok_visa_debit_sg_instantPayoutUnsupported | Visa debit. Card is not eligible for Instant Payouts. |
2227200000000009 | tok_mastercard_debit_sg_transferSuccess | Mastercard debit. Payout succeeds. |