Skip to content

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.

StepWhereWho does itWhat you do
CollectAt checkout, on your Startup’s own Stripe account, in each state you are registered inStripe TaxNothing
TrackYour sales per state, totaled every day against each state’s thresholdFinance Lead agentNothing until a state crosses
RegisterEach state whose threshold your sales crossFinance Lead agent applies for the permitSay yes, or name the states yourself
ReturnsEach state you are registered in, on the schedule that state assignsFinance Lead agent files and pays from your booksSay yes, and sign any return that needs a sworn signature
ExemptA Customer with a valid exemption certificateYour agent stops tax for themSay 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

Company.register → Company.submit
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.