Overview
SB InvoiceFlow is a full-featured invoice management SaaS platform built for freelancers, agencies, and small businesses. It handles the entire invoice lifecycle — from creation to payment — with support for teams, recurring billing, multi-currency, Stripe payments, webhooks, and a full REST API.
Invoice Management
Create, send, track, and archive invoices with PDF generation.
Client Directory
Manage all your clients with full contact and billing details.
Online Payments
Accept card payments via Stripe Connect. Automatic paid status.
Recurring Invoices
Schedule weekly, monthly, quarterly, or yearly auto-invoices.
Analytics
Revenue trends, top clients, overdue tracking, currency breakdown.
API & Webhooks
Full REST API and real-time webhook events for integrations.
Quick Start
Get your first invoice sent in under 5 minutes.
Create your account
Sign up at /register. Choose Free, Pro, or Business. You'll receive an OTP verification email.
Complete your profile
Go to Settings → Profile. Add your company name, logo, address, and tax ID. These appear on every invoice PDF.
Add a client
Navigate to Clients → New Client. Fill in name, email, and billing address. Clients are reusable across invoices.
Create an invoice
Go to Invoices → New Invoice. Select client, add line items, set due date, and choose currency. Save as Draft.
Send the invoice
Click Send from the invoice detail page. Your client receives a PDF attachment with a pay link (Pro/Business).
Record payment
When paid, click Record Payment. The invoice status updates to PAID and a confirmation email is sent to the client.
Plans & Limits
| Feature | Free | Pro | Business |
|---|---|---|---|
| Monthly invoices | 10 | 500 | Unlimited |
| Clients | 5 | 100 | Unlimited |
| Email sending | ❌ Manual only | ✅ | ✅ |
| Email reminders | ❌ | ✅ | ✅ |
| PDF export | ✅ | ✅ | ✅ |
| Recurring invoices | ❌ | ✅ | ✅ |
| Online payments (Stripe) | ❌ | ✅ | ✅ |
| Multi-currency | ❌ | ✅ | ✅ |
| Analytics | Basic | Basic | Advanced |
| Team members | ❌ | ❌ | ✅ Up to 10 |
| Approval workflow | ❌ | ❌ | ✅ |
| API & Webhooks | ❌ | ❌ | ✅ |
| CSV export | ❌ | ✅ | ✅ |
| Price | $0 / mo | $12 / mo | $29 / mo |
Invoices
Invoices are the core entity of the platform. Each invoice belongs to a user (or team owner) and a client.
Invoice Statuses
| Status | Meaning |
|---|---|
| DRAFT | Created but not sent. Editable. |
| SENT | Emailed to client. Awaiting payment. |
| VIEWED | Client opened the pay link. |
| PARTIAL | Partially paid. Balance remains. |
| PAID | Fully paid. Locked from editing. |
| OVERDUE | Past due date with unpaid balance. |
| PENDING_APPROVAL | Submitted for team review (Business plan). |
| REJECTED | Rejected by approver. Back to editable. |
| CANCELLED | Voided. No payment expected. |
| RECURRING | Template for recurring invoice series. |
Creating an Invoice
Go to Invoices → New Invoice. Required fields:
- Client — must exist in your client directory first
- Invoice date — defaults to today
- Due date — drives overdue detection
- Line items — at least one item with description, quantity, and rate
Optional: tax rate (%), discount (%), currency (defaults to USD), notes, and payment terms.
Sending an Invoice
From the invoice detail page, click Send Invoice. This:
- Marks the invoice as SENT
- Emails the client a PDF attachment via Resend
- Includes a pay link if Stripe Connect is active (Pro/Business)
PDF Generation
Every invoice has a downloadable PDF generated server-side with Puppeteer. The PDF includes your company logo, contact details, line items, totals, tax breakdown, and QR code for the pay link.
Bulk Actions
Select multiple invoices on the list page to:
- Bulk send (Pro/Business — emails all selected DRAFT invoices)
- Bulk delete (removes DRAFT invoices only)
- Export to CSV (Pro/Business)
Clients
Clients represent the companies or individuals you invoice. Each client stores contact info, billing address, and tax ID.
Client Fields
| Field | Required | Notes |
|---|---|---|
| Name | Yes | Appears on invoice PDF |
| Yes | Invoice delivery address | |
| Phone | No | |
| Company | No | |
| Address / City / State / Postal / Country | No | Appears on invoice PDF |
| Tax ID / VAT | No | Appears on invoice PDF |
| Currency | No | Default currency for new invoices |
| Notes | No | Internal notes, not shown to client |
Client Detail Page
Click any client to see their full profile including:
- Total billed, total paid, outstanding balance
- Invoice history with status badges
- Payment history
- Quick actions: New Invoice for this client, Edit
Payments
Payments can be recorded manually or collected automatically via Stripe.
Recording a Manual Payment
Open an invoice → click Record Payment. Provide:
- Amount (cannot exceed balance due)
- Payment date
- Method: Bank Transfer, Cash, Cheque, Credit Card, PayPal, Crypto, Other
- Reference number (optional)
- Notes (optional)
Partial payments are supported. The invoice moves to PARTIAL until fully paid, then PAID.
Online Payments via Stripe
Connect your Stripe account under Settings → Payout Settings. Once connected:
- A Pay Now button appears on emailed invoices
- Client pays via
/pay/[invoiceId]— no account needed - Stripe webhook auto-marks the invoice as PAID
- A small platform fee applies on each transaction
/pay/[id] works without any login for your clients.Recurring Invoices
Recurring invoices automatically generate new invoices on a schedule using a saved template.
Creating a Recurring Template
Go to Recurring → New Template. Configure:
- Frequency: Weekly, Monthly, Quarterly, Yearly
- Start date: When the first invoice generates
- End date: Optional — leave blank to run indefinitely
- Auto-send: Automatically email the client when generated
- All the same fields as a regular invoice (client, line items, currency, notes)
How Generation Works
The system checks your active templates every day. When the next run date arrives, a new invoice is automatically created from the template — with all your line items, rates, and settings pre-filled. The next run date advances by the configured interval and the cycle continues.
Team Management
Business plan users can create a team and invite members to collaborate on invoices and clients.
Roles
| Role | Can view | Can create/edit | Can approve | Can manage team |
|---|---|---|---|---|
| Owner | ✅ | ✅ | ✅ | ✅ |
| Admin | ✅ | ✅ | ✅ | ✅ |
| Member | ✅ | ✅ | ❌ | ❌ |
Inviting Members
Go to Team → Invite. Enter the email address. The invitee receives an email with a one-click accept link. Once accepted, they can log in with their own account and all their actions operate under the team owner's data context.
Approval Workflow
Business plan teams can require invoices to be approved before sending. This adds a review step for quality control.
Workflow Steps
Stripe Connect
SB InvoiceFlow uses Stripe Connect Express to let you accept payments directly into your own Stripe account.
Setup Steps
- Upgrade to Pro or Business plan
- Go to Settings → Payout Settings
- Click Connect with Stripe — you'll be redirected to Stripe's onboarding
- Complete Stripe's identity verification (takes ~2 minutes)
- Return to the app — your account is now connected
API Keys
API keys allow external tools, scripts, or your own applications to read and manage your invoices and clients programmatically. This feature is available on the Business plan.
Creating a Key
Go to API Keys in the sidebar. Click Generate New Key. The full key is shown once — copy it immediately. It is stored as a bcrypt hash and cannot be recovered.
Using a Key
Include the key in the Authorization header:
Authorization: Bearer sbif_your_key_here
Key Permissions
| Scope | Access |
|---|---|
| invoices:read | GET /api/v1/invoices, /api/v1/invoices/:id |
| invoices:write | POST, PATCH, DELETE on invoices |
| clients:read | GET /api/v1/clients |
| clients:write | POST, PATCH, DELETE on clients |
| payments:read | GET /api/v1/payments |
| payments:write | POST payments |
Webhooks
Webhooks deliver real-time POST requests to your endpoint when events occur in your account.
Available Events
| Event | Fired when |
|---|---|
invoice.created | New invoice is saved |
invoice.sent | Invoice is emailed to client |
invoice.paid | Invoice reaches PAID status |
invoice.approved | Invoice approved by team admin |
invoice.rejected | Invoice rejected by team admin |
invoice.deleted | Invoice is permanently deleted |
payment.recorded | Any payment is recorded |
client.created | New client is added |
client.deleted | Client is deleted |
Security
Every webhook delivery includes a signature in the X-Signature header so your receiving server can verify the request came from SB InvoiceFlow. Each webhook endpoint has its own unique secret shown when you create it.
Retries
Failed deliveries (non-2xx response or timeout) are retried up to 3 times with exponential backoff. All delivery attempts are logged in the Webhooks → Delivery Log for debugging.
REST API Reference
The REST API is available on the Business plan. Use it to build integrations, automate workflows, or connect SB InvoiceFlow to your own tools. All requests must include your API key in the Authorization header and return JSON responses.
Invoices
| Method | Endpoint | Description |
|---|---|---|
| GET | /invoices | List all invoices (paginated, filterable) |
| GET | /invoices/:id | Get a single invoice with line items |
| POST | /invoices | Create a new invoice |
| PATCH | /invoices/:id | Update invoice fields |
| DELETE | /invoices/:id | Delete a DRAFT invoice |
Clients
| Method | Endpoint | Description |
|---|---|---|
| GET | /clients | List all clients |
| GET | /clients/:id | Get single client + invoice summary |
| POST | /clients | Create a client |
| PATCH | /clients/:id | Update client details |
| DELETE | /clients/:id | Delete a client |
Payments
| Method | Endpoint | Description |
|---|---|---|
| GET | /invoices/:id/payments | List payments for an invoice |
| POST | /invoices/:id/payments | Record a payment |
Error Codes
| Code | Meaning |
|---|---|
| 400 | Validation error — check the issues array in the response |
| 401 | Missing or invalid API key |
| 403 | Plan limit exceeded or insufficient permissions |
| 404 | Resource not found |
| 429 | Rate limit exceeded |
| 500 | Internal server error |
Email Notifications
SB InvoiceFlow sends transactional emails via Resend. All emails are HTML-formatted with your company branding.
Emails Sent
| Trigger | Recipient | Plan |
|---|---|---|
| Invoice sent | Client | Pro / Business |
| Payment recorded | Client (confirmation + updated PDF) | Pro / Business |
| Invoice overdue reminder | Client | Pro / Business |
| Approval requested | Owner / Admins | Business |
| Invoice approved | Requesting member | Business |
| Invoice rejected | Requesting member | Business |
| Team invitation | Invitee | Business |
| OTP verification | User on login | All plans |
Push Notifications
Browser push notifications are delivered via the Web Push Protocol (VAPID). They work in Chrome, Firefox, Edge, and Safari 16.4+.
Enabling Push Notifications
Click the Bell icon in the top navigation bar. When your browser asks for permission, click Allow. You're now subscribed and will receive notifications even when the app is not open.
Notification Events
| Event | Notification | Plan |
|---|---|---|
| Invoice paid in full | 💰 Invoice paid — Client name | All |
| Partial payment received | 💳 Partial payment — Client name | All |
| Invoice approved | ✅ Invoice approved | Business |
| Invoice rejected | ❌ Invoice rejected + reason | Business |
| Approval needed | 📋 Review pending — Invoice number | Business |
| Invoice sent | 📤 Invoice sent to Client name | Pro / Business |
Two-Factor Authentication
Every login is protected by email OTP (one-time password). After entering your password, a 6-digit code is sent to your registered email. The code expires in 10 minutes.
Billing & Upgrades
Subscriptions are managed through Stripe Billing. Your card is charged monthly.
Upgrading / Downgrading
Go to Settings → Billing & Plan. Select a new plan and confirm. Changes take effect immediately:
- Upgrade: Pro-rated charge, features unlock instantly
- Downgrade: Takes effect at end of current billing period
Cancellation
Cancel anytime from Settings → Billing. Your account downgrades to Free at the end of the current billing period. All your data is retained.
Data Export
Pro and Business users can export invoice data to CSV for use in Excel, Google Sheets, or accounting software.
CSV Export
On the Invoices list page, select invoices using the checkboxes, then click Export CSV. The export includes:
- Invoice number, date, due date, status
- Client name and email
- Subtotal, tax, discount, total, amount paid, balance due
- Currency, sent date, paid date
PDF Download
Individual invoice PDFs can be downloaded from any invoice detail page. The PDF is generated on-demand server-side.
Getting Help
Our support team is here to help. How you reach us depends on your plan — every tier has a dedicated channel suited to its needs.
Support Channels by Plan
- Email us at support@sbinvoiceflow.com
- Access to full documentation
- Response within 72 hours
- No live chat
- In-app live chat (support bubble)
- Email support
- Response within 24 hours
- Full chat history preserved
- Priority live chat (flagged to staff)
- Email support
- Response within 2 hours
- Dedicated priority queue
Support by Plan
| Feature | Free | Pro | Business |
|---|---|---|---|
| Live in-app chat | No | Yes | Priority |
| Email support | Yes | Yes | Yes |
| Typical response time | 72 hours | 24 hours | 2 hours |
| Chat history | No | Yes | Yes |
| Priority queue | No | No | Yes |
| Staff alert on message | No | Yes | Instant |
How to Contact Support
- Free plan: Click the chat bubble in the dashboard — it shows the support email address. Send an email directly from your mail client.
- Pro plan: Click the chat bubble in the bottom-right corner of any dashboard page. A staff member will reply inside the chat.
- Business plan: Same as Pro, but your messages are marked Priority and staff receive an immediate priority alert.
Toggling the Chat Bubble
You can show or hide the chat bubble from the sidebar. Click Support Chat in the sidebar to toggle it. Your preference is saved in the browser.
Conversation Status
| Status | Meaning |
|---|---|
| Open | Waiting for a staff response |
| In Progress | A staff member has joined and is actively helping |
| Closed | Conversation ended — you can start a new one at any time |
Supported Currencies
SB InvoiceFlow supports 137 currencies for invoicing — every currency accepted by Stripe. Set your preferred currency in Settings → Default Currency, or choose a different currency on any individual invoice.
All 137 Currencies
Changing Currency
- Default currency — go to Settings and choose from the currency dropdown. All new invoices will use this currency.
- Per-invoice currency — when creating or editing an invoice, use the currency selector in the invoice form to override the default for that invoice only.
- Currency rates — navigate to Currency Rates in the sidebar to view live exchange rates relative to your default currency.
Zero-Decimal Currencies
Some currencies do not use decimal places (e.g. JPY, KRW, BIF). Stripe handles these automatically — amounts are passed as whole numbers and no cents are shown on invoices.
| Currency | Code | Example Amount |
|---|---|---|
| Japanese Yen | JPY | ¥1,000 |
| South Korean Won | KRW | ₩5,000 |
| Burundian Franc | BIF | Fr 2,500 |
| Rwandan Franc | RWF | Fr 10,000 |
| Ugandan Shilling | UGX | USh 50,000 |
| Guinean Franc | GNF | Fr 8,000 |
| Djiboutian Franc | DJF | Fdj 1,800 |
| Comorian Franc | KMF | CF 500 |
| Vanuatu Vatu | VUV | Vt 1,200 |
| Paraguayan Guaraní | PYG | ₲ 75,000 |
| Malagasy Ariary | MGA | Ar 4,000 |
Still have questions? Contact support →