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.

01

Create your account

Sign up at /register. Choose Free, Pro, or Business. You'll receive an OTP verification email.

02

Complete your profile

Go to Settings → Profile. Add your company name, logo, address, and tax ID. These appear on every invoice PDF.

03

Add a client

Navigate to Clients → New Client. Fill in name, email, and billing address. Clients are reusable across invoices.

04

Create an invoice

Go to Invoices → New Invoice. Select client, add line items, set due date, and choose currency. Save as Draft.

05

Send the invoice

Click Send from the invoice detail page. Your client receives a PDF attachment with a pay link (Pro/Business).

06

Record payment

When paid, click Record Payment. The invoice status updates to PAID and a confirmation email is sent to the client.

Plans & Limits

FeatureFreeProBusiness
Monthly invoices10500Unlimited
Clients5100Unlimited
Email sending❌ Manual only
Email reminders
PDF export
Recurring invoices
Online payments (Stripe)
Multi-currency
AnalyticsBasicBasicAdvanced
Team members✅ Up to 10
Approval workflow
API & Webhooks
CSV export
Price$0 / mo$12 / mo$29 / mo
If you reach your plan's limit, you'll see an upgrade prompt. Upgrade anytime from Settings → Billing & Plan.

Invoices

Invoices are the core entity of the platform. Each invoice belongs to a user (or team owner) and a client.

Invoice Statuses

StatusMeaning
DRAFTCreated but not sent. Editable.
SENTEmailed to client. Awaiting payment.
VIEWEDClient opened the pay link.
PARTIALPartially paid. Balance remains.
PAIDFully paid. Locked from editing.
OVERDUEPast due date with unpaid balance.
PENDING_APPROVALSubmitted for team review (Business plan).
REJECTEDRejected by approver. Back to editable.
CANCELLEDVoided. No payment expected.
RECURRINGTemplate 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)
Use the Mark as Sent option (noEmail mode) if you've already sent the invoice manually outside the system.

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.

Set your company name, address, logo, and tax ID in Settings → Profile to ensure they appear correctly on all PDFs.

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

FieldRequiredNotes
NameYesAppears on invoice PDF
EmailYesInvoice delivery address
PhoneNo
CompanyNo
Address / City / State / Postal / CountryNoAppears on invoice PDF
Tax ID / VATNoAppears on invoice PDF
CurrencyNoDefault currency for new invoices
NotesNoInternal 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
Deleting a client does not delete their invoices — they become unlinked. Archive clients instead of deleting when possible.

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
Stripe Connect requires Pro or Business plan. The public pay page at /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.

Enable Auto-send on the template to have the generated invoice emailed to your client automatically on the day it's created.

Team Management

Business plan users can create a team and invite members to collaborate on invoices and clients.

Roles

RoleCan viewCan create/editCan approveCan 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.

Team members share the owner's invoice/client/payment data. Each member logs in with their own credentials.

Approval Workflow

Business plan teams can require invoices to be approved before sending. This adds a review step for quality control.

Workflow Steps

1
Member creates invoiceStatus: DRAFT
2
Member submits for approvalStatus: PENDING_APPROVAL — owner & admins notified by email + push
3
Owner/Admin reviewsOn the Approvals page
4
Approved → back to DRAFTMember can now send
5
Rejected → REJECTEDMember sees reason, can edit and resubmit

Stripe Connect

SB InvoiceFlow uses Stripe Connect Express to let you accept payments directly into your own Stripe account.

Setup Steps

  1. Upgrade to Pro or Business plan
  2. Go to Settings → Payout Settings
  3. Click Connect with Stripe — you'll be redirected to Stripe's onboarding
  4. Complete Stripe's identity verification (takes ~2 minutes)
  5. Return to the app — your account is now connected
Once connected, payments from your clients go directly into your own Stripe account. You can view your Stripe balance and payouts at any time from the Stripe Dashboard.

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

ScopeAccess
invoices:readGET /api/v1/invoices, /api/v1/invoices/:id
invoices:writePOST, PATCH, DELETE on invoices
clients:readGET /api/v1/clients
clients:writePOST, PATCH, DELETE on clients
payments:readGET /api/v1/payments
payments:writePOST payments

Webhooks

Webhooks deliver real-time POST requests to your endpoint when events occur in your account.

