How to Resolve: Stripe “Identity Verification” Stuck on “Under Review”

When a Stripe account’s identity verification status becomes stuck on “Under Review,” payout schedules pause and incoming transaction processing is threatened on both desktop Dashboard access and mobile Stripe apps. This delay occurs when Stripe’s automated KYC (Know Your Customer) and identity verification pipeline flags document inconsistencies, such as name spelling mismatches, cropped ID edges, unverified Tax IDs (EIN/SSN), or blurry passport scans, forcing the system to queue the file for manual compliance review.

Fast-Fix: The 45-Second Solution

A Stripe identity verification stuck on “Under Review” is typically caused by automated optical character recognition (OCR) failing on submitted government IDs or legal business details due to document glare, missing legal suffixes, or address mismatches. To fix this, inspect your Dashboard notifications for required documents, ensure legal business names match government tax filings exactly, and re-submit high-resolution, uncropped ID color scans without flash reflection.

Quick Logic Snapshot

  • Severity: Operational / Critical (Triggers payout holds and risks complete processing suspensions)
  • Impact: Single Account / Merchant Workspace (Blocks payout disbursements and Stripe Connect onboarding)
  • Primary Cause: OCR extraction failure, blurred ID photos, or character mismatch between legal name/Tax ID and government registry
  • Secondary Cause: Secondary manual compliance queue routing due to high-risk business category flags or cross-border address verification

Low Risk vs. High Risk Scenarios

  • Low Risk (Document Image Quality Rejection): The review status is delayed because a photo of a driver’s license or passport was submitted with flash glare, clipped corners, or low resolution. The automated engine places the file in a manual processing bucket, but uploading a clear, unedited PNG/JPEG via the Stripe Dashboard clears the hold within 24–48 hours.
  • Moderate Risk (Legal Entity Name / Tax ID Mismatch): The submitted personal ID name or business registration details do not match the official IRS/government tax records word-for-word (for example, omitting “LLC” or using a nickname). This requires updating legal entity settings in the Dashboard before requesting a new verification link.
  • High Risk (Stripe Connect Platform / Account Lockdown): A connected custom platform account gets stuck in verification while processing active customer funds, triggering account.updated webhooks with payouts_enabled: false. If unaddressed, Stripe restricts card processing platform-wide and initiates automatic customer refunds How to Resolve: Stripe “Connected Account” missing platform permissions.

What This Means (The Protocol Layer)

Think of Stripe’s identity verification process like an automated passport scanner at an airport security gate. When you submit a government-issued ID or business tax document, Stripe’s identity service uses computer vision and optical character recognition (OCR) to read the text and compare the biometrics, MRZ (machine-readable zone) lines, and document security features against state and national databases.

If the digital scanner reads every field clearly and finds a 100% match against your bank account metadata and tax registration, the system grants an automated pass in seconds.

However, if the scanner encounters a tiny obstruction, such as a thumb covering a corner of the card, a slight lighting glare over the date of birth, or a one-letter spelling difference between your legal business name and your bank record, it cannot validate the match automatically. Rather than rejecting the application outright, the automated gate locks the file in an “Under Review” holding pattern and transfers the ticket to a human compliance officer. If the compliance queue experiences heavy volume, or if the system is waiting on secondary database checks (like IRS TIN matching), your verification remains frozen in “Under Review” state.

Probability Breakdown

Root CauseLikelihoodKey Signal
OCR Image Quality Issues (Glare/Cropping)50%Review status stalls immediately after uploading photos taken in poor light or with cropped document edges.
Legal Entity or Tax ID (TIN/SSN) Mismatch30%Name on Stripe account differs slightly from official government registration or IRS documentation.
Manual Risk/AML Secondary Inspection15%Business falls under regulated/high-risk MCC codes or involves multi-currency cross-border payouts.
Systemic API Webhook Verification Stalls5%Verification session created via Stripe Identity API (vs_...) hangs without emitting completion events.

Logic Escalators

Dynamic factors can extend an identity review from hours to weeks:

  • VPNs and Proxy Connections: Uploading verification documents while connected to an anonymous VPN or data-center proxy flags the session for secondary anti-fraud inspection.
  • Multiple Conflicting Document Uploads: Submitting different forms of ID (e.g., a driver’s license from one state and a utility bill from another) in rapid succession causes identity score conflicts.
  • Unresolved Payout Bank Metadata: Linking a personal bank account to a corporate Stripe entity creates a legal name discrepancy between payment processing and settlement endpoints Stripe “Payout Failed” (Incorrect Banking Metadata Fix).
  • Address Discrepancies: Using a P.O. Box instead of a physical residential or registered business address triggers automatic KYC rejections under banking regulations.

If Ignored: 1 Hour → 1 Day → 1 Week

  • 1 Hour: Stripe Dashboard displays a warning banner (“Payouts paused until verification is complete”). Transactions continue processing, but funds accumulate in your pending account balance.
  • 1 Day: Scheduled rolling payouts are halted. Stripe sends automated email notices requesting updated identity documentation within a 7- to 14-day grace window.
  • 1 Week: Card processing privileges are revoked (charges_enabled: false). Unsettled customer balances risk automatic reserve holds or mass refunds if identity cannot be verified under federal AML standards.

Confused With / False Positives

What To Do Right Now

  1. Audit the Legal Entity Settings: Log into the Stripe Dashboard, navigate to Settings > Business Settings > Legal Entity, and verify that the legal business name, EIN/SSN, and registered physical address match official tax paperwork line-for-line.
  2. Inspect the Verification Status Link: Go to Settings > Account Details and check if a direct upload prompt (“Provide more information”) is active. If so, request a fresh verification link sent via SMS or email to capture high-resolution photos using a mobile camera.
  3. Prepare Clean Document Scans:
    • Place the physical ID card on a flat, dark background.
    • Capture all four physical corners of the card with no fingers, shadows, or flash glare covering text or photos.
    • Save files strictly as unedited JPEG or PNG formats (do not submit PDFs or screenshots of photos).
  4. Submit Business Registration Proof: For corporate accounts, upload official government registration documents (e.g., Articles of Organization, IRS CP575 notice, or Certificate of Good Standing) alongside personal IDs.
  5. Escalate via Support with Session IDs: If “Under Review” persists past 3 business days, open a ticket via Stripe Support and supply your Verification Session ID (vs_...) or Account ID (acct_...) for direct manual queue routing.

Immediate Intervention Flags

Stop re-submitting document uploads immediately if you observe the following:

  • “Verification Failed: Maximum Attempts Exceeded”: Repeated re-uploads trigger automated anti-tamper lockouts. Continued uploads without support escalation can cause account closure.
  • Formal Notice of Account Closure (AML/Risk): If Stripe explicitly states that processing is terminated due to terms of service or regulatory compliance violations, further document uploads will not clear the state; legal/compliance team appeal is required.
  • Discrepancy in Social Security / Tax ID: The SSN or EIN entered belongs to a different entity or individual than the legal owner listed on the account.

What a SysAdmin Will Check

When debugging verification state via the Stripe API or Connect integration:

  1. Retrieve Verification Session Status:
    Inspect the VerificationSession object via CLI or server SDK:BashJSON stripe verification_sessions retrieve vs_1N... Examine the response payload for status and last_error: { "id": "vs_1N...", "status": "requires_input", "last_error": { "code": "document_unverified_other", "reason": "The document provided could not be verified. Please upload a clear photo of the original document." } }
  2. Verify Account Capability Requirements:
    Query the Account object to inspect required actions:Bash stripe accounts retrieve acct_1N... Check requirements.currently_due and requirements.disabled_reason to pinpoint the exact missing attributes (e.g., individual.verification.document).
  3. Monitor Webhook Events: Ensure your backend handles identity.verification_session.verified and account.updated webhooks to automatically unblock account workflows when compliance approves the submission.

Administrative Scope

  • User Level: Individual account owners or account administrators can re-upload personal IDs, update individual residential addresses, and submit utility bills directly via the Dashboard settings.
  • Tenant / Platform Scope: Platform administrators (Stripe Connect) must monitor account.updated webhooks across custom/express accounts, surface verification links to connected account owners via the Connect Onboarding flow, and handle KYC compliance requirements at scale.

Operations Summary

A Stripe identity verification stuck on “Under Review” is an automated compliance safety hold caused when optical scanning engines cannot achieve a 100% data match across submitted documents, tax records, and account metadata. It is an operational verification queue issue rather than a platform server error. Reviewing legal entity spelling against government tax forms, uploading flat, glare-free color photos showing all four corners of official identification, and verifying API capability requirements restores normal processing and releases payout holds.