Claim the business and connect your bank
Claim the Startup with your identity and your bank, and get a verified Stripe account, operating and reserve accounts, a card balance and daily payouts.
For developers
You claim a Startup once. Stripe verifies who you are and connects your own bank for payouts, and the Startup's operating and reserve accounts open with their own routing numbers.
For developers
Needs Startup
What you get
- 1payment account, verified onceCompany
- 2operating and reserve accounts with routing numbersAccount
- 1card balance, held apart for company cardsCard
- 1daily payout of available cash to your bankTransaction
- 1feed of every money movement, matched to your booksTransaction
- 1Treasurer agent that keeps a minimum cash balanceRole
Your agent does
You, to your agent
Claim Leaseline and connect my bank.
Connect our bank to the business.
Claim the startup and verify who we are.
# Look up the Startup: Startup.list
RUN= $(uuidgen) # once per request; reuse it only to retry this request
STARTUP_MATCHES= $(curl "https: //api.sb/ leaseline.app/ startups? limit= 2" \
-H "Authorization: Bearer $SB_TOKEN")
[ "$(echo "$STARTUP_MATCHES" | jq '.startups | length')" = 1 ] || { echo "Ask the founder which Startup"; exit 1; }
STARTUP= $(echo "$STARTUP_MATCHES" | jq -r '.startups[0]["$id"] | split("/ ") | last')
# Startup.claim
curl -X POST https: //api.sb/ leaseline.app/ startups/ $STARTUP/ claim \
-H "Authorization: Bearer $SB_TOKEN" \
-H "Idempotency-Key: claim-and-connect-your-bank-leaseline.app-$RUN-1" \
-H "Content-Type: application/ json" \
-d '{"claimToken": "claim_7hq2x"}'
RUN= $(uuidgen) # once per request; reuse it only to retry this request
STARTUP_MATCHES= $(npx startup-builder do Startup.list --data '{"limit": 2}' --json)
[ "$(echo "$STARTUP_MATCHES" | jq '.startups | length')" = 1 ] || { echo "Ask the founder which Startup"; exit 1; }
STARTUP= $(echo "$STARTUP_MATCHES" | jq -r '.startups[0]["$id"] | split("/ ") | last')
npx startup-builder do Startup.claim --data '{"startup": "'"$STARTUP"'", "claimToken": "claim_7hq2x"}' --idempotency-key claim-and-connect-your-bank-leaseline.app-$RUN-1
{
"name": "do",
"arguments": {
"code": "const startupMatches = await $.Startup.list({ limit: 2 })\nif (startupMatches.length !== 1) throw new Error(`Ask the founder which Startup: ${startupMatches.length} match`)\nconst [startup] = startupMatches\nreturn await $.Startup.claim({ startup: startup.$id, claimToken: 'claim_7hq2x' })",
"idempotencyKey": "claim-and-connect-your-bank-leaseline.app-<run>"
}
}
import { $ } from 'startup-builder'
const run = crypto.randomUUID() // once per request; reuse it only to retry this request
const startupMatches = await $.Startup.list({ limit: 2 })
if (startupMatches.length !== 1) throw new Error(`Ask the founder which Startup: ${startupMatches.length} match`)
const [startup] = startupMatches
await $.Startup.claim({ startup: startup.$id, claimToken: 'claim_7hq2x' }, { idempotencyKey: `claim-and-connect-your-bank-leaseline.app-${run}-1` })
Change it
- Keep three months of spend in operating and sweep the rest to reserve.
- Pay out weekly instead of daily.
- Connect the bank account we already have.
Under the hood
- Systems
- Treasury, Ledger
- Nouns
- Startup, Company, Transaction, Entry
- Events
Startup.claimed,Transaction.reconciled- Stripe objects
Account,Person,Treasury Financial Account,Issuing Balance,Payout
Every Startup is one Stripe connected account. Its cash sits in four places: the payments balance, the card balance, the operating and reserve accounts, and your bank. Each move between them is a Transaction that Treasury reconciles to the Ledger within a day.