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

How to check Stripe account balance

Check your Stripe account balance in the Dashboard by viewing the Balance section on the Home page, or retrieve it programmatically using the Balance API endpoint. Stripe shows three balance categories: available (ready for payout), pending (processing), and Connect reserved funds. Amounts are in the smallest currency unit.

What you'll learn

  • How to view your balance in the Stripe Dashboard
  • How to retrieve your balance via the Stripe API
  • The difference between available, pending, and reserved balance
  • How to check balance in a specific currency
Book a free consultation
4.9Clutch rating
600+Happy partners
17+Countries served
190+Team members
Beginner4 min read5 minutesAll Stripe accounts, all plansMarch 2026RapidDev Engineering Team
TL;DR

Check your Stripe account balance in the Dashboard by viewing the Balance section on the Home page, or retrieve it programmatically using the Balance API endpoint. Stripe shows three balance categories: available (ready for payout), pending (processing), and Connect reserved funds. Amounts are in the smallest currency unit.

Checking Your Stripe Account Balance

Your Stripe balance shows how much money is available for payout, how much is still processing, and any reserved funds. You can check it instantly in the Dashboard or programmatically through the API. Understanding your balance is essential for cash flow management and ensuring payouts happen on schedule.

Prerequisites

  • A Stripe account with at least one processed payment
  • Access to the Stripe Dashboard or your Stripe secret key for API access

Step-by-step guide

1

View your balance in the Dashboard

Log in to the Stripe Dashboard at dashboard.stripe.com. The Home page shows your balance overview with available, pending, and total amounts. Click on the balance section to see a detailed breakdown by currency.

Expected result: You see your available balance, pending balance, and estimated payout schedule on the Dashboard home page.

2

View payout details

Click Balance → Payouts in the left sidebar to see scheduled and completed payouts. Each payout shows the amount, currency, destination bank account, and expected arrival date.

Expected result: The Payouts page shows upcoming and historical payouts with amounts and dates.

3

Retrieve your balance via the API

Call the Balance retrieve endpoint to get your current balance programmatically. The response includes available, pending, and connect_reserved arrays broken down by currency.

typescript
1const Stripe = require('stripe');
2const stripe = Stripe(process.env.STRIPE_SECRET_KEY);
3
4async function checkBalance() {
5 const balance = await stripe.balance.retrieve();
6
7 balance.available.forEach(b => {
8 console.log(`Available: ${b.amount / 100} ${b.currency.toUpperCase()}`);
9 });
10
11 balance.pending.forEach(b => {
12 console.log(`Pending: ${b.amount / 100} ${b.currency.toUpperCase()}`);
13 });
14
15 return balance;
16}
17
18checkBalance();

Expected result: The console displays your available and pending balances for each currency.

Complete working example

check-balance.js
1// check-balance.js
2// Retrieve and display Stripe account balance
3
4const Stripe = require('stripe');
5const stripe = Stripe(process.env.STRIPE_SECRET_KEY);
6
7async function checkBalance() {
8 try {
9 const balance = await stripe.balance.retrieve();
10
11 console.log('=== Stripe Account Balance ===');
12 console.log('');
13
14 if (balance.available.length > 0) {
15 console.log('Available (ready for payout):');
16 balance.available.forEach(b => {
17 console.log(` ${(b.amount / 100).toFixed(2)} ${b.currency.toUpperCase()}`);
18 });
19 }
20
21 if (balance.pending.length > 0) {
22 console.log('Pending (processing):');
23 balance.pending.forEach(b => {
24 console.log(` ${(b.amount / 100).toFixed(2)} ${b.currency.toUpperCase()}`);
25 });
26 }
27
28 if (balance.connect_reserved) {
29 console.log('Connect reserved:');
30 balance.connect_reserved.forEach(b => {
31 console.log(` ${(b.amount / 100).toFixed(2)} ${b.currency.toUpperCase()}`);
32 });
33 }
34
35 // Also check recent balance transactions
36 const transactions = await stripe.balanceTransactions.list({
37 limit: 5
38 });
39
40 console.log('');
41 console.log('Recent balance transactions:');
42 transactions.data.forEach(txn => {
43 console.log(` ${txn.type}: ${(txn.amount / 100).toFixed(2)} ${txn.currency.toUpperCase()} (fee: ${(txn.fee / 100).toFixed(2)})`);
44 });
45
46 return balance;
47 } catch (err) {
48 console.error('Failed to retrieve balance:', err.message);
49 }
50}
51
52checkBalance();

Common mistakes when checkking Stripe account balance

Why it's a problem: Expecting the balance to update instantly after a payment

How to avoid: Payments go to 'pending' first and move to 'available' after the processing period (usually 2 business days for US accounts).

Why it's a problem: Reading the amount as dollars instead of cents

How to avoid: Stripe returns amounts in the smallest currency unit. For USD, divide by 100 to get dollars.

Why it's a problem: Checking the balance in live mode but seeing zero because payments are in test mode

How to avoid: Make sure you are using the correct API key. Test mode payments only appear in the test mode balance.

Best practices

  • Monitor your balance regularly to ensure payouts are processing on schedule
  • Use the Balance Transactions API to see individual transactions that affect your balance
  • Set up email alerts in the Dashboard for low balance or failed payouts
  • Account for Stripe fees when projecting your available balance
  • If you process multiple currencies, check the balance for each currency separately
  • For automated balance monitoring across multiple Stripe accounts, RapidDev can build custom dashboards that aggregate your data

Still stuck?

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

ChatGPT Prompt

Show me how to check my Stripe account balance using the Node.js API. I want to see available, pending, and reserved amounts broken down by currency. Also show me how to list recent balance transactions with their fees.

Stripe Prompt

Write a Node.js script that retrieves my Stripe balance and lists the last 5 balance transactions. Display amounts in dollars (not cents) with the currency and fee for each transaction.

Frequently asked questions

What is the difference between available and pending balance?

Available balance is ready to be paid out to your bank account. Pending balance is from recent charges that are still being processed — they move to available after the standard processing period (typically 2 business days in the US).

Why is my available balance zero even though I have payments?

If you have automatic payouts enabled, your available balance is regularly paid out to your bank. Check the Payouts section for recent transfers. New payments may also still be in the pending state.

Can I see my balance for a specific date in the past?

The Balance API shows your current balance. For historical data, use the Balance Transactions API with created date filters to reconstruct your balance at any point in time.

What is connect_reserved in the balance?

Connect reserved funds are set aside for Stripe Connect accounts to cover potential refunds or disputes from connected accounts. If you do not use Stripe Connect, this will be empty.

How often does the balance update?

The balance updates in real-time as transactions are processed. Each successful charge, refund, payout, or fee adjustment immediately affects the balance.

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.