Browse the docs

Take payment for what you sell

Every product has its own page on your website where customers buy it. They see the price plus tax, agree to your terms, and pay by card, or pay you in person if payments aren’t connected.

Share a product’s page on your website (your site’s address, then /buy/ and the product) and customers buy it there, in your look, with a link back to your site.

They see each item’s price, the total plus applicable tax, what’s due now and your terms, and tick a box to agree. Where you collect sales tax, they see the tax and the total with it before the card form, and enter their ZIP code first only for something you ship or send. For a membership or anything that repeats, they tick a second box that says exactly what they’ll be charged and how often. That consent is recorded with the words, the time and where they agreed, and kept.

Cards are charged on your own Stripe account: you’re the seller and the money goes to you. A deposit is charged now and the rest at pickup or the appointment. A free trial saves their card now and charges when the trial ends.

When it starts, they get an email with what they agreed to and a link to see it or cancel. Cancelling a membership online takes one confirm that names the day it stops, the end of the period they’ve paid for, and nothing more is charged. Whoever cancels it, they get an email with the same day.

Something you ship needs payments connected to sell online. Without them, its page says to get in touch with you to order it. Pickup and local delivery are paid in person.

Without payments connected, customers still buy and pay you in person. It shows on Money, under Owed right now and Sales, to mark paid when you have the money. Connect payments to take cards online.

For agents

Checkout is commerce.checkout (customers, on the site); preview what a customer sees with commerce.previewSale, which also takes installments ({count, dates or every}) to show a payment plan: the first payment now, the rest charged to the saved card on their dates, with the plan’s own words in words.renewal for a separate tick. Bookings and enrollments sell through commerce.sell, one agreement per checkout with several lines (each with its own ref and first session startsAt), codes, proofs and installments; commerce.endLines ends some lines (one attendee dropping out) or gives back a called-off session (refund: session, end: false), each line under its own policy, with refunds sent after and never twice for the same cause; commerce.sessionValues says what each session is worth; a repeat or a plan needs agreeToRenewal with the preview’s termsVersion, and is refused with the words to show without it. A plan payment that fails every try follows the sale’s onUnpaid. A campaign link into an audience carries ?ap=<token> and is kept on the visit. commerce.agreement shows a sale in full; commerce.cancelAgreement with when: period_end stops a membership at the end of its paid period.