Take a payment
Say "take a $29 payment" and get checkout on your domain, an Order and receipt per buyer, sales tax and every payment in your books.
For developers
Take a one-time payment for an Offer at a fixed Price: each buyer pays at checkout on your domain, and Stripe collects it.
For developers
Needs Startup
What you get
- 1Offer at a one-time $29 PriceOffer
- 1product and price on StripePrice
- 1checkout page on your domain, card and walletsOffer
- 1Order for each buyer, placed and paidOrder
- 1card or wallet payment for each OrderTransaction
- 1receipt emailed from your domainMessage
- 1sales tax on every chargeOrder
- 2lines in your books per charge: cash in and revenue earnedEntry
Your agent does
You, to your agent
Take a $29 payment for setup.
Send me a link a customer can pay $29 with.
Charge $29 once for onboarding.
# 1. Offer.create
OFFER= $(curl -X POST https: //api.sb/ leaseline.app/ offers \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"price": {"amount": 29, "currency": "USD"}, "interval": "once", "terms": "One-time setup fee, refundable within 14 days."}' | jq -r '.offer["$id"] | split("/ ") | last')
# 2. Offer.publish
curl -X POST https: //api.sb/ leaseline.app/ offers/ $OFFER/ publish \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
import { $ } from 'startup-builder'
const offer = await $.Offer.create({ price: { amount: 29, currency: 'USD' }, interval: 'once', terms: 'One-time setup fee, refundable within 14 days.' })
await $.Offer.publish({ offer: offer.$id })
OFFER= $(npx startup-builder do Offer.create --json '{"price": {"amount": 29, "currency": "USD"}, "interval": "once", "terms": "One-time setup fee, refundable within 14 days."}' | jq -r '.offer["$id"] | split("/ ") | last')
npx startup-builder do Offer.publish --json '{"offer": "'"$OFFER"'"}'
{
"name": "do",
"arguments": {
"code": "const offer = await $.Offer.create({ price: { amount: 29, currency: 'USD' }, interval: 'once', terms: 'One-time setup fee, refundable within 14 days.' })\nreturn await $.Offer.publish({ offer: offer.$id })"
}
}
Change it
- Make it $49 for new buyers.
- Refund the last payment.
- Ask buyers for a company name at checkout.
- Make it a refundable deposit instead.
Under the hood
- Systems
- Billing, Ledger, Tax
- Nouns
- Offer, Price, Order, Entry
- Events
Offer.created,Offer.published,Order.placed,Order.paid- Stripe objects
Product,Price,Checkout Session,PaymentIntent,Charge,Tax Calculation
Each buyer's checkout places an Order, and Order.pay settles it on the Startup's own Stripe account. The charge lands in the payments balance, pending until it settles, then pays out to your bank.