1. Supported hardware
Order readers through Stripe directly or ask us and we'll ship pre-provisioned with your location_id. BoaterOS is the software; we don't mark up hardware.
2. Initial setup
One-time. Under Settings → Payments → Stripe Terminal, click Connect Stripe. This is the same Stripe account BoaterOS already uses for ACH and card-not-present — Terminal is another capability on it, not a separate integration. Enable Terminal, assign a default location per dealership, and grant each salesperson the payments.terminal.use role.
3. Reader pairing
Bluetooth readers (Chipper): open the BoaterOS mobile app → Devices → Pair reader → hold the power button on the Chipper for 2s → select it from the list. The pairing is scoped to the app on that device; no OS-level Bluetooth is used, which avoids the reader showing up on personal phones.
Network readers (WisePOS E): plug in ethernet or join Wi-Fi → enter the 3-word registration code from the reader screen into Settings → Payments → Readers → Register. Reader firmware updates automatically on first connect.
4. Taking a deposit
5. Receipts
Email and SMS receipts fire within 2 seconds of capture. Both carry a link to the PDF; the PDF is also filed on the deal. The receipt template supports per-dealer branding (logo, colors, fine print) and is i18n-ready if you run multi-country.
{
"type": "payment.captured",
"data": {
"id": "pay_4G8X11Q",
"deal_id": "deal_2024B-9918",
"amount_cents": 500000,
"currency": "USD",
"method": "card_present",
"reader_id": "tmr_F2H9",
"stripe_payment_intent": "pi_3OaXy...",
"captured_at": "2026-04-22T14:12:04Z",
"receipt_url": "https://api.boater.os/r/pay_4G8X11Q.pdf"
}
} 6. Refunds
Full and partial refunds are initiated from the deal — select the payment, choose Refund, enter an amount up to the remaining balance, and add a note. Refunds net out of the next Stripe payout and post a credit line to the deal jacket instantly. Refunds require a role of payments.refund; by default, only managers have it.
7. Reconciliation
Every payment is attached to a deal_id at the moment of capture — there's no "which deal was this?" problem. The deal jacket shows deposits, progress payments, and refunds with running balances and Stripe payment intent IDs that match your Stripe dashboard 1:1. The overnight GL job exports to QuickBooks, NetSuite, or CSV.
8. Testing in sandbox
Sandbox mode gives you a simulated reader that accepts Stripe's test cards (4242 4242 4242 4242, 4000 0000 0000 0069 for decline, etc.). Enable it under Settings → Payments → Sandbox. Sandbox deposits are clearly marked in the UI and never post to the GL. This is also the right environment for training new salespeople.