terminallisted
Install: claude install-skill Florkin/claude-stripe-skills
# Stripe Terminal (in-person / POS)
Accept **card-present** payments through Stripe-managed hardware readers or Tap to Pay. Terminal reuses the same `PaymentIntent` object as online Payments (see **stripe-suite:payments**) but adds reader hardware, a connection-token handshake, `Location` scoping, and `card_present` as the payment-method type. Fulfilment and result delivery run over the same webhook infrastructure as everything else (see **stripe-suite:webhooks**).
**Pinned Stripe API version: `2026-06-24.dahlia`.** Override per request with the `Stripe-Version` header. Shared foundations (keys, idempotency, money model, error taxonomy, CLI, test cards) are not duplicated here — see the **stripe-suite:integration** router's `../integration/reference/foundations.md`.
All examples are SDK-neutral (raw REST + a one-line cross-SDK note). Nothing here commits to one framework.
---
## When to use / decision tree
Terminal has three integration models. Pick by **where the checkout logic runs** and **what reader you have**.
| Integration model | Reader collects the card, but… | Best for | Route to |
|---|---|---|---|
| **Server-driven** | your **backend** drives the reader via the Stripe REST API (`/terminal/readers/{id}/process_payment_intent`). No Terminal SDK on the device. | Smart (internet-connected) readers only; existing/cloud POS; any language incl. .NET; routing over the internet instead of LAN. **Simplest — no on-device app to maintain.** | `reference/server-driven-fl