Learn how to resolve a Stripe "account under review" by understanding the reasons, completing verification, addressing concerns, and communicating effectively with Stripe support.
Book a call with an Expert
Starting a new venture? Need to upgrade your web app? RapidDev builds application with your growth in mind.
How to Resolve "Account Under Review" in Stripe
When your Stripe account is placed under review, it can disrupt your business operations and payment processing capabilities. This comprehensive guide will walk you through the necessary steps to effectively address and resolve this situation.
Step 1: Understand Why Your Account Is Under Review
Before taking any action, it's important to understand why Stripe might place an account under review:
Step 2: Check Your Email and Stripe Dashboard
Stripe typically notifies you about account reviews through multiple channels:
Step 3: Review the Specific Requirements from Stripe
Stripe usually provides specific information about what they need from you:
Step 4: Complete Verification Requirements
If your account is under review due to incomplete verification:
You may need to upload documents through the Stripe Dashboard. Here's how to access the upload functionality:
// This is a JavaScript example for a custom implementation
// Note: Most users should use Stripe's built-in dashboard for uploads
const stripe = require('stripe')('sk_test_YOUR_SECRET_KEY');
// Example of programmatically uploading a file to Stripe
const file = await stripe.files.create({
purpose: 'identity\_document',
file: {
data: fs.readFileSync('/path/to/your/document.jpg'),
name: 'document.jpg',
type: 'application/octet-stream',
},
});
// Then link the file to the account
const accountUpdate = await stripe.accounts.update(
'acct\_123456789',
{
individual: {
verification: {
document: {
front: file.id,
},
},
},
}
);
Step 5: Address Business Model Concerns
If Stripe has concerns about your business model:
Step 6: Improve Chargeback Management
If high chargebacks triggered the review:
Here's a code snippet for implementing basic Stripe Radar rules:
// Server-side implementation of custom Radar rules
const stripe = require('stripe')('sk_test_YOUR_SECRET_KEY');
// Create a rule to block high-risk transactions
const rule = await stripe.radar.rules.create({
action: 'block',
predicate: 'evaluation(risk\_score >= 80)',
block\_message: 'This payment has been identified as high-risk.'
});
// Example of creating a payment session with enhanced fraud detection
const paymentIntent = await stripe.paymentIntents.create({
amount: 2000,
currency: 'usd',
payment_method_types: ['card'],
// Enable additional fraud detection
setup_future_usage: 'off\_session',
metadata: {
order\_id: '6735',
customer\_name: 'John Doe'
}
});
Step 7: Contact Stripe Support Directly
If you've addressed all apparent issues or need clarification:
Step 8: Prepare a Detailed Response
When communicating with Stripe:
Step 9: Implement Suggested Changes
Stripe may recommend specific changes to your business practices:
Here's an example of implementing 3D Secure authentication:
// Client-side implementation of 3D Secure
const stripe = require('stripe')('pk_test_YOUR_PUBLISHABLE_KEY');
const elements = stripe.elements();
// Set up card element
const card = elements.create('card');
card.mount('#card-element');
// Handle form submission
document.getElementById('payment-form').addEventListener('submit', async (event) => {
event.preventDefault();
const {paymentMethod, error} = await stripe.createPaymentMethod({
type: 'card',
card: card,
});
if (error) {
// Handle error
console.error(error);
} else {
// Send paymentMethod.id to your server
const response = await fetch('/create-payment-intent', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
payment_method_id: paymentMethod.id,
amount: 1000, // Amount in cents
}),
});
const result = await response.json();
// Handle 3D Secure authentication if required
if (result.requires\_action) {
const { error, paymentIntent } = await stripe.confirmCardPayment(
result.client\_secret
);
if (error) {
// Payment failed
console.error(error);
} else if (paymentIntent.status === 'succeeded') {
// Payment succeeded
console.log('Payment successful!');
}
}
}
});
Step 10: Follow Up Regularly
The review process may take time:
Step 11: Consider Alternative Payment Processors
While working to resolve the Stripe review:
Step 12: Prevent Future Reviews
Once your account is restored:
Conclusion
Resolving a "Account Under Review" status in Stripe requires patience, thorough documentation, and clear communication. By following these steps and addressing Stripe's concerns systematically, you can work toward restoring your account to good standing and resuming normal payment processing operations.
When it comes to serving you, we sweat the little things. That’s why our work makes a big impact.