The Stripe verification failed error means your account identity verification was rejected. This typically happens when submitted documents are blurry, expired, don't match the account name, or are the wrong document type. Fix it by resubmitting clear, current documents through Dashboard → Settings → Account details → Verification, and ensuring the name on documents matches your Stripe account exactly.
Why Stripe Account Verification Fails
Stripe requires identity verification to comply with financial regulations (KYC — Know Your Customer). When verification fails, Stripe restricts your account from processing payments or receiving payouts. Common failure reasons include blurry or cropped document photos, expired IDs, name mismatches between your ID and account information, and unsupported document types. Resolving this quickly is critical because verification failures block your ability to accept payments.
Prerequisites
- A Stripe account with a verification requirement or failure
- A valid government-issued ID (passport, driver's license, or national ID)
- Business documentation if you have a business account (registration, tax ID)
Step-by-step guide
Check your verification status
Check your verification status
Go to Stripe Dashboard → Settings (gear icon) → Account details. Look for banners or alerts indicating what verification is needed. You may also see these alerts at the top of your Dashboard or in email notifications from Stripe.
Expected result: You can see exactly what verification documents or information Stripe needs from you.
Review the rejection reason
Review the rejection reason
Stripe provides specific reasons for verification failures. Common reasons include: 'document is not readable', 'document has expired', 'name on document does not match', 'document type not accepted', 'address verification failed'. Check your email or Dashboard alerts for the specific reason.
Expected result: You know the specific reason your verification was rejected and can address it directly.
Prepare acceptable documents
Prepare acceptable documents
Stripe accepts: passport, driver's license, or government-issued national ID card. For business verification: certificate of incorporation, utility bill, or bank statement for address proof. Photos must be in color, not cropped, with all four corners visible, and text clearly readable.
Expected result: You have clear, high-quality photos of valid, non-expired identity documents.
Resubmit verification documents
Resubmit verification documents
Go to Dashboard → Settings → Account details → click on the verification section that shows an error. Upload your new document photos. Ensure the name on the document exactly matches the name on your Stripe account — even middle names and suffixes matter.
Expected result: Documents uploaded successfully. Stripe reviews them within 1-2 business days (sometimes minutes for automated review).
Handle verification programmatically for Connect accounts
Handle verification programmatically for Connect accounts
If you're using Stripe Connect and managing verification for connected accounts, use the Account API to check requirements and upload documents. The RapidDev engineering team frequently implements this for platforms managing many connected accounts.
1const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);23// Check what's needed4const account = await stripe.accounts.retrieve('acct_connected_id');5console.log('Requirements:', account.requirements.currently_due);6console.log('Errors:', account.requirements.errors);78// Upload a verification document9const file = await stripe.files.create({10 purpose: 'identity_document',11 file: {12 data: fs.readFileSync('/path/to/document.jpg'),13 name: 'id_front.jpg',14 type: 'image/jpeg',15 },16});1718// Attach to account19await stripe.accounts.update('acct_connected_id', {20 individual: {21 verification: {22 document: {23 front: file.id,24 },25 },26 },27});Expected result: The verification document is uploaded and attached to the connected account via the API.
Complete working example
1require('dotenv').config();2const fs = require('fs');3const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);45async function checkVerificationStatus(accountId) {6 const account = await stripe.accounts.retrieve(accountId);78 const status = {9 charges_enabled: account.charges_enabled,10 payouts_enabled: account.payouts_enabled,11 currently_due: account.requirements.currently_due,12 past_due: account.requirements.past_due,13 errors: account.requirements.errors,14 disabled_reason: account.requirements.disabled_reason,15 };1617 console.log('Verification status:', JSON.stringify(status, null, 2));18 return status;19}2021async function uploadVerificationDocument(accountId, filePath, side = 'front') {22 // Upload the file to Stripe23 const file = await stripe.files.create({24 purpose: 'identity_document',25 file: {26 data: fs.readFileSync(filePath),27 name: `id_${side}.jpg`,28 type: 'image/jpeg',29 },30 }, {31 stripeAccount: accountId,32 });3334 console.log(`File uploaded: ${file.id}`);3536 // Attach to account verification37 const updateData = {38 individual: {39 verification: {40 document: {41 [side]: file.id,42 },43 },44 },45 };4647 const updated = await stripe.accounts.update(accountId, updateData);48 console.log('Account updated, requirements:', updated.requirements.currently_due);49 return updated;50}5152module.exports = { checkVerificationStatus, uploadVerificationDocument };Common mistakes when fixing Stripe verification failed error
Why it's a problem: Submitting blurry or partially cropped document photos
How to avoid: Take photos in good lighting with all four corners visible. Use your phone's highest resolution setting. Avoid shadows and glare.
Why it's a problem: Name on ID doesn't match the Stripe account name
How to avoid: Update your Stripe account name to exactly match your ID, including middle names, suffixes, and spelling. Or use a different ID that matches.
Why it's a problem: Submitting expired identity documents
How to avoid: Stripe requires valid, non-expired documents. Check the expiration date before uploading.
Why it's a problem: Using a document type Stripe doesn't accept
How to avoid: Stripe accepts passports, driver's licenses, and government-issued national IDs. Credit cards, student IDs, and employment badges are not accepted.
Best practices
- Complete verification as soon as you create your Stripe account — don't wait until you need payouts
- Ensure the name on all documents exactly matches your Stripe account information
- Use high-quality, full-color photos with all four corners of the document visible
- Check requirements.currently_due programmatically for Connect accounts
- Set up a webhook for account.updated events to monitor verification status changes
- Keep backup copies of submitted documents for re-verification if needed
- For business accounts, ensure your business registration is current and matches Stripe records
Still stuck?
Copy one of these prompts to get a personalized, step-by-step explanation.
Write a Node.js script using the Stripe API that checks the verification status of a connected account, lists any currently_due requirements and errors, uploads a verification document file, and attaches it to the account's individual verification. Include error handling.
Build a Stripe Connect account verification helper in Node.js that checks verification requirements, uploads identity documents via the Files API, attaches them to the account, and logs the updated requirements status.
Frequently asked questions
How long does Stripe verification take?
Automated verification can complete in minutes. Manual review typically takes 1-2 business days. Complex cases or additional document requests may take longer.
What documents does Stripe accept for identity verification?
Passport, driver's license, or government-issued national ID card. The document must be valid (not expired), in color, and clearly readable with all four corners visible.
Can I use my Stripe account while verification is pending?
It depends on what's pending. Some accounts can process payments but have payouts held until verification completes. Accounts with past_due requirements may have charges disabled entirely.
Why was my verification rejected even though my documents are valid?
Common reasons: the name doesn't match exactly (including middle names), the photo is too blurry or has glare, the document is partially cropped, or there's an address mismatch. Resubmit with a clearer photo and ensure all information matches your Stripe account.
How do I handle verification for Stripe Connect accounts?
Use the Account API to check requirements.currently_due, upload documents via the Files API with purpose 'identity_document', and attach them to the account's verification fields. Listen for account.updated webhooks to track status changes.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation