Handle sales tax
Stripe Tax charges sales tax at checkout; your finance agent registers in each state you owe, then files and pays every return after your yes.
Your Startup charges sales tax at checkout through Stripe Tax in every state where it is registered. Your Finance Lead agent registers where sales cross a state’s threshold, then files and pays each return; you say yes first.
| Step | Where | Who does it | What you do |
|---|---|---|---|
| Collect | At checkout, on your Startup’s own Stripe account, in each state you are registered in | Stripe Tax | Nothing |
| Track | Your sales per state, totaled every day against each state’s threshold | Finance Lead agent | Nothing until a state crosses |
| Register | Each state whose threshold your sales cross | Finance Lead agent applies for the permit | Say yes, or name the states yourself |
| Returns | Each state you are registered in, on the schedule that state assigns | Finance Lead agent files and pays from your books | Say yes, and sign any return that needs a sworn signature |
| Exempt | A Customer with a valid exemption certificate | Your agent stops tax for them | Say Mark Harbor Properties tax-exempt |
Needs Open a bank account
What you get
- 1sales tax registration where you owe it, such as Texas, with its permit on fileCredential
- 1tax added at checkout from the day you registerCompany
- 1tax on every Order and Invoice by addressOrder
- 1return filed each filing period, with a copy on fileDocument
- 1tax paid to each state you are registered inEntry
- 1alert when your sales in another state cross its tax thresholdWatch
Your agent does
You, to your agent
Take care of sales tax.
Handle sales tax for me.
Register for sales tax in Texas and file the returns.
# 1. Company.register
curl -X POST https: //api.sb/ leaseline.app/ companies/ register \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"jurisdiction": "US-TX", "kind": "salesTax"}'
# 2. Company.submit
curl -X POST https: //api.sb/ leaseline.app/ companies/ submit \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"jurisdiction": "US-TX", "kind": "salesTax", "periods": ["period_2026_10"]}'
import { $ } from 'startup-builder'
await $.Company.register({ jurisdiction: 'US-TX', kind: 'salesTax' })
await $.Company.submit({ jurisdiction: 'US-TX', kind: 'salesTax', periods: ['period_2026_10'] })
npx startup-builder do Company.register --json '{"jurisdiction": "US-TX", "kind": "salesTax"}'
npx startup-builder do Company.submit --json '{"jurisdiction": "US-TX", "kind": "salesTax", "periods": ["period_2026_10"]}'
{
"name": "do",
"arguments": {
"code": "await $.Company.register({ jurisdiction: 'US-TX', kind: 'salesTax' })\nreturn await $.Company.submit({ jurisdiction: 'US-TX', kind: 'salesTax', periods: ['period_2026_10'] })"
}
}
Change it
- Register in every state where I cross the threshold.
- Mark Harbor Properties tax-exempt.
- File quarterly instead of monthly.
Under the hood
- Systems
- Tax, Billing, Ledger
- Nouns
- Company, Credential, Document, Period, Entry
- Events
Company.registered,Company.submitted- Stripe objects
Tax Registration,Tax Calculation,Tax Transaction
Each Startup is the seller of record and computes tax with Stripe Tax. Tax watches sales in every state against its threshold and tells the Finance Lead when a new state crosses it. Customer.exempt stops tax for a Customer with a valid certificate.