Skip to main content

Quickstart Guide

This guide will help you get up and running with Midday quickly. You’ll learn how to sign up, complete onboarding, and perform your first meaningful actions: connecting a bank account or creating an invoice.

Sign Up

Midday uses Supabase Auth for secure authentication. You can sign up using:
  • Email and password
  • Magic link (passwordless)
  • OAuth providers (Google, GitHub)
1

Create Your Account

Visit midday.ai and click “Get Started” to create your account.
Midday uses secure authentication with email verification to protect your financial data.
2

Set Up Your Profile

After signing up, you’ll be guided through an onboarding flow to set up your profile:
// The onboarding flow collects essential information
const steps = [
  "set-name",         // Your name and avatar
  "create-team",      // Business details and currency
  "connect-bank",     // Bank account connection
  "connect-inbox",    // Email inbox for receipts
  "reconciliation",   // Learn about matching transactions
  "start-trial"       // Choose your plan
];
You’ll need to provide:
  • Your full name
  • Business name
  • Currency (USD, EUR, GBP, etc.)
  • Country code (for bank selection)
3

Complete Onboarding

The onboarding process is designed to get you productive quickly. You can skip optional steps and return to them later.
All steps except name and business details are optional - you can skip them and set them up later from settings.

Connect Your First Bank Account

Connecting your bank account is the fastest way to get value from Midday. It automatically syncs transactions, categorizes expenses, and provides financial insights.
1

Choose Your Region

Midday supports banks in multiple regions:
  • United States & Canada - Plaid or Teller
  • Europe - GoCardLess (20,000+ banks)
  • Extended Coverage - EnableBanking
The onboarding flow automatically detects your country and shows compatible banks.
2

Search for Your Bank

Use the bank search to find your financial institution:
// Search through available institutions
const institutions = await trpc.institutions.get({
  q: "chase",           // Search query
  countryCode: "US"     // Country filter
});
The search supports:
  • Bank names
  • Popular aliases
  • Country-specific filtering
3

Authorize the Connection

Midday uses secure OAuth flows to connect to your bank:
  1. Click “Connect” next to your bank
  2. You’ll be redirected to your bank’s login page
  3. Enter your banking credentials (handled by the provider, not Midday)
  4. Grant permission to access your accounts
  5. Select which accounts to sync
Your banking credentials are never stored or seen by Midday. All authentication happens directly with your bank through secure OAuth providers.
4

Select Accounts

Choose which accounts you want to sync with Midday:
// The SelectBankAccountsContent component handles account selection
<SelectBankAccountsContent
  enabled
  onComplete={handleComplete}
  onSyncStarted={(data) => {
    // Sync begins immediately after selection
    console.log('Syncing account:', data.runId);
  }}
/>
You can select:
  • Checking accounts
  • Savings accounts
  • Credit cards
  • Business accounts
5

Initial Sync

Midday will immediately begin syncing your transactions:
  • Historical data: Up to 24 months of transaction history
  • Real-time updates: New transactions sync automatically
  • Smart categorization: AI-powered expense categorization
The initial sync typically takes 1-2 minutes depending on transaction volume.
You can continue using Midday while the sync runs in the background. You’ll see a progress indicator at the top of the screen.

Create Your First Invoice

If you’re ready to bill a client, creating an invoice is quick and easy.
1

Navigate to Invoices

From the dashboard, click “Invoices” in the sidebar or press Cmd/Ctrl + I.
Dashboard Invoices "Create Invoice"
2

Add Client Information

Enter your client’s details:
  • Client name
  • Email address
  • Billing address (optional)
  • VAT/Tax ID (for EU clients)
Client information is saved for future invoices. You can manage your client list from Settings → Customers.
3

Add Line Items

Add services or products to your invoice:
// Invoice line item structure
type LineItem = {
  name: string;           // "Website Design"
  description?: string;   // "Landing page redesign"
  quantity: number;       // 1
  price: number;          // 5000.00
  tax?: number;           // 20 (percentage)
};
For each line item, specify:
  • Description
  • Quantity
  • Unit price
  • Tax rate (if applicable)
4

Configure Payment Terms

Set your invoice details:
// Invoice configuration options
{
  invoice_number: "INV-001",      // Auto-generated or custom
  issue_date: "2026-02-28",       // Today by default
  due_date: "2026-03-30",         // Payment due date
  payment_terms: "net_30",        // net_15, net_30, net_60, etc.
  currency: "USD",                // Your team currency
  note?: "Thank you for your business!"
}
Common payment terms:
  • Due on receipt - Payment expected immediately
  • Net 15 - Payment due in 15 days
  • Net 30 - Payment due in 30 days (most common)
  • Net 60 - Payment due in 60 days
5

Preview and Send

Before sending, preview your invoice:
  • HTML preview - See how it looks in the browser
  • PDF generation - Download a PDF version
  • Mobile preview - Check mobile responsiveness
When ready, you can:
  • Send via email - Automatic email with PDF attachment
  • Copy link - Share a web link to the invoice
  • Download PDF - Save for your records
6

Track Payment Status

After sending, Midday automatically tracks your invoice:
// Invoice statuses
type InvoiceStatus = 
  | "draft"       // Not sent yet
  | "scheduled"   // Scheduled to send
  | "unpaid"      // Sent but not paid
  | "paid"        // Fully paid
  | "overdue"     // Past due date
  | "canceled";   // Canceled
View your invoice dashboard to see:
  • Open invoices (scheduled + unpaid)
  • Overdue invoices
  • Total paid amount
  • Average payment time

Next Steps

Now that you’ve connected your bank or created an invoice, explore more features:

Time Tracking

Track time spent on projects and convert to invoices

Magic Inbox

Connect your email to auto-match receipts to transactions

Vault

Upload contracts, agreements, and important documents

AI Assistant

Get AI-powered insights into your business finances

Keyboard Shortcuts

Midday is designed for keyboard-first productivity:
ShortcutAction
Cmd/Ctrl + KOpen command palette
Cmd/Ctrl + IGo to invoices
Cmd/Ctrl + TGo to transactions
Cmd/Ctrl + PGo to tracker (time)
Cmd/Ctrl + VGo to vault
Cmd/Ctrl + /Show all shortcuts
Need help? Check out our full documentation or reach out to [email protected].

Common Questions

You can connect unlimited bank accounts on all plans. Each account syncs independently and transactions are automatically consolidated in your dashboard.
Midday supports 150+ currencies. Your team has a base currency for invoicing and reporting, but you can track transactions in multiple currencies with automatic conversion.
Yes! You can import transactions via CSV from Settings → Transactions → Import. This is useful for:
  • Historical data before bank connection
  • Banks not yet supported
  • Manual cash transactions
Transactions sync automatically:
  • Real-time: When you manually trigger a refresh
  • Daily: Automatic sync every 24 hours
  • Webhooks: Some providers send instant notifications for new transactions

Build docs developers (and LLMs) love