Available Events

EventFired when
invoice.createdNew invoice is saved
invoice.sentInvoice is emailed to client
invoice.paidInvoice reaches PAID status
invoice.approvedInvoice approved by team admin
invoice.rejectedInvoice rejected by team admin
invoice.deletedInvoice is permanently deleted
payment.recordedAny payment is recorded
client.createdNew client is added
client.deletedClient 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

MethodEndpointDescription
GET/invoicesList all invoices (paginated, filterable)
GET/invoices/:idGet a single invoice with line items
POST/invoicesCreate a new invoice
PATCH/invoices/:idUpdate invoice fields
DELETE/invoices/:idDelete a DRAFT invoice
You can filter invoices by status, client, and date range. Results are paginated (20 per page by default).

Clients

MethodEndpointDescription
GET/clientsList all clients
GET/clients/:idGet single client + invoice summary
POST/clientsCreate a client
PATCH/clients/:idUpdate client details
DELETE/clients/:idDelete a client

Payments

MethodEndpointDescription
GET/invoices/:id/paymentsList payments for an invoice
POST/invoices/:id/paymentsRecord a payment

Error Codes

CodeMeaning
400Validation error — check the issues array in the response
401Missing or invalid API key
403Plan limit exceeded or insufficient permissions
404Resource not found
429Rate limit exceeded
500Internal server error

Email Notifications

SB InvoiceFlow sends transactional emails via Resend. All emails are HTML-formatted with your company branding.

Emails Sent

TriggerRecipientPlan
Invoice sentClientPro / Business
Payment recordedClient (confirmation + updated PDF)Pro / Business
Invoice overdue reminderClientPro / Business
Approval requestedOwner / AdminsBusiness
Invoice approvedRequesting memberBusiness
Invoice rejectedRequesting memberBusiness
Team invitationInviteeBusiness
OTP verificationUser on loginAll plans
All emails are sent automatically — no configuration needed on your end. If you're not receiving emails, check your spam folder or contact support.

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.

Push notifications work in Chrome, Firefox, Edge, and Safari 16.4+. If you dismiss the permission prompt, you can re-enable it from your browser's site settings.

Notification Events

EventNotificationPlan
Invoice paid in full💰 Invoice paid — Client nameAll
Partial payment received💳 Partial payment — Client nameAll
Invoice approved✅ Invoice approvedBusiness
Invoice rejected❌ Invoice rejected + reasonBusiness
Approval needed📋 Review pending — Invoice numberBusiness
Invoice sent📤 Invoice sent to Client namePro / 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.

If you don't receive the OTP email, check your spam folder or wait 30 seconds and try logging in again to trigger a new code.
There is no "remember this device" option currently. Every new browser session requires OTP verification.

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.

If you are a team member (not the owner), you can leave the team from Settings → Billing → Leave Team. Your personal account is unaffected.

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

Free
ProLive Chat
  • In-app live chat (support bubble)
  • Email support
  • Response within 24 hours
  • Full chat history preserved
BusinessPriority
  • Priority live chat (flagged to staff)
  • Email support
  • Response within 2 hours
  • Dedicated priority queue

Support by Plan

FeatureFreeProBusiness
Live in-app chatNoYesPriority
Email supportYesYesYes
Typical response time72 hours24 hours2 hours
Chat historyNoYesYes
Priority queueNoNoYes
Staff alert on messageNoYesInstant

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.

Hiding the bubble does not close an active conversation — it only hides the button. Your conversation remains open and staff can still reply.

Conversation Status

StatusMeaning
OpenWaiting for a staff response
In ProgressA staff member has joined and is actively helping
ClosedConversation 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.

Currency conversion is not performed automatically. Amounts are stored and displayed in the currency you select when creating an invoice.

All 137 Currencies

