Skip to main content
RapidDev - Software Development Agency
stripe-guide

How to check if your Stripe account is restricted

Check if your Stripe account is restricted by looking at the Dashboard for warning banners, or by retrieving your account via the API and checking the requirements.disabled_reason field. Common restrictions include charges_disabled, payouts_disabled, and under_review. Each restriction has a specific cause and resolution path.

What you'll learn

  • How to identify if your Stripe account has restrictions
  • What the different disabled_reason codes mean
  • How to check restrictions via the Dashboard and API
  • Steps to resolve common account restrictions
Book a free consultation
4.9Clutch rating
600+Happy partners
17+Countries served
190+Team members
Beginner5 min read5 minutesAll Stripe accounts, all plansMarch 2026RapidDev Engineering Team
TL;DR

Check if your Stripe account is restricted by looking at the Dashboard for warning banners, or by retrieving your account via the API and checking the requirements.disabled_reason field. Common restrictions include charges_disabled, payouts_disabled, and under_review. Each restriction has a specific cause and resolution path.

Checking and Understanding Stripe Account Restrictions

Stripe may restrict your account if verification is incomplete, suspicious activity is detected, or your business type is under review. Restrictions can affect your ability to accept charges, receive payouts, or both. This guide shows you how to identify restrictions, understand their causes, and take the right steps to resolve them.

Prerequisites

  • Access to the Stripe Dashboard or your Stripe secret key
  • Administrator role on the Stripe account

Step-by-step guide

1

Check for restrictions in the Dashboard

Log in to the Stripe Dashboard. If your account is restricted, you will see a red or yellow banner at the top of the page indicating the issue. Click the banner to see details and resolution steps.

Expected result: If restricted, a banner explains the restriction and provides a link to resolve it. If no banner appears, your account has no restrictions.

2

Review the Requirements section

Go to Settings → Account details and scroll to the requirements section. Look for 'currently_due' and 'past_due' items. Past due items are overdue and may have already triggered restrictions.

Expected result: You see a list of any outstanding requirements and their deadlines.

3

Check restrictions via the API

Retrieve your account via the API to check the requirements.disabled_reason field. This field tells you exactly why your account is restricted.

typescript
1const Stripe = require('stripe');
2const stripe = Stripe(process.env.STRIPE_SECRET_KEY);
3
4async function checkRestrictions() {
5 const account = await stripe.accounts.retrieve();
6
7 console.log('Charges enabled:', account.charges_enabled);
8 console.log('Payouts enabled:', account.payouts_enabled);
9
10 if (account.requirements.disabled_reason) {
11 console.log('RESTRICTED:', account.requirements.disabled_reason);
12 } else {
13 console.log('No restrictions.');
14 }
15
16 if (account.requirements.past_due.length > 0) {
17 console.log('Past due requirements:');
18 account.requirements.past_due.forEach(r => console.log(' -', r));
19 }
20}
21
22checkRestrictions();

Expected result: The script shows whether your account is restricted and the specific reason.

4

Understand the disabled_reason

Common disabled_reason values include: 'requirements.past_due' (overdue verification), 'listed' (on a prohibited list), 'rejected.fraud' (suspected fraud), 'rejected.terms_of_service' (TOS violation), and 'under_review' (Stripe is reviewing your account). Each requires a different resolution approach.

Expected result: You understand the specific reason for the restriction and the appropriate resolution path.

5

Resolve the restriction

For past_due requirements, submit the missing information in the Dashboard. For under_review, wait for Stripe's review and respond to any information requests. For rejection reasons, contact Stripe support to understand the issue and discuss options.

Expected result: After resolving the underlying issue, the restriction is lifted and charges_enabled and payouts_enabled return to true.

Complete working example

check-restrictions.js
1// check-restrictions.js
2// Comprehensive Stripe account restriction check
3
4const Stripe = require('stripe');
5const stripe = Stripe(process.env.STRIPE_SECRET_KEY);
6
7async function checkRestrictions() {
8 try {
9 const account = await stripe.accounts.retrieve();
10
11 console.log('=== Account Restriction Check ===');
12 console.log('');
13 console.log('Account ID:', account.id);
14 console.log('Charges enabled:', account.charges_enabled ? 'Yes' : 'NO');
15 console.log('Payouts enabled:', account.payouts_enabled ? 'Yes' : 'NO');
16 console.log('');
17
18 const reqs = account.requirements;
19
20 if (reqs.disabled_reason) {
21 console.log('RESTRICTION ACTIVE');
22 console.log('Reason:', reqs.disabled_reason);
23 console.log('');
24
25 // Explain the reason
26 const explanations = {
27 'requirements.past_due': 'Verification requirements are overdue. Submit the missing information in the Dashboard.',
28 'requirements.pending_verification': 'Stripe is reviewing your submitted documents. No action needed — wait for review.',
29 'listed': 'Your account matches an entry on a prohibited list. Contact Stripe support.',
30 'rejected.fraud': 'Account was rejected due to suspected fraud. Contact Stripe support to appeal.',
31 'rejected.terms_of_service': 'Account was rejected for a Terms of Service violation. Contact Stripe support.',
32 'rejected.listed': 'Account was rejected because it is on a prohibited list. Contact Stripe support.',
33 'rejected.other': 'Account was rejected for another reason. Contact Stripe support for details.',
34 'under_review': 'Stripe is reviewing your account. Respond to any information requests promptly.'
35 };
36
37 const explanation = explanations[reqs.disabled_reason] || 'Contact Stripe support for details.';
38 console.log('What to do:', explanation);
39 } else {
40 console.log('No restrictions. Account is fully active.');
41 }
42
43 if (reqs.past_due.length > 0) {
44 console.log('');
45 console.log('Past due items:');
46 reqs.past_due.forEach(r => console.log(' -', r));
47 }
48
49 if (reqs.currently_due.length > 0) {
50 console.log('');
51 console.log('Currently due items:');
52 reqs.currently_due.forEach(r => console.log(' -', r));
53 if (reqs.current_deadline) {
54 const deadline = new Date(reqs.current_deadline * 1000);
55 console.log(' Deadline:', deadline.toLocaleDateString());
56 }
57 }
58
59 if (reqs.errors && reqs.errors.length > 0) {
60 console.log('');
61 console.log('Errors:');
62 reqs.errors.forEach(e => console.log(` - ${e.requirement}: ${e.reason}`));
63 }
64
65 return account;
66 } catch (err) {
67 console.error('Error:', err.message);
68 }
69}
70
71checkRestrictions();

Common mistakes when checkking if your Stripe account is restricted

Why it's a problem: Ignoring Dashboard warning banners about account restrictions

How to avoid: Always address restriction banners immediately. They indicate that your ability to accept payments or receive payouts may be affected.

Why it's a problem: Assuming the account will fix itself without action

How to avoid: Most restrictions require you to submit information or documents. Only 'pending_verification' resolves automatically (while Stripe reviews your submission).

Why it's a problem: Creating a new account to avoid restrictions

How to avoid: Do not create a new account to circumvent restrictions. This violates Stripe's Terms of Service and may result in permanent bans.

Why it's a problem: Not checking for restrictions programmatically in production

How to avoid: Add an account status check to your application's health monitoring so you are alerted immediately if restrictions appear.

Best practices

  • Set up a webhook listener for account.updated events to be notified of restriction changes in real-time
  • Check your account status weekly during the first few months after setup when restrictions are most common
  • Respond to Stripe's information requests within 24 hours to minimize the duration of restrictions
  • Keep identity documents and business registration documents readily accessible for quick submission
  • If your account is restricted and you need urgent help, RapidDev can assist in understanding the requirements and preparing the necessary documentation
  • Document all communications with Stripe support for reference

Still stuck?

Copy one of these prompts to get a personalized, step-by-step explanation.

ChatGPT Prompt

How do I check if my Stripe account is restricted? Explain the different disabled_reason codes, what each one means, and how to resolve them. Show me a Node.js script that checks for restrictions and explains the reason.

Stripe Prompt

Write a Node.js script that checks if my Stripe account is restricted by retrieving the account and examining requirements.disabled_reason, past_due items, and errors. Include explanations for each possible disabled_reason code.

Frequently asked questions

What does 'requirements.past_due' mean?

It means you missed a deadline to provide required verification information. Submit the missing items in Settings → Account details to lift the restriction.

Can I still accept payments while my account is restricted?

It depends on the restriction. If charges_enabled is false, you cannot accept payments. If only payouts_enabled is false, you can still accept payments but funds will be held until the restriction is resolved.

How long does it take for a restriction to be lifted?

For requirements-based restrictions, it is lifted as soon as you submit the required information and Stripe verifies it (usually within hours to 2 business days). For reviews, it depends on the complexity of the review.

What if my account was rejected?

If disabled_reason starts with 'rejected.', contact Stripe support to understand the specific reason and discuss whether an appeal is possible.

Will I lose my funds if my account is restricted?

No. Your funds remain in your Stripe balance. They will be paid out once the restriction is resolved. In cases of permanent account closure, Stripe will pay out remaining funds after a holding period.

RapidDev

Talk to an Expert

Our team has built 600+ apps. Get personalized help with your project.

Book a free consultation

Need help with your project?

Our experts have built 600+ apps and can accelerate your development. Book a free consultation — no strings attached.

Book a free consultation

We put the rapid in RapidDev

Need a dedicated strategic tech and growth partner? Discover what RapidDev can do for your business! Book a call with our team to schedule a free, no-obligation consultation. We'll discuss your project and provide a custom quote at no cost.