USDUS Dollar
EUREuro
GBPBritish Pound
AEDUAE Dirham
AFNAfghan Afghani
ALLAlbanian Lek
AMDArmenian Dram
ANGNetherlands Antillean Guilder
AOAAngolan Kwanza
ARSArgentine Peso
AUDAustralian Dollar
AWGAruban Florin
AZNAzerbaijani Manat
BAMBosnia-Herzegovina Convertible Mark
BBDBarbadian Dollar
BDTBangladeshi Taka
BGNBulgarian Lev
BIFBurundian Franc
BMDBermudian Dollar
BNDBrunei Dollar
BOBBolivian Boliviano
BRLBrazilian Real
BSDBahamian Dollar
BWPBotswanan Pula
BYNBelarusian Ruble
BZDBelize Dollar
CADCanadian Dollar
CDFCongolese Franc
CHFSwiss Franc
CLPChilean Peso
CNYChinese Yuan
COPColombian Peso
CRCCosta Rican Colón
CVECape Verdean Escudo
CZKCzech Koruna
DJFDjiboutian Franc
DKKDanish Krone
DOPDominican Peso
DZDAlgerian Dinar
EGPEgyptian Pound
ETBEthiopian Birr
FJDFijian Dollar
FKPFalkland Islands Pound
GELGeorgian Lari
GIPGibraltar Pound
GMDGambian Dalasi
GNFGuinean Franc
GTQGuatemalan Quetzal
GYDGuyanese Dollar
HKDHong Kong Dollar
HNLHonduran Lempira
HRKCroatian Kuna
HTGHaitian Gourde
HUFHungarian Forint
IDRIndonesian Rupiah
ILSIsraeli New Shekel
INRIndian Rupee
ISKIcelandic Króna
JMDJamaican Dollar
JPYJapanese Yen
KESKenyan Shilling
KGSKyrgyzstani Som
KHRCambodian Riel
KMFComorian Franc
KRWSouth Korean Won
KYDCayman Islands Dollar
KZTKazakhstani Tenge
LAKLaotian Kip
LBPLebanese Pound
LKRSri Lankan Rupee
LRDLiberian Dollar
LSLLesotho Loti
MADMoroccan Dirham
MDLMoldovan Leu
MGAMalagasy Ariary
MKDMacedonian Denar
MMKMyanmar Kyat
MNTMongolian Tögrög
MOPMacanese Pataca
MROMauritanian Ouguiya
MURMauritian Rupee
MVRMaldivian Rufiyaa
MWKMalawian Kwacha
MXNMexican Peso
MYRMalaysian Ringgit
MZNMozambican Metical
NADNamibian Dollar
NGNNigerian Naira
NIONicaraguan Córdoba
NOKNorwegian Krone
NPRNepalese Rupee
NZDNew Zealand Dollar
PABPanamanian Balboa
PENPeruvian Sol
PGKPapua New Guinean Kina
PHPPhilippine Peso
PKRPakistani Rupee
PLNPolish Złoty
PYGParaguayan Guaraní
QARQatari Riyal
RONRomanian Leu
RSDSerbian Dinar
RUBRussian Ruble
RWFRwandan Franc
SARSaudi Riyal
SBDSolomon Islands Dollar
SCRSeychellois Rupee
SEKSwedish Krona
SGDSingapore Dollar
SHPSaint Helenian Pound
SLLSierra Leonean Leone
SOSSomali Shilling
SRDSurinamese Dollar
STDSão Tomé and Príncipe Dobra
SVCSalvadoran Colón
SZLSwazi Lilangeni
THBThai Baht
TJSTajikistani Somoni
TOPTongan Paʻanga
TRYTurkish Lira
TTDTrinidad and Tobago Dollar
TWDNew Taiwan Dollar
TZSTanzanian Shilling
UAHUkrainian Hryvnia
UGXUgandan Shilling
UYUUruguayan Peso
UZSUzbekistani Som
VNDVietnamese Đồng
VUVVanuatu Vatu
WSTSamoan Tala
XAFCentral African CFA Franc
XCDEast Caribbean Dollar
XOFWest African CFA Franc
XPFCFP Franc
YERYemeni Rial
ZARSouth African Rand
ZMWZambian Kwacha

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.

CurrencyCodeExample Amount
Japanese YenJPY¥1,000
South Korean WonKRW₩5,000
Burundian FrancBIFFr 2,500
Rwandan FrancRWFFr 10,000
Ugandan ShillingUGXUSh 50,000
Guinean FrancGNFFr 8,000
Djiboutian FrancDJFFdj 1,800
Comorian FrancKMFCF 500
Vanuatu VatuVUVVt 1,200
Paraguayan GuaraníPYG₲ 75,000
Malagasy AriaryMGAAr 4,000