Vendors / Adjacent encroachers — ordering, middleware & back-office
Stripe Terminal
Stripe Terminal (Stripe)
Card-present payments as a developer primitive — published flat rates, a free sandbox and smart readers that will host your own Android POS app, wrapped around a product that has no menu, no check and no order.
dossier live
- Claims in scope
- 173
- Scored
- 173
- Assessed
- 154
- Unknown
- 19
- Not applicable
- 141
- Cells challenged
- 38
Identity
- Owner
- Stripe, Inc. — privately held; no public filings disclose Terminal-level figures
- Founded
- Stripe founded 2010; Stripe Terminal introduced 2018. The Terminal launch dates were not re-verified against a primary source in this pass and should be treated as background rather than as a sourced fact.
- Scale
- unknown — Stripe does not break out Terminal volume, reader estate or merchant counts, and as a private company files no reports that would disclose it. Terminal is documented as available in 38 countries (https://support.stripe.com/questions/stripe-terminal-country-and-currency-availability).
- Who it is for
- Developers, software platforms and vertical SaaS building their own in-person checkout, plus Stripe online merchants adding a retail or pop-up counter. Not restaurant operators buying a turnkey POS — the POS application layer is the customer's to build.
- Site
- https://stripe.com/terminal
Pricing
transparency: published · unit: revenue-share · processor lock-in: yes
- Software
- No software subscription for Terminal. Card-present processing is 2.7% + $0.05 per successful domestic transaction; international cards +1.5%; Tap to Pay +$0.10 per authorization; point-to-point encryption +$0.05 per authorization; cellular data $10.00 per reader per month. Instant Payouts 1.5% of volume with a $0.50 minimum. Optional data add-ons carry published list prices — Sigma $15.00/month (from $10.00/month on a 1-year contract) and Data Pipeline $65.00/month (from $50.00/month on a 1-year contract). Custom/volume pricing exists only via sales.
- Card processing
- 2.7% + $0.05 card-present domestic (flat blended). No interchange-plus rate is published; IC+ is quote-only through Stripe sales.
- Contract
- No term for the core service. The Stripe Services Agreement is effective on first access or use and continues until either party terminates; the user may end it at any time by closing the account via the Dashboard. The only term commitment in the stack is the optional 1-year annual pricing on the Sigma and Data Pipeline add-ons.
- Early termination
- None. No early-termination or liquidated-damages charge appears in the SSA. It does state that payment obligations are non-cancelable and fees paid are non-refundable.
- Hardware
- Stripe Reader M2 $59.00; Stripe Reader S700 $299.00; Stripe Reader S710 $299.00. Sold outright, no mandatory lease in published pricing.
API posture
public API: open
- Cost to integrate
- No API fee, no partner agreement and no NDA — self-serve keys and a free sandbox with a built-in simulated reader. Revenue is taken entirely through the processing rate. The raw-data products are separately priced but openly published — Sigma $15.00/month, Data Pipeline $65.00/month.
- Webhooks
- Yes. HMAC-SHA256 signed via the Stripe-Signature header carrying a timestamp and versioned schemes; live-mode delivery attempted for up to 3 days with exponential back off (sandbox: 3 retries over a few hours); an Event deliveries tab shows Delivered/Pending/Failed, and events are replayable for 15 days from the Dashboard or 30 days via the CLI. Published rate limits: 100 req/s live, 25 req/s sandbox, 25 req/s endpoint default, 429 with a Stripe-Rate-Limited-Reason header. (https://docs.stripe.com/webhooks, https://docs.stripe.com/rate-limits)
- Data export on exit
- Weak. Dashboard CSV export and the API cover payments and customers while the account is open, and Data Pipeline ($65.00/month) delivers raw data to a customer-controlled warehouse. But the SSA states that on termination the user's rights to use the Services cease immediately and the user must delete all copies of Stripe Technology, with no defined post-termination retrieval window. The SSA also grants Stripe a perpetual, irrevocable, royalty-free license to use Content, and asserts that Stripe Data belongs to Stripe. (https://stripe.com/legal/ssa)
- Notes
- Terminal supports four integration shapes: SDK (iOS, Android, JavaScript, React Native), server-driven API, Apps on Devices (your own Android APK, <=200MB, on Stripe smart readers S700/S710 running Android 10, plus Verifone readers), and a no-code Standalone Mode plus the Dashboard mobile app for Tap to Pay. Stripe smart readers ship without Google Play Services, with production USB ports disabled and no adb; Stripe manages OTA updates for all apps and software components on the device. Every documentation page is retrievable as Markdown by appending .md, which is how most of this record was verified.
Capabilities
Every claim is binary and checkable. Grades: A primary documentation · B product documentation · C pricing or feature page · D marketing claim · E third-party reporting · F inference with no source. A yes on a differentiator claim requires A or B.
Payments & money movement
payments-processor-choice differentiator
Stripe Terminal is Stripe's own acquiring product and the published pricing is a Stripe processing rate (2.7% + 5c card-present domestic). No bring-your-own-acquirer or alternate-processor path is offered; Terminal transactions settle through Stripe. https://stripe.com/pricing · retrieved 2026-08-02
payments-published-rates differentiator
Shortfall: one blended rate is published, the rate a real merchant ends up on may not be. Published openly and itemised with no sales call — '2.7% + 5c per successful transaction for domestic cards' card-present, '+ 1.5%' international cards, Tap to Pay '+ $0.10 per authorization', P2PE '+ $0.05 per authorization', cellular '$10.00 per reader per month', Instant Payouts '1.5% of Instant Payouts volume' with a 50c minimum. But no interchange-plus schedule is published, custom and volume pricing is quote-only through Stripe sales, and the only evidence is the vendor's own pricing page — first-party but written to sell, which is grade C and below the bar this dataset sets for a differentiator yes. https://stripe.com/pricing · retrieved 2026-08-02
payments-dual-pricing differentiator
Cash-discount/dual-price presentation on a guest check requires a check object to render two totals on. Terminal produces payment receipts against a single PaymentIntent amount and has no check or guest-check concept.
payments-surcharge-guardrails differentiator
Stripe does ship a documented surcharging engine with exactly these guardrails, but only for online payments: US credit cards only at a 3% maximum, Canada credit only at 2.4%, Australia and New Zealand all cards at 4%; Stripe validates the surcharge against the maximum by default and returns an error above it, bypassable with enforce_validation: disabled (which does not lift the funding-type or regional restrictions). The surcharge documentation never mentions card-present or Terminal, so applicability to Terminal transactions is genuinely undetermined rather than absent.
payments-emv-nfc
Stripe documents brand and method support per reader: Visa and Mastercard in every Terminal country, American Express everywhere except Malaysia, Discover/Diners, China UnionPay, JCB, Maestro and the regional schemes (eftpos, girocard, Cartes Bancaires, Interac), and explicitly 'Terminal supports NFC-based mobile wallets (Apple Pay, Google Pay, and Samsung Pay).' One documented exception: on the WisePOS E, UnionPay and JCB work only as inserted EMV chip transactions and contactless is not supported. Terminal itself is available in 38 countries, not the 39 markets the marketing page implies. https://docs.stripe.com/terminal/payments/collect-card-payment/supported-card-brands.md · retrieved 2026-08-02 adversarially verified
payments-softpos-tap-to-pay differentiator
Documented rather than merely priced: Tap to Pay on iPhone requires an iPhone XS or later on a one-year-or-later iOS version and accepts Visa, Mastercard, American Express and Discover contactless cards, NFC-based mobile wallets and QR-based payment methods, plus eftpos in Australia, Interac in Canada and Cartes Bancaires in France. PIN entry is supported on iOS 16.4 or later for transactions requiring additional cardholder verification. Generally available in 20 countries with 18 more in public preview. Priced on the pricing page at '+ $0.10 per authorization'. Tap to Pay on Android does not support offline mode. https://docs.stripe.com/terminal/payments/setup-reader/tap-to-pay.md?platform=ios · retrieved 2026-08-02 adversarially verified
payments-pay-at-table
Shortfall: the hardware half exists, the software half does not. The S710 mobile smart reader with on-reader tip prompts takes payment anywhere in the venue, but there is no check retrieval, no seat or course model and no split-check logic — the integrator must build all of it. Terminal has no check object to fetch tableside. https://docs.stripe.com/terminal/features/collecting-tips/on-reader · retrieved 2026-08-02
payments-qr-guest-pay differentiator
No Stripe Terminal documentation was located for a scan-to-pay flow in which a guest opens a check by QR code and closes it against the POS. Stripe ships QR-based payment methods in its online products, but nothing tying one to a Terminal-side open check was found. Assessed and unresolved.
payments-tip-adjust
Shortfall: tips are collected before authorization, not adjusted after it. Stripe documents smart tips (fixed amounts below a threshold, percentages at or above it), three configurable percentage or fixed options, a separate amount_eligible basis and skip_tipping; after confirmation the tip lands in amount_details.tip.amount. No post-authorization tip-adjust batch window and no manager unadjusted-tips screen are documented — the restaurant tip-adjust workflow is absent. https://docs.stripe.com/terminal/features/collecting-tips/on-reader · retrieved 2026-08-02
payments-tip-pooling differentiator
Tip pooling requires employee records to distribute across. Stripe has no employee or shift resource; tips are captured only as an amount on the PaymentIntent (amount_details.tip.amount) with no payee attribution.
payments-offline-store-and-forward differentiator
Shortfall: store-and-forward is real, configurable limits are not - the offline controls Stripe ships are SDK primitives the integrator must assemble into a limit, not limit parameters. Offline collection is documented for Bluetooth and internet readers, with payments written to disk, surviving a reader reboot and forwarded on reconnect. The merchant-configurable surface is a single boolean in both places it is exposed: the Dashboard offers an on/off 'Offline mode' toggle per location, and the Configuration object's entire offline schema is 'offline.enabled (boolean, nullable)'. The SDK adds a per-PaymentIntent CreateConfiguration enum, offlineBehavior = REQUIRE_ONLINE | PREFER_ONLINE | FORCE_OFFLINE, and two read-only status properties, Terminal.offlineStatus.reader.offlinePaymentsCount and offlinePaymentAmountsByCurrency. None of those is a limit: Stripe's own text assigns the threshold to the developer - 'you might want to disallow transactions above a certain amount or disallow all offline transactions if the reader has stored a set of transactions whose sum exceeds a certain amount' - and its sample code hardcodes the ceiling in the merchant's app ('we block the payment if the amount is over 1000 usd'). The only Stripe-enforced ceiling is a fixed, non-configurable 10,000 USD per transaction, now quotable first-party. https://docs.stripe.com/terminal/features/operate-offline/collect-card-payments.md?terminal-card-present-integration=terminal&reader-type=internet&terminal-sdk-platform=ios · retrieved 2026-08-12 adversarially verified
payments-offline-decline-liability differentiator
Shortfall: the liability half is now fully evidenced; the failed-payment report does not exist. Stripe states the risk position plainly - 'You, as the user, assume all decline and tamper-related risks associated with an offline transaction' and 'Payment liability is your responsibility when operating your reader offline' - on the collect-card-payments page, which does render once requested with the real variant parameters ('terminal-card-present-integration=terminal', 'terminal-sdk-platform='); the three prior passes that called it unrenderable were using 'platform=' and got the variant index, which was the correct answer to the question asked. What still does not exist is a post-reconnect report of failed offline payments. Forwarding outcomes surface only as SDK callbacks - OfflineDelegate's didForwardPaymentIntent(intent, error) and didReportForwardingError - plus PaymentIntent webhooks, and the one documented reporting affordance, 'Examine payments collected offline', identifies AUTHORIZED offline charges via payment_method_details.card_present.offline. There is no Stripe-supplied report, Dashboard view or export of offline payments that failed on forward; the integrator builds it. https://docs.stripe.com/terminal/features/operate-offline/collect-card-payments.md?terminal-card-present-integration=terminal&reader-type=internet&terminal-sdk-platform=ios · retrieved 2026-08-12 adversarially verified
payments-gift-cards
Stripe ships no stored-value or gift product. No gift-card, balance or stored-value resource appears anywhere in the enumerated Stripe API surface, and Terminal has no tender type for one.
payments-house-accounts
House accounts require an on-account tender and an AR balance per customer. Stripe Invoicing bills customers, but Terminal has no on-account tender and no house-account balance to settle against at the reader.
payments-split-tender
Split tender requires a single check that multiple payments draw down. Terminal has no check object; multiple tenders means multiple independent PaymentIntents that the integrator must orchestrate, total and reconcile in their own application.
payments-refund-void-controls
POS-side refund and void authorization requires a manager-PIN or approval prompt at the terminal and an immutable approver audit trail. Terminal has no such prompt; refund authority exists only as Stripe Dashboard team roles for back-office users, which is a different control at a different layer.
payments-chargeback-tooling differentiator
Documented in-product dispute response: a Dashboard flow with structured evidence assembly and file upload, auto-populated transaction and 3DS data, Visa Compelling Evidence 3.0 evaluation, plus dispute API endpoints for programmatic response. https://docs.stripe.com/disputes/responding · retrieved 2026-08-01
payments-card-on-file differentiator
Documented, with a nuance worth stating: 'When you create a PaymentIntent or SetupIntent with a card-present payment method, you can't save the PaymentMethod directly.' Stripe instead creates a reusable generated_card PaymentMethod from the in-person presentment, which the integrator attaches to a Customer or Account for later reuse - and if it is not attached, reuse is lost. Cardholder consent is an explicit documented step (opt-in terms, disclosure of timing, frequency and amount, written agreement). Reuse is online-only: 'Payments with generated cards are online payments and can't be processed with Terminal SDK methods.' https://docs.stripe.com/terminal/features/saving-payment-details/overview.md · retrieved 2026-08-02 adversarially verified
payments-payout-timing differentiator
Documented in product documentation rather than merely priced: selectable manual, daily, weekly or monthly payout schedules with named days of the week or month, weekend and holiday roll-forward, and per-country settlement timing (US and Australia 2 business days, most EU 3 business days after a 7-calendar-day initial, Japan 4 business days after 7). Initial payout is typically scheduled 7-14 days after the first successful payment. Instant Payouts is separately available at a published 1.5% of volume, 50c minimum. https://docs.stripe.com/payouts · retrieved 2026-08-02
payments-multi-entity-routing differentiator
Shortfall: not native to Terminal. Terminal itself does not route settlement to legal entities; the Terminal overview only notes that you can use Terminal with Connect to support connected accounts. Delivering it requires adopting Stripe Connect — a separate, separately-priced product that requires the buyer to become a platform and onboard each entity as a connected account. Real capability, but a different product bolted on rather than a Terminal feature. https://docs.stripe.com/terminal/overview · retrieved 2026-08-01 adversarially verified
payments-p2pe-pci4
Shortfall: the certification is Stripe's, not the merchant's, and the version is unstated. Stripe documents that 'A PCI-certified auditor evaluated Stripe and certified us to PCI Service Provider Level 1', and sells point-to-point encryption as a priced add-on (+$0.05 per authorization). No merchant-facing Attestation of Compliance, no PCI-listed P2PE solution reference, and no PCI DSS version number appear in the security documentation. https://docs.stripe.com/security · retrieved 2026-08-02
Digital ordering & guest-facing channels
digital-first-party-web
Stripe sells online payment acceptance (Checkout, Payment Links, Elements) but ships no restaurant ordering site: no menu, no cart, no fulfilment mode selection. The buyer builds or buys the storefront and calls Stripe only for the payment step.
digital-menu-single-source
A single menu source of truth across channels requires a menu record. Stripe has none. Inferred from the Terminal API object model.
digital-native-app differentiator
Stripe ships a Dashboard mobile app for merchants (including Tap to Pay) but no guest-facing branded ordering app, because there is no ordering product. Inferred from Stripe's documented mobile surface.
digital-account-saved-payment
Tokenised card-on-file and Link exist as payment primitives, but there is no guest account, saved address or reorder concept — there is no ordering product for an account to belong to. The Customer object is a billing record, not a guest profile.
digital-upsell-engine differentiator
A checkout upsell engine requires a cart and a catalog. Stripe Terminal has neither. Inferred from the Terminal API object model.
digital-scheduled-pacing
Scheduled ordering and throttling require order slots and a kitchen capacity model. Stripe has no order resource and no kitchen concept.
digital-fulfillment-modes
Pickup, curbside, dine-in and delivery are order fulfilment modes. Terminal has no order resource to carry a fulfilment mode. Inferred from the Terminal API object model.
digital-qr-table
QR table ordering requires a table map and an ordering surface. Stripe ships neither; Terminal's reader UI collects payment and tip only.
digital-kiosk differentiator
Stripe ships no kiosk product. Apps on Devices lets an integrator deploy their own Android app onto an S700/S710 smart reader, which is a platform for someone else's kiosk rather than a kiosk Stripe sells.
digital-group-ordering
Group ordering requires a shared cart. Stripe has no cart or order resource. Inferred from the Terminal API object model.
digital-catering-portal differentiator
A catering portal requires quotes, lead times and large-order workflow on top of an ordering product Stripe does not have. Inferred from the absence of any ordering surface.
digital-voice-ai-phone differentiator
Stripe ships no voice ordering product. There is no telephony or speech surface in the documented product line, and no order resource for a voice agent to write to.
digital-drivethru-ai
Stripe ships no drive-thru product of any kind — no order capture, no lane hardware, no timing. Inferred from the documented product line.
digital-sms-ordering
Stripe sends transactional payment receipts by SMS but operates no conversational ordering channel, because there is no order to place. Inferred from the documented messaging surface.
digital-google-order differentiator
Order with Google integration requires an ordering endpoint to hand off to. Stripe has none. Inferred from the absence of any ordering surface.
digital-apple-business-connect
Apple Business Connect place-card integration is a storefront/listing feature; Stripe ships no merchant listing or ordering surface to connect. Inferred from the documented product line.
digital-loyalty-attach
Attaching loyalty identity at digital checkout requires both a loyalty product and a digital ordering checkout. Stripe has neither.
digital-subscriptions
Stripe Billing does general recurring billing, but there is no restaurant membership or entitlement product tied to an ordering flow — no benefit, redemption or entitlement resource that an order could consume.
digital-promo-parity
Promotion parity across channels requires a promotion engine and multiple ordering channels. Stripe Billing has coupons for subscription invoices; Terminal has no promotion concept and no channels to keep in parity.
digital-guest-data-ownership differentiator
Shortfall: exportable in practice, but not owned outright in contract. Customer and payment records export via Dashboard CSV, the API and Data Pipeline, yet the Stripe Services Agreement grants Stripe 'a perpetual, worldwide, non-exclusive, irrevocable, royalty-free license to use the Content to develop, improve, and provide Services and Stripe Technology', and states that Stripe and its affiliates 'own all IP Rights in the Services, the Stripe Technology, Stripe Data'. https://stripe.com/legal/ssa · retrieved 2026-08-02
digital-checkout-pci-sca
Shortfall: the primitives are Stripe's, the checkout is the buyer's. Stripe provides hosted fields and hosted pages, 3DS/SCA support and PCI Service Provider Level 1 certification, but applies them to the developer's own checkout — Stripe does not ship a restaurant ordering checkout whose PCI and SCA posture could be assessed as a product. https://docs.stripe.com/security · retrieved 2026-08-02
digital-surcharge-transparency differentiator
Stripe documents a surcharging engine for online payments with disclosure requirements — surcharge must be disclosed before purchase and itemised on the receipt — plus jurisdictional caps (US 3% credit only, Canada 2.4% credit only, Australia and New Zealand 4% all cards) and card-network coverage across Visa, Mastercard, Amex, Discover and others. The documentation never mentions card-present or Terminal, and Stripe ships no digital ordering checkout, so guest-facing surcharge transparency in this context cannot be determined.
Guest data, loyalty & marketing
guest-loyalty-unified-profile
Shortfall: one identity across channels is possible, but the integrator builds it and nothing merges automatically. Documentation shows the real mechanism - an in-person presentment yields a generated_card PaymentMethod that the integrator attaches to a Customer or Account, after which the same identity can be charged online. That is a genuine in-store-to-online link. What the claim asks for and Stripe does not document is automatic merging by phone or email match, identity resolution or dedup behaviour; attachment is manual, and there is no kiosk or first-party web-ordering channel to merge from. The earlier citation for this cell was the Terminal marketing page, which promotes unified customer data without documenting it. https://docs.stripe.com/terminal/features/saving-payment-details/overview.md · retrieved 2026-08-02 adversarially verified
guest-loyalty-thirdparty-identity-attach differentiator
Attaching a third-party loyalty identity at the point of sale requires a loyalty-provider integration surface on the payment terminal. No loyalty connector appears in Stripe's Terminal documentation or App Marketplace listings for Terminal.
guest-loyalty-accrual-models
Stripe ships no loyalty product: no points ledger, no accrual rule and no redemption resource appear in the enumerated Stripe API surface.
guest-loyalty-tiers differentiator
Loyalty tiers require a loyalty program to tier. Stripe has no loyalty resource. Inferred from the enumerated Stripe API surface.
guest-loyalty-offline-behavior differentiator
Stripe's documented offline behaviour covers card capture only. There is no loyalty accrual or redemption to degrade gracefully, because there is no loyalty product.
guest-loyalty-offer-stacking-rules differentiator
Offer stacking and exclusivity rules require an offer resource. Stripe has none outside Billing coupons, which apply to invoices rather than in-person transactions.
guest-loyalty-targeted-offers differentiator
Targeted offers require a segmentation engine and an offer delivery channel. Stripe ships neither for merchant guest marketing.
guest-loyalty-rfm-segmentation differentiator
RFM segmentation of guests is not a shipped Stripe feature. Sigma would let an analyst write the SQL themselves against payment data, but that is the customer building it, not the product providing it.
guest-loyalty-lifecycle-automation
Lifecycle campaign automation (winback, birthday, lapsed) requires a campaign engine. Stripe operates no merchant marketing automation product.
guest-loyalty-native-email-sms differentiator
Stripe sends transactional payment receipts by email and SMS but runs no marketing campaign engine — there is no campaign, audience or send resource in the API.
guest-loyalty-consent-management
Marketing consent capture and audit requires a marketing channel to consent to. Stripe operates none for merchant guest marketing.
guest-loyalty-10dlc-registration
A2P 10DLC brand and campaign registration is required of businesses sending application-to-person marketing SMS. Stripe does not operate merchant marketing SMS, so it offers no 10DLC registration path.
guest-loyalty-campaign-attribution differentiator
Attributing revenue to campaigns requires campaigns. Stripe runs no merchant marketing campaigns and holds no campaign resource.
guest-loyalty-data-export-portability differentiator
Shortfall: what exports is payments data, not guest data. Customer and transaction records export self-serve via the API and (for full raw delivery) the paid Data Pipeline product into a customer-controlled warehouse. There is no loyalty ledger, points balance or offer history to export because none exists. https://docs.stripe.com/data/access-data-in-warehouse · retrieved 2026-08-01
guest-loyalty-cdp-event-api differentiator
Shortfall: the events are payment events, not guest or order events. Signed, retried webhooks stream payment and customer lifecycle changes that any CDP can subscribe to, but a CDP wanting visit frequency, basket contents or dwell behaviour will find none of it — Stripe never sees an item. https://docs.stripe.com/webhooks · retrieved 2026-08-02
guest-loyalty-review-capture-routing differentiator
Review solicitation and routing is not a Stripe product; no review, survey or feedback resource appears in the enumerated API surface.
guest-loyalty-referral-program
Referral tracking with reward issuance requires a reward ledger. Stripe has none. Inferred from the enumerated Stripe API surface.
guest-loyalty-wallet-pass differentiator
Apple Wallet and Google Wallet loyalty passes require a loyalty program to represent. Stripe Issuing supports wallet provisioning of payment cards, which is a different artefact — a card, not a loyalty pass.
guest-loyalty-privacy-rights-tooling
Shortfall: process, not tooling. Stripe publishes a DPA and documents a deletion-request intake process, but no in-product tool was found that lets a merchant locate, export or delete an individual guest's records on demand. https://stripe.com/legal/privacy-center · retrieved 2026-08-01
guest-loyalty-redemption-fraud-controls
Redemption velocity limits and fraud controls presuppose redemptions. Stripe Radar guards card payment fraud, not loyalty redemption, and there is no loyalty product to defend.
guest-loyalty-ai-offer-recommendation differentiator
AI-generated offer recommendations require an offer engine and guest behaviour data. Stripe has neither for merchant guest marketing.
guest-loyalty-stored-value-gift
Stripe ships no stored-value or gift-card product; no balance or stored-value resource appears in the enumerated Stripe API surface.
Reporting, BI & data access
reporting-realtime-dashboard
Shortfall: it is a payments dashboard, not a restaurant dashboard. The Stripe Dashboard (web and mobile) shows payments in near real time, including Tap to Pay taken from the mobile app, but reports payments volume — never covers, item mix, voids, comps or labour, because Stripe holds none of that data. https://docs.stripe.com/terminal · retrieved 2026-08-01
reporting-eod-closeout
Stripe produces balance and payout reconciliation, not a restaurant end-of-day: there is no cash handling anywhere in the product, no declared tips, no comps or voids, and no expected-deposit figure to reconcile a drawer against.
reporting-pmix-modifier-level
Product mix reporting to modifier level requires item and modifier records on the transaction. Stripe records an amount, not a basket.
reporting-comps-voids-audit
Comp and void auditing requires comp and void events with reason codes and an approver. Terminal has no check to comp or void; refunds exist, but a refund is a settled-payment reversal, not a pre-close void with an approver trail.
reporting-cash-over-short
Cash over/short reporting requires cash handling and drawer counts. Stripe does not process cash at all.
reporting-labor-productivity
Sales-per-labour-hour reporting requires labour hours. Stripe records none.
reporting-server-scorecards differentiator
Server scorecards require employee attribution on transactions. Stripe's PaymentIntent carries no employee reference.
reporting-channel-profitability differentiator
Channel profitability requires a fulfilment-channel dimension and marketplace commission data. Stripe can slice by payment method and Location, but has no channel concept and no commission data.
reporting-multiloc-drilldown differentiator
Shortfall: possible, but you build it. Terminal Location objects tag payments by site and Sigma or Data Pipeline let an analyst aggregate across locations and drill to an individual payment in SQL. There is no prebuilt store-versus-store comparison view, and the measures available are payments measures only. https://docs.stripe.com/data/access-data-in-warehouse · retrieved 2026-08-01
reporting-custom-report-builder differentiator
Shortfall: SQL, not a builder, and paid. Stripe Sigma is a SQL query surface aimed at analysts rather than a drag-and-drop report builder an operator could use, and it is a separately priced add-on at $15.00 per month (from $10.00 per month on a 1-year contract). https://docs.stripe.com/data/access-data-in-warehouse · retrieved 2026-08-01
reporting-scheduled-delivery
Shortfall: analyst-authored and paid rather than operator-facing. Sigma scheduled queries run daily, weekly or monthly, email named subscribers a link to a CSV of results, and emit a sigma.scheduled_query_run.created webhook — but the report must first be written in SQL, and Sigma is a $15.00/month add-on. https://docs.stripe.com/data/schedule-queries · retrieved 2026-08-01 adversarially verified
reporting-raw-warehouse-export differentiator
Data Pipeline delivers Stripe's raw data into a customer-controlled destination - Snowflake, Amazon Redshift, Databricks, BigQuery, Google Cloud Storage, Azure Blob Storage or Amazon S3 - 'without writing code', explicitly positioned as a replacement for third-party ETL or home-built API integrations. The initial load completes within 12 hours and a full load is delivered every 3 hours thereafter. The documentation page publishes no price; the $65.00/month list price (from $50.00/month on a 1-year contract) is on the pricing page. https://docs.stripe.com/data/access-data-in-warehouse.md · retrieved 2026-08-02 adversarially verified
reporting-public-api differentiator
Fully public REST API covering payments, customers, readers, locations, zones and configurations, with self-serve keys and no partner agreement. It returns no menu or labour data because those objects do not exist in the product. https://docs.stripe.com/terminal · retrieved 2026-08-01
reporting-webhooks differentiator
Signed webhooks for the payment lifecycle with documented retry and replay: HMAC-SHA256 in the Stripe-Signature header, live-mode delivery attempted for up to three days with exponential back off, and an Event deliveries tab showing Delivered, Pending or Failed. https://docs.stripe.com/webhooks · retrieved 2026-08-02
reporting-api-not-upcharged differentiator
Shortfall: the core API is free but raw-data access is a paid add-on. There is no API fee, no per-location fee and no software subscription for the Terminal API itself; Sigma ($15.00/month) and Data Pipeline ($65.00/month) are separately priced. Both list prices are published rather than quote-only, so this is an upcharge with transparent terms. https://stripe.com/pricing · retrieved 2026-08-02
reporting-tier-paywall differentiator
Positive evidence of absence: Stripe's published pricing has no subscription tiers at all for Terminal, so there is no higher plan behind which reporting could be withheld. Advanced data access is a separately priced add-on rather than a tier gate. https://stripe.com/pricing · retrieved 2026-08-02
reporting-history-retention differentiator
No published retention window for transaction-level detail in the Stripe Dashboard was located in this pass. Stripe documents a 6-month retention for Activity Logs specifically, but that covers IAM events rather than payment history, and no statement about payment record retention or archival was found.
reporting-anomaly-alerts differentiator
Stripe Radar provides fraud rules and alerting on payment risk, but no operator-configurable business-metric threshold alerting (sales down x%, voids up y%) was located. Whether such alerting exists in the Dashboard could not be determined.
reporting-nl-query
Could not verify whether Stripe ships a natural-language analytics assistant over a merchant's own data. No such feature was documented in the Sigma or Dashboard material reviewed, but absence from the pages read is not evidence of absence from the product.
reporting-guest-cohorts differentiator
Guest cohort analysis requires visit history keyed to a guest. Stripe has Customer objects the integrator may or may not attach, and no visit, order or item history to cohort on.
reporting-sales-forecast differentiator
Sales forecasting is not a shipped Stripe feature; no forecast resource or Dashboard report was found, and Stripe holds no item-level or weather-correlated demand data to forecast from.
reporting-tip-tax-compliance
Tip tax compliance reporting requires employee attribution and declared-tip records. Tips are captured on the PaymentIntent as an amount only, with no payee, so no tip-allocation or tax-liability reporting is possible.
Multi-location, franchise & enterprise governance
multi-location-org-hierarchy
Shortfall: a real hierarchy that scopes only devices. Stripe documents Zones as 'the top-level groups that can consist of either more zones or locations', nestable for additional levels, giving Account > Zone > Location > Reader, with the constraint that 'You must still assign readers to a location, and you can assign a location to only one zone.' What it scopes is reader grouping and regional reader configuration — there is no menu, price, tax, role or permission scoping at any level. https://docs.stripe.com/terminal/fleet/locations-and-zones · retrieved 2026-08-02 adversarially verified
multi-location-central-menu-publish
Central menu publishing requires a menu. Stripe has none; the documented fleet hierarchy propagates reader configuration only.
multi-location-local-override-policy differentiator
Governed local override of central settings requires central menu or price settings to override. Terminal's hierarchy carries reader configuration, and no override-permission policy for it is documented.
multi-location-price-zones
Price zones require prices attached to locations. Stripe's Zone concept groups readers geographically for device management, not prices — the name collides with the capability but the function does not.
multi-location-scheduled-publish differentiator
Scheduled publication of menu or price changes across locations requires a menu and a scheduling mechanism. Stripe has neither.
multi-location-new-store-template differentiator
Shortfall: templates cover readers only. Terminal Configuration objects (tipping settings among them) are reusable and assignable to readers and locations, so a new site can inherit reader behaviour — but a new-store template that carried menu, taxes, roles, printers or tenders does not exist because none of those objects exist. https://docs.stripe.com/terminal/features/collecting-tips/on-reader · retrieved 2026-08-02
multi-location-corp-vs-franchisee-roles differentiator
Shortfall: an analogy, not a franchise product. Stripe Connect separates a platform from independently-owned connected accounts with their own banking and onboarding, which maps loosely onto franchisor and franchisee — but there is no franchise product, no corporate-versus-franchisee permission model, and Connect is a separate product the buyer must adopt and operate as a platform. https://docs.stripe.com/connect · retrieved 2026-08-01
multi-location-royalty-calculation differentiator
Connect application fees can take a percentage cut of a transaction, but a royalty calculation needs a royalty basis, ad-fund contribution and reporting schedule. None of those concepts exist in Stripe; a flat application fee is not a royalty engine.
multi-location-royalty-collection
Automated royalty collection with statements and dispute handling requires a royalty engine, which Stripe does not have. Connect application fees settle automatically but produce no royalty statement.
multi-location-consolidated-reporting
Shortfall: consolidation is payments-only and self-assembled. Data Pipeline can land multiple Stripe accounts into a single warehouse, but the consolidated view must be built in the customer's own BI layer, and the only measures available are payments measures — no sales mix, labour or cost roll-up. https://docs.stripe.com/data/access-data-in-warehouse · retrieved 2026-08-01
multi-location-normalized-item-rollup differentiator
Rolling up the same item across locations requires item records and a normalisation mapping. Stripe holds no item records.
multi-location-cross-location-giftcard
Cross-location gift card redemption requires a gift card. Stripe ships no stored-value product.
multi-location-cross-location-loyalty
Cross-location loyalty accrual requires a loyalty program. Stripe ships none.
multi-location-multi-brand differentiator
Multi-brand separation requires brand-scoped menus, pricing and reporting. Stripe's hierarchy scopes readers; a Zone can represent an 'organizational sub-brand' for device grouping, but nothing brand-scoped attaches to it beyond reader configuration.
multi-location-multi-tax-jurisdiction
Terminal receives an amount already computed by the caller, so tax determination normally sits outside the product. Stripe Tax exists as a separate product with jurisdiction-aware rates, but no documentation was located establishing whether or how it applies to card-present Terminal transactions. Assessed and unresolved.
multi-location-multi-currency-locale
Shortfall: locations can span many countries and currencies, but each one transacts only in its own local currency and Terminal itself converts nothing. The regional-considerations doc states: 'To process Terminal payments, both the Stripe account receiving the funds and the location associated with the reader must be in the same country, accepting local currency only.' The Connect article adds: 'Connected accounts are only able to process card present charges in their local currency. For example, US-based Connect Accounts can only process card_present payments in USD', with on_behalf_of on a destination charge used to settle in the connected account's local currency - so a multi-country estate is built as one account or connected account per country, not as one account presenting several currencies. Breadth is real: the global-availability page lists 37 countries each with its local currency (US, Mexico, Singapore and UAE appear in the regional reader-availability table). No consolidated reporting converted to a single reporting currency is offered by Terminal; that falls to Sigma or Data Pipeline and the customer's own FX logic. Supersedes the previous citation to support.stripe.com/questions/stripe-terminal-country-and-currency-availability, which now redirects to a page carrying only the country table - the multi-currency-presentment/DCC sentence the record quoted is no longer retrievable there. https://docs.stripe.com/terminal/payments/regional · retrieved 2026-08-09 adversarially verified
multi-location-config-audit-log differentiator
Stripe's Activity Logs record only IAM-class events — API key creation, deletion, update and viewing, user invitations and role changes — retain them for 6 months, are exportable for SIEM and SOC 2 or PCI audit purposes, and explicitly exclude SSO and SCIM access updates. Nothing in that scope covers Terminal, Location, Zone or Configuration changes, and log immutability is not addressed, so a per-location configuration audit trail specifically remains undetermined. adversarially verified
multi-location-enterprise-sso differentiator
Stripe's security documentation states it supports 'single sign-on through Security Assertion Markup Language (SAML) 2.0, allowing you to mandate sign-in requirements, configure access control, and instantly onboard team members through just-in-time (JIT) account provisioning', and adds that 'If you use SSO with SCIM, you can enforce authentication policies centrally through your identity provider.' Dashboard MFA covers passkeys, hardware security keys, TOTP and SMS. SCIM's provisioning scope is referenced rather than fully specified. https://docs.stripe.com/security · retrieved 2026-08-02 adversarially verified
multi-location-enterprise-api differentiator
One authenticated API key returns transaction-level data across every Terminal Location on the account, with no per-location key or per-location fee; Data Pipeline extends the same reach across multiple accounts into one warehouse. https://docs.stripe.com/data/access-data-in-warehouse · retrieved 2026-08-01
multi-location-central-labor-policy
Central labour policy propagation requires a labour product. Stripe ships none.
Integrations, API & extensibility
extensibility-public-api-docs
Complete public API and SDK reference at docs.stripe.com, readable without an NDA, a partner agreement or a sales call, and machine-readable — every documentation page is retrievable as Markdown by appending .md, which is how several claims in this record were verified. https://docs.stripe.com/terminal · retrieved 2026-08-01
extensibility-api-access-cost differentiator
Shortfall: the transactional API is free, bulk data access is not. No API fee, no per-location fee and no software subscription appear in Stripe's published Terminal pricing — Stripe monetises the processing rate instead. But getting your own data out in bulk requires paid add-ons (Sigma $15.00/month, Data Pipeline $65.00/month), and the sole evidence is the vendor pricing page, which is grade C. Scored consistently with reporting-api-not-upcharged, which describes the same arrangement. https://stripe.com/pricing · retrieved 2026-08-02
extensibility-partner-revshare
Stripe's partner and marketplace commercial terms — whether referral fees or revenue share are offered to integrators, and on what basis — were not located publicly in this pass. Stripe operates a partner ecosystem but publishes no rate card for it that was found.
extensibility-free-sandbox differentiator
A free sandbox plus a built-in simulated reader in every SDK and in the server-driven API, so a developer can integrate and test the full payment flow with no hardware and no paid account. Documented test scenarios cover declines, PIN entry, reader software updates and offline behaviour. https://docs.stripe.com/terminal/references/testing · retrieved 2026-08-01
extensibility-oauth-partner-apps
Stripe Connect provides OAuth-based, account-holder-granted, revocable authorization for third-party platforms to act on an account, and restricted API keys give scoped, least-privilege permissions. https://docs.stripe.com/connect · retrieved 2026-08-01
extensibility-webhooks-push
Shortfall: payment lifecycle only. Real-time push webhooks cover PaymentIntent creation, success, cancellation, refund and dispute, but there is no order object, so order-lifecycle events — placed, fired, ready, completed — must be modelled entirely in the integrator's own system. https://docs.stripe.com/webhooks · retrieved 2026-08-02
extensibility-webhook-reliability differentiator
Documented to an unusual level of precision: HMAC-SHA256 signatures in the Stripe-Signature header carrying a timestamp (t=) and versioned schemes (v1 live, v0 test) with explicit guidance to ignore non-v1 schemes; live-mode delivery attempted 'for up to three days' with exponential back off against three retries over a few hours in sandbox; an Event deliveries tab listing Delivered, Pending and Failed; manual resend up to 15 days from the Dashboard and up to 30 days via the Stripe CLI. https://docs.stripe.com/webhooks · retrieved 2026-08-02 adversarially verified
extensibility-order-injection-api
Positive evidence of absence: the Terminal write API is enumerated in the reference and creates PaymentIntents, Readers, Locations, Zones and Configurations. There is no order or ticket resource, so nothing can be injected that would fire to a kitchen or print a chit. https://docs.stripe.com/terminal · retrieved 2026-08-01
extensibility-menu-write-api differentiator
No menu object exists to write to. Stripe's Products and Prices objects serve Billing subscriptions and invoices, not restaurant menus, and Terminal does not read them — it takes an amount.
extensibility-data-symmetry differentiator
Shortfall: symmetric over a much smaller object model. Everything Stripe models — payments, customers, readers, locations, zones, configurations — is both readable and writable through the same public API. But the restaurant object model that this claim is really asking about (orders, menu, employees, inventory) does not exist to be read or written. https://docs.stripe.com/terminal · retrieved 2026-08-01
extensibility-published-rate-limits
Numeric limits published openly: 100 requests per second live mode, 25 per second in sandbox, 25 per second default per individual endpoint, HTTP 429 on exceedance with a Stripe-Rate-Limited-Reason header taking global-rate, endpoint-rate, global-concurrency, endpoint-concurrency or resource-specific, plus resource-specific ceilings such as 1,000 update requests per PaymentIntent object per hour. Among the most precisely documented cells in this record. https://docs.stripe.com/rate-limits · retrieved 2026-08-02 adversarially verified
extensibility-doordash-preferred differentiator
Stripe is not among DoorDash's 2026 Preferred Integration Partners (Checkmate, Chowly, Deliverect, Otter, PAR, Qu, Square, Stream, Toast, UrbanPiper). It is not a POS, exposes no order object, and does not integrate marketplace orders, so it is not eligible for the programme.
extensibility-first-party-delivery-integrations differentiator
No first-party delivery marketplace integrations appear in Stripe's Terminal documentation or App Marketplace. Terminal has no order object for a marketplace to write into, which is the technical reason none exist.
extensibility-middleware-compatibility
Delivery middleware vendors (Deliverect, Chowly, Otter, Checkmate) certify against POS platforms with order APIs. Stripe Terminal is not a POS endpoint any of them target, and exposes no order surface to certify against.
extensibility-accounting-connectors
The claim requires native, vendor-maintained connectors for QuickBooks Online and at least one other GL system with mapped journal entries rather than CSV export. The only evidence anyone has offered is marketplace.stripe.com, which renders entirely client-side - the root and the accounting category both return a bare page title with no listings, publishers or feature text, in two separate passes. Stripe's own documentation describes third-party developers publishing apps to the marketplace, which is the opposite of vendor-maintained, and names no Stripe-built accounting connector. Assessed and unresolved. adversarially verified
extensibility-payroll-export
Payroll export requires labour hours, which Stripe does not record. There is no employee or shift resource to export from.
extensibility-bi-data-warehouse differentiator
Data Pipeline delivers Stripe data on a scheduled refresh into Snowflake, Redshift, BigQuery, Databricks, S3, GCS or Azure Blob with no code required, at a published $65.00 per month. This is a genuine first-party warehouse pipeline rather than a CSV export dressed up as one. https://docs.stripe.com/data/access-data-in-warehouse · retrieved 2026-08-01
extensibility-app-marketplace
Shortfall: a real marketplace, but not for this market. Stripe's documentation states that 'Stripe Apps allows you to develop and distribute apps privately or publish them on the global Stripe Apps Marketplace', so a public catalogue of named third-party apps that an account holder can browse and install does exist. It is oriented to finance, commerce and operations tooling; no restaurant-specific listing could be verified, and the marketplace site itself renders client-side and returns no listing content to retrieval. https://docs.stripe.com/stripe-apps.md · retrieved 2026-08-02 adversarially verified
extensibility-custom-fields-scripting
Shortfall: customisation attaches to payment objects, not POS objects. Metadata fields exist on core Stripe objects and Stripe Apps provide hosted extension logic, but there is no order, item or check to add a custom field to, and the depth of the scripting surface was not verified.
extensibility-headless-embedded
This is precisely what the product is. Stripe documents that Apps on Devices lets you 'run your point-of-sale (POS) application along with other apps on your device', deploying your own POS app to Stripe smart readers as an all-in-one solution or as a customer-facing app driven by a POS on another device. It runs on Android 10 on the S700/S710 and on Verifone readers, with a 200MB APK limit. Constraints are documented too: Google Play Services are not available, production devices have a disabled USB port with no adb or debugging, and 'Stripe manages updates over the air for all apps and software components that run on the device.' https://docs.stripe.com/terminal/features/apps-on-devices/overview · retrieved 2026-08-02 adversarially verified
extensibility-api-versioning-deprecation
Stripe publishes dated API versions with a public changelog and a documented upgrade and deprecation path; SDKs pin to a version so an unrequested upgrade does not break an integration. https://docs.stripe.com/upgrades · retrieved 2026-08-01
extensibility-data-portability-exit differentiator
Shortfall: excellent while you are a customer, undefined once you are not. Export runs self-serve through the API, Dashboard CSV and Data Pipeline for the life of the account, but the Stripe Services Agreement states that 'Upon termination of this Agreement, User's rights to use the Services and the Stripe Technology immediately cease' and requires deleting Stripe technology — with no defined post-termination retrieval window. https://stripe.com/legal/ssa · retrieved 2026-08-02
Reliability, offline & operations
reliability-offline-order-entry
Offline order entry requires an order to enter. Terminal captures payments offline but has no order, check or ticket resource at any time, online or offline, so continued order entry during an outage is outside the product entirely. Note that the prior record justified this by saying custom POS apps cannot run offline; that is true only for Bluetooth and Tap to Pay readers — Stripe's documentation lists incremental authorizations as the sole offline limitation for internet readers such as the S700/S710.
reliability-offline-card-auth differentiator
Store-and-forward offline card acceptance is documented for Bluetooth readers (Chipper 2X BT, Stripe Reader M2, WisePad 3) and internet readers (S700/S710, WisePOS E), with payments written to disk and forwarded on reconnection: 'You can safely reboot the reader, even with stored offline payments... The reader then resumes forwarding any remaining stored payments.' Tap to Pay on iPhone offline is marked (Private preview) rather than generally available, and 'Tap to Pay on Android doesn't support offline mode.' https://docs.stripe.com/terminal/features/operate-offline/overview.md?reader-type=internet&platform=ios · retrieved 2026-08-02 adversarially verified
reliability-offline-decline-liability differentiator
Both halves are published first-party, on a page three earlier passes recorded as unrenderable because they asked for it with a parameter name the docs do not use ('platform=' rather than 'terminal-sdk-platform=', and without 'terminal-card-present-integration=terminal'). Who bears the loss, verbatim: 'You, as the user, assume all decline and tamper-related risks associated with an offline transaction. If your tampered reader can’t forward payments to Stripe, or the issuer declines the transaction, there’s no way to recover the funds, and you might not receive payment from the customer for goods or services already provided.' and, on the collect step, 'Payment liability is your responsibility when operating your reader offline.' The per-transaction cap, verbatim: 'your integration must handle offline-specific error cases, such as when the transaction exceeds the Stripe-enforced offline maximum of 10,000 USD or equivalent in your operating currency.' Identical language appears on the bluetooth/ios, internet/ios and internet/android variants. No cumulative cap is published, but this claim asks for a per-transaction OR cumulative cap and the per-transaction one is stated. https://docs.stripe.com/terminal/features/operate-offline/collect-card-payments.md?terminal-card-present-integration=terminal&reader-type=internet&terminal-sdk-platform=ios · retrieved 2026-08-12 adversarially verified
reliability-lan-degraded-multi-terminal differentiator
There is no shared check state for readers to coordinate, so the usual form of this capability does not apply. Apps on Devices does describe TCP/IP pairing between a POS device and a customer-facing reader, but whether that pairing survives a WAN outage on a purely local network is not documented. Assessed and unresolved.
reliability-local-transaction-engine differentiator
Shortfall: local persistence, not a local engine. There is no on-premise server and no local authorization — the reader and SDK store offline payments to disk and forward them when connectivity returns, and authorization happens only at Stripe once online. That is durable local buffering rather than a transaction engine that can run the business standalone. https://docs.stripe.com/terminal/features/operate-offline/overview · retrieved 2026-08-02
reliability-offline-kds-printing
Stripe ships no KDS and no kitchen or receipt printer integration — there is no printer, station or ticket resource in the product — so there is nothing to keep printing during an outage.
reliability-printer-fallback
Printer failover requires printer support. Stripe has no ESC/POS printer integration and no print routing; receipts are delivered by email, SMS or the reader's own receipt path.
reliability-sync-conflict-handling
Stripe documents that offline payments are stored to disk and forwarded on reconnection, but no multi-device shared-state model exists in the product, so there is no documented conflict-resolution policy for concurrent edits. Whether forwarding collisions are handled beyond idempotency keys was not determined.
reliability-offline-feature-matrix
Stripe publishes an explicit per-reader-type matrix of what does not work offline rather than a vague reassurance: tipping, running a custom POS app and collecting input on-screen are unsupported offline on Bluetooth and Tap to Pay readers and supported on internet readers, while incremental authorizations are unsupported on all three. Two corrections to the prior record: the 10,000 USD offline maximum is not on this page - the overview carries no limit or liability statement of any kind - and the '24-hour connection token' and '30-day reader software' windows an earlier pass cited could not be located in the documentation across three passes and are not reproduced. https://docs.stripe.com/terminal/features/operate-offline/overview.md?reader-type=internet&platform=ios · retrieved 2026-08-02 adversarially verified
reliability-public-status-page
status.stripe.com is public and requires no login. Per-component granularity and any published historical uptime percentages were not confirmed because the page renders client-side. https://status.stripe.com/ · retrieved 2026-08-01
reliability-contractual-uptime-sla differentiator
No customer-facing uptime SLA with service credits was located for standard Stripe accounts. Stripe's paid support plans publish response-time targets, which is a support SLA rather than an availability commitment. Whether enterprise agreements carry an availability SLA could not be determined from public material.
reliability-incident-postmortems
Whether Stripe publishes post-incident reviews with root cause and remediation was not verified; the status page renders client-side and its incident history could not be read in this pass.
reliability-247-live-support
Stripe's support-plans page states all customers receive 24x7 phone, email and chat support plus the support centre and developer Discord at no cost, with paid Premium and Enterprise plans adding response-time SLAs (15-minute critical), a dedicated technical account manager and proactive monitoring. This establishes entitlement from a vendor page; operator reports of actual responsiveness are a separate and less flattering signal recorded in the narrative. https://stripe.com/support-plans · retrieved 2026-08-01 adversarially verified
reliability-onsite-install differentiator
Terminal is a self-integrate developer product: readers ship to the merchant and are provisioned by API or Dashboard. No on-site installation service, dealer network or VAR channel appears anywhere in Stripe's Terminal documentation or pricing.
reliability-menu-build-service differentiator
Menu build services presuppose a menu. Stripe has none, and offers no data-entry or configuration onboarding service for Terminal — onboarding is developer documentation and a sandbox.
reliability-hardware-replacement-sla
Stripe publishes a warranty claim-review SLA of 48 business hours and a 1-year hardware warranty term, but neither is a replacement SLA. No shipping-time commitment, next-business-day delivery target or advance-exchange programme was found, so the time to get a working reader back into a venue remains undetermined. adversarially verified
reliability-backup-restore
No published RPO or RTO for merchant data was located. Data Pipeline gives the customer their own copy of the data in their own warehouse, but Stripe positions it as an analytics pipeline rather than a backup and restore path, and no restore procedure is documented.
reliability-pci-dss-4-attestation
Shortfall: the level is stated, the version and the merchant's own attestation are not. Stripe documents that 'A PCI-certified auditor evaluated Stripe and certified us to PCI Service Provider Level 1. This is the most stringent level of certification available in the payments industry,' and links its Visa Global Registry listing. No PCI DSS version number (4.0 or 4.0.1) appears, and no merchant-facing Attestation of Compliance is offered on the page. https://docs.stripe.com/security · retrieved 2026-08-02
reliability-mfa-role-based-access
Shortfall: back-office only. Stripe documents Dashboard MFA across passkeys, hardware security keys, TOTP and SMS, plus team roles and SAML SSO — but all of it governs back-office Dashboard access. POS-side login, shift login and action-level authorisation are the integrator's application to build, because Stripe ships no POS. https://docs.stripe.com/security · retrieved 2026-08-02
reliability-self-serve-training
Shortfall: developer training, not staff training. Extensive free public developer documentation plus a sandbox and simulated reader give an integrator a genuine practice environment, but there is no staff-facing video library, LMS, certification path or terminal training mode for the people who would actually run a shift. https://docs.stripe.com/terminal/references/testing · retrieved 2026-08-01
reliability-failover-terminal-role differentiator
Failover of a master terminal role requires a master terminal. Terminal has no server or master device concept — readers are independent endpoints connected to Stripe directly or through the integrator's SDK, so there is no role to fail over.
reliability-cellular-backup
Automatic failover is documented, not just priced. The S710 prioritises Ethernet, then WiFi, then cellular: 'When primary connectivity (Ethernet or WiFi) is lost, the reader falls back to cellular. When primary connectivity returns, the reader switches back automatically.' The POS-to-reader connection survives both transitions with no reconnection required. It is not seamless - 'Online payments may fail during the fallback window while the reader transitions from WiFi or Ethernet to cellular (typically 15 seconds to 2 minutes, depending on cellular signal strength).' Cellular data is sold separately at a published $10.00 per reader per month. https://docs.stripe.com/terminal/features/operate-offline/network-transitions.md · retrieved 2026-08-02 adversarially verified
Commercial, compliance & data ownership
commercial-month-to-month-contract differentiator
Better than month-to-month — there is no term at all. The Stripe Services Agreement states it 'is effective when User first accesses or uses the Services or Stripe Technology (the Effective Date) and continues until User or Stripe terminates it (the Term)', and users may terminate at any time by closing the account. Pricing is pay-as-you-go with no software subscription. The only term commitment anywhere in the stack is the optional 1-year annual pricing on the Sigma and Data Pipeline add-ons. https://stripe.com/legal/ssa · retrieved 2026-08-02 adversarially verified
commercial-no-early-termination-fee differentiator
No early termination fee or liquidated-damages clause appears in the Stripe Services Agreement. The only related constraint is that 'payment obligations are non-cancelable and Fees paid are non-refundable' — you owe what you have already incurred, but nothing for leaving. https://stripe.com/legal/ssa · retrieved 2026-08-02 adversarially verified
commercial-autorenew-terms-published
The full agreement is public and the question resolves trivially: there is no fixed term and no renewal cycle for the core service, so no auto-renewal window or cancellation notice period applies. Nothing is hidden behind an order form. https://stripe.com/legal/ssa · retrieved 2026-08-02
commercial-processing-not-bundled differentiator
Positive evidence of absence: Terminal is Stripe's own acquiring product and its published price is a Stripe processing rate. Card-present transactions run on Stripe with no third-party processor option, so processing and platform are inseparable by design. https://stripe.com/pricing · retrieved 2026-08-02
commercial-interchange-plus-published differentiator
Positive evidence of absence: the published card-present price is a single blended rate, '2.7% + 5c per successful transaction for domestic cards'. No interchange-plus schedule appears anywhere in Stripe's public pricing; if IC+ is available at volume it is quote-only through Stripe sales. https://stripe.com/pricing · retrieved 2026-08-02
commercial-rate-increase-clause differentiator
A published notice protection exists: 'Stripe will provide User with at least 30 days notice (or longer period if Law requires) of any increase in a Fee or any new Fees for any Service provided to User.' Qualify it — 30 days advance notice only, no cap on the magnitude of an increase and no price lock. Combined with a no-term agreement, the merchant's remedy is to leave. https://stripe.com/legal/ssa · retrieved 2026-08-02 adversarially verified
commercial-pricing-published
Fully public and itemised: processing rate, per-authorization add-ons for Tap to Pay and P2PE, per-reader cellular at $10.00/month, per-SKU hardware (M2 $59.00, S700 $299.00, S710 $299.00) and add-on software list prices (Sigma $15.00/month, Data Pipeline $65.00/month). No per-terminal software fee exists to publish. https://stripe.com/pricing · retrieved 2026-08-02
commercial-module-unbundling differentiator
Shortfall: every module unbundles except the one that matters. Terminal, Radar, Sigma, Data Pipeline and Instant Payouts are independently adoptable and separately priced, and dropping one does not reprice anything else because there is no base subscription. But card processing itself cannot be unbundled — Terminal only settles through Stripe, so the largest line in the three-year cost is mandatory. Evidence is the vendor pricing page (grade C). https://stripe.com/pricing · retrieved 2026-08-02
commercial-hardware-purchase-outright
Readers are sold outright at published per-SKU prices — Stripe Reader M2 $59.00, Stripe Reader S700 $299.00, Stripe Reader S710 $299.00 — with no mandatory lease, rental or financing programme in the published pricing. https://stripe.com/pricing · retrieved 2026-08-02
commercial-hardware-not-locked differentiator
Shortfall: genuinely open at one end, firmly closed at the other. Tap to Pay runs on standard iPhones and Android phones the merchant already owns, and Verifone readers are supported alongside Stripe's own. But card readers must come from Stripe's supported list, the S700/S710 run Stripe's Android build with Google Play Services unavailable, a disabled USB port and no adb, and 'Stripe manages updates over the air for all apps and software components that run on the device'. There is no ESC/POS printer or generic cash-drawer support at all. https://docs.stripe.com/terminal/features/apps-on-devices/overview · retrieved 2026-08-02
commercial-implementation-fee-published
Shortfall: absence rather than an explicit statement. No implementation, onboarding, setup or professional-services fee appears anywhere in Stripe's published Terminal pricing, which is consistent with a self-integrate product — but Stripe never states an explicit $0 implementation line, so this reads as inferred from silence rather than published. https://stripe.com/pricing · retrieved 2026-08-02
commercial-data-export-self-serve
Payments, customers and payouts export self-serve through Dashboard CSV and the public API with no support ticket and no fee. Two caveats worth carrying: line-item, labour and menu data do not exist in Stripe to export, and full raw warehouse delivery requires the paid Data Pipeline add-on at $65.00/month. https://docs.stripe.com/data/access-data-in-warehouse · retrieved 2026-08-01
commercial-export-customer-and-loyalty differentiator
Shortfall: half the object is missing. Customer records and tokenised payment-method metadata are exportable, and Stripe supports PAN migration to another processor on request — genuinely strong on the payments half. There are no loyalty point ledgers, gift-card balances or offer histories to export, because Stripe ships none. https://docs.stripe.com/data/access-data-in-warehouse · retrieved 2026-08-01
commercial-post-termination-export-window differentiator
Positive evidence of absence, in the contract's own words: 'Upon termination of this Agreement, User's rights to use the Services and the Stripe Technology immediately cease. User must immediately cease accessing the Services and delete all license keys, access keys and copies of Stripe Technology.' No post-termination retrieval window is defined anywhere in the agreement. https://stripe.com/legal/ssa · retrieved 2026-08-02 adversarially verified
commercial-data-ownership-clause differentiator
Positive evidence of absence: the agreement runs the other way. The user 'grants to Stripe, on behalf of itself and its Affiliates, a perpetual, worldwide, non-exclusive, irrevocable, royalty-free license to use the Content to develop, improve, and provide Services and Stripe Technology', and Stripe and its affiliates 'own all IP Rights in the Services, the Stripe Technology, Stripe Data'. There is no clause affirming merchant ownership of their transaction data. https://stripe.com/legal/ssa · retrieved 2026-08-02 adversarially verified
commercial-source-available-selfhost
Positive evidence of absence: Stripe's client SDKs are open source, but the platform is proprietary hosted SaaS with no self-hosting option, and the agreement requires the user to 'delete all license keys, access keys and copies of Stripe Technology' on termination — the opposite of a source-available escrow. https://stripe.com/legal/ssa · retrieved 2026-08-02
commercial-pci-p2pe-tokenization
Shortfall: the mechanism is documented, the merchant's SAQ is not. Encrypted card entry on EMV-certified readers plus tokenisation is documented and Stripe is certified to PCI Service Provider Level 1, with point-to-point encryption sold as a +$0.05 per authorization add-on. Stripe does not name which SAQ (A, or P2PE-HW) the merchant becomes eligible for, which is the practical question a buyer is asking. https://docs.stripe.com/security · retrieved 2026-08-02
commercial-pci-dss-4-controls
Stripe's security documentation does not enumerate PCI DSS v4.0.1 future-dated requirements — MFA into the cardholder data environment, or payment-page script integrity monitoring under 6.4.3 and 11.6.1 — and states no DSS version at all. Whether those controls are implemented could not be determined either way from public material.
commercial-soc2-attestation
Stripe's security documentation states that 'SOC 1 and SOC 2 Type II reports are produced annually and can be provided upon request', and publishes a public SOC 3 report as a linked PDF covering internal controls over security, availability and confidentiality. ISO 27001 is not mentioned on the page and is not claimed here. https://docs.stripe.com/security · retrieved 2026-08-02 adversarially verified
commercial-privacy-dsar-tooling
Shortfall: contracts and an intake process, not in-product tooling. Stripe publishes executable DPAs (Stripe, LLC for the Americas, Stripe Payments Europe elsewhere) and documents a deletion-request intake path, but no in-product tool was found that lets a merchant locate, export or delete an individual guest's records to satisfy a DSAR on their own. https://stripe.com/legal/privacy-center · retrieved 2026-08-01
commercial-wcag-kiosk-accessibility differentiator
The claim requires a published VPAT or Accessibility Conformance Report asserting WCAG 2.1 AA or later for self-order kiosk and consumer web-ordering surfaces. Stripe publishes neither and ships no kiosk product, so the claim as written cannot be met - but that is absence of a conformance document, not evidence of an inaccessible product, so this stays unknown rather than becoming no. Partially resolving the sub-question the prior pass left open: the S700/S710 release notes do document a non-visual access mode on the reader itself, including 'Added support for Accessible PIN payments', a fix so that accessibility mode reads out the 'Incorrect PIN entered' message, and text-size and UI changes made for AAA accessibility compliance. A changelog is not a conformance report. adversarially verified
commercial-dual-pricing-compliant differentiator
A network-compliant surcharge engine does exist at Stripe — credit-only restriction in the US and Canada, published caps (US 3%, Canada 2.4%, Australia and New Zealand 4%), Stripe-side validation against the maximum returning an error above it, and required pre-purchase disclosure with receipt itemisation. But it is documented only for online payments, with no card-present or Terminal statement anywhere on the page, so compliance in the POS context is undetermined. adversarially verified
Adversarial verification
An independent pass was instructed to refute this record, defaulting to downgrade when uncertain. It challenged 38 values — 33 upheld, 4 downgraded, 1 upgraded. This is published in full because a reader who can see which values were contested, on what evidence, and which way they moved has something no affiliate-funded comparison offers.
Pricing and identity
| Field | Verdict | What the verifier found |
|---|---|---|
| pricing.software | upheld | Re-fetched the pricing page myself rather than trusting the prior pass. Every figure matches verbatim: '2.7% + 5c per successful transaction for domestic cards', '1.5%' international, '0.10 per authorization for Tap to Pay', '0.05 per authorization for optional point-to-point-encryption', '$10.00 per reader per month' cellular, Instant Payouts '1.5% of Instant Payouts volume' with a '$0.50' minimum, Sigma '$15.00 per month' / 'Starting at $10.00 per month, 1-year contract', Data Pipeline '$65.00 per month' / 'Starting at $50.00 per month, 1-year contract'. No third-party roundup was used or needed. source |
| pricing.hardware | upheld | Confirmed per-SKU on the vendor pricing page in my own retrieval: M2 '$59.00', S700 '$299.00', S710 '$299.00'. No lease or bundled-hardware requirement appears in published pricing. source |
| pricing.contract_length | upheld | Read the SSA directly. It states 'Upon termination of this Agreement, User's rights to use the Services and the Stripe Technology immediately cease', carries no early-termination or liquidated-damages provision anywhere, and contains the fee-notice clause 'Stripe will provide User with at least 30 days notice (or longer period if Law requires) of any increase in a Fee or any new Fees'. The no-term characterisation and the Sigma/Data Pipeline carve-out both hold. source |
| identity.scale | upheld | Counted the list myself on Stripe's availability page: 38 countries, from Australia to the United States, including Gibraltar and Liechtenstein. The corrected figure (38, not the marketing page's '39 markets') is right. Additional fact on the same page the record does not carry anywhere: 'Payments must be processed in the local currency. Stripe Terminal does not support multi-currency presentment or dynamic currency conversion (DCC).' source |
Capability claims
| Claim | As first scored | Verdict | What the verifier found |
|---|---|---|---|
| payments-offline-store-and-forward | yes / grade B, cites operate-offline/overview — 'store-and-forward ... Stripe enforces an offline maximum of 10,000 USD per transaction' | downgrade-to-partial | The claim requires store-and-forward WITH configurable per-transaction and cumulative offline limits. Store-and-forward is real and I confirmed it on the overview page (payments written to disk, forwarded on reconnect, surviving a reader reboot). The limits half fails. I retrieved the offline-mode Configuration API page and the entire published control surface is a boolean: 'offline[enabled]=true'. There is no per-transaction and no cumulative limit parameter. Stripe's own guidance is that the INTEGRATOR should disallow transactions above a chosen amount and stop accepting offline payments once the stored sum exceeds a chosen amount — i.e. you build the limits yourself — and the only Stripe-side ceiling is a fixed, non-configurable 10,000 USD per transaction. Named shortfall: no configurable offline limits ship with the product. source |
| payments-offline-decline-liability | yes / grade B, cites operate-offline/collect-card-payments, with the record's own caveat that the page 'returned only an index stub on direct fetch in both this pass and the prior one' | downgrade-to-partial | A differentiator yes cannot rest on a page nobody has been able to open. I attempted collect-card-payments in four forms — bare .md, ?reader-type=bluetooth&platform=ios, ?reader-type=internet&platform=android, and the HTML page — and every one returned only the variant index. That is now three independent passes that could not render it. What I could verify from pages that do render: the overview documents that stored payments are forwarded and authorized only after connectivity returns, and the Configuration API documents offline as an opt-in the merchant enables. What I could NOT verify from any retrievable first-party page is an explicit statement of who bears the loss, or the post-reconnect report of failed offline payments the claim also requires — the record describes failures surfacing through OfflineListener callbacks and webhooks, which is integrator plumbing, not a report. Named shortfall: the risk position is inferable from forwarding semantics, but the liability statement and the failed-payment report are not retrievable. source |
| reliability-offline-decline-liability | yes / grade B — 'Stripe states the risk position plainly rather than burying it ... enforces a 10,000 USD offline maximum per transaction', cites the same unretrievable collect-card-payments page | downgrade-to-partial | Same evidentiary failure as payments-offline-decline-liability, and the record carries the caveat itself while still scoring yes. The claim needs BOTH a published statement of who bears the loss AND any per-transaction or cumulative cap. The 10,000 USD per-transaction figure appears only in search-engine extracts of the page I cannot render — that is not documentation I located, and it is not grade B. No cumulative cap exists at all; Stripe tells the integrator to impose one. The retrievable overview page documents the offline feature matrix and forwarding behaviour but says nothing about liability or limits. Named shortfall: cap and liability language unverifiable on any renderable first-party page; no cumulative cap published. source |
| reliability-offline-card-auth | yes / grade B — 'documented for Bluetooth readers, internet readers (S700/S710) and Tap to Pay on iPhone' | upheld | Value stands and I verified it directly: the overview page documents offline collection for Bluetooth readers (Chipper 2X BT, Reader M2, WisePad 3) and internet readers (S700/S710, WisePOS E), with 'You can safely reboot the reader, even with stored offline payments ... The reader then resumes forwarding any remaining stored payments.' One correction to the note: Tap to Pay on iPhone offline is marked '(Private preview)' on that page, not general availability, and 'Tap to Pay on Android doesn't support offline mode.' Listing Tap to Pay on iPhone alongside the GA reader types overstates it. source |
| reliability-offline-feature-matrix | yes / grade B — per-reader-type matrix of unavailable offline features, 'as is the 10,000 USD offline maximum' | upheld | The matrix is real and I read it: tipping, custom POS app and on-screen input collection are unsupported offline on Bluetooth and Tap to Pay readers and supported on internet readers; incremental authorizations are unsupported on all three. That is an explicit published list rather than a reassurance, which is what the claim asks for. Correction to the note: the 10,000 USD maximum is NOT on this page — the overview contains no limit or liability statement of any kind. It belongs to the collect-card-payments page, which does not render. source |
| payments-softpos-tap-to-pay | yes / grade B but cited to https://stripe.com/pricing — a pricing page, i.e. grade C evidence carrying a differentiator yes | upheld | The value is right but the evidence was a grade-rule violation: a differentiator yes was resting on a per-authorization line item on the pricing page, graded B. I located the actual product documentation and re-sourced it. It documents iPhone XS or later on a one-year-or-later iOS version, acceptance of Visa, Mastercard, American Express and Discover contactless cards plus NFC mobile wallets and QR-based methods, eftpos in Australia, Interac in Canada and Cartes Bancaires in France, PIN entry on iOS 16.4 or later for transactions requiring additional CVM, and availability GA in 20 countries with 18 more in public preview. That is genuine B-grade documentation and the yes now stands on it. source |
| payments-emv-nfc | yes / grade B, cited to the Terminal country-and-currency availability support page | upheld | Value upheld, evidence replaced. The cited availability page establishes where Terminal operates, not that its readers accept EMV chip and NFC wallets — it could not support this claim. The supported-card-brands documentation does: Visa and Mastercard in all Terminal countries, American Express in all except Malaysia, Discover/Diners, UnionPay, JCB, Maestro and the regional schemes, and explicitly 'Terminal supports NFC-based mobile wallets (Apple Pay, Google Pay, and Samsung Pay).' One documented exception worth carrying: on the WisePOS E, UnionPay and JCB work only as inserted EMV chip transactions and contactless isn't supported. source |
| payments-card-on-file | yes / grade B — card_present PaymentMethod cannot be saved directly; a reusable generated_card is created and attached to a Customer | upheld | Verified myself, verbatim: 'When you create a PaymentIntent or SetupIntent with a card-present payment method, you can't save the PaymentMethod directly' and 'Stripe can create a reusable generated_card PaymentMethod using the payment information. It represents the same payment method and can be reused for online payments.' The consent requirements (opt-in terms, disclosure of timing/frequency/amount, written agreement) are documented as an explicit step. Worth adding: charging the saved card is an online payment — 'Payments with generated cards are online payments and can't be processed with Terminal SDK methods.' source |
| guest-loyalty-unified-profile | partial / grade D, cited to the stripe.com/terminal marketing page — 'marketed, not documented as a guest profile' | upheld | Partial is the right value but the evidence was a marketing page, which is the exact substitution this pass exists to catch, and the record even says so in its own note while leaving the citation in place. I re-sourced it to documentation that shows what actually exists: an in-person presentment produces a generated_card PaymentMethod that the integrator must attach to a Customer or Account, after which it can be charged online. That is a genuine, documented in-person-to-online link under one identity — enough for partial. What remains absent, and what the claim asks for, is automatic merging by phone or email match and any documented dedup behaviour; attachment is manual and the page warns that if you don't attach it you lose reuse entirely. source |
| multi-location-multi-currency-locale | partial / grade B — '38 countries ... with local currency processing. Whether consolidated multi-currency reporting in a single presentment currency is available was not verified.' | upheld | Partial stands, but the shortfall was guessed at when it is stated outright on the page the record already cites. The availability page says: 'Payments must be processed in the local currency. Stripe Terminal does not support multi-currency presentment or dynamic currency conversion (DCC).' That converts 'not verified' into a documented limitation — a location can only transact in its own local currency, and no reporting-currency conversion is offered by Terminal itself. The 38-country breadth is real, so the cell does not fall to no. source |
| reliability-cellular-backup | yes / grade C, cited to the pricing page — '$10.00 per reader per month, positioned as connectivity for venues with unreliable networks' | upheld | The value is right but the record proved it with a price, not with a failover behaviour. Stripe documents the behaviour and I re-sourced it there: the S710 prioritises Ethernet, then WiFi, then cellular, and 'When primary connectivity (Ethernet or WiFi) is lost, the reader falls back to cellular. When primary connectivity returns, the reader switches back automatically.' The POS-to-reader connection survives both transitions. Important caveat the record has nowhere: 'Online payments may fail during the fallback window while the reader transitions from WiFi or Ethernet to cellular (typically 15 seconds to 2 minutes, depending on cellular signal strength).' Automatic failover is documented, so yes holds — but it is not seamless. source |
| extensibility-accounting-connectors | partial / grade D, cited to https://marketplace.stripe.com/ — 'accounting connectors such as QuickBooks and Xero, but these were not verified as vendor-maintained GL journal-entry integrations' | downgrade-to-unknown | The claim requires native, vendor-maintained connectors for QuickBooks Online and at least one other GL system, with mapped journal entries rather than CSV export. The sole evidence is a marketplace page that renders entirely client-side — I fetched both the root and /categories/accounting and got a bare page title with no listings, no publishers and no feature text. The record's own note concedes the depth was never verified, which means a partial was scored on a page nobody read. Nothing in Stripe's documentation names a Stripe-built QuickBooks or Xero connector; docs.stripe.com/stripe-apps describes third-party developers publishing to the marketplace, which is the opposite of vendor-maintained. Assessed, unresolved: unknown, grade F, no URL. source |
| extensibility-app-marketplace | partial / grade D, cited to https://marketplace.stripe.com/ | upheld | Partial is correct and survives, but the citation had the same client-side rendering problem as the accounting cell, so I replaced it with first-party documentation that actually states the fact: 'Stripe Apps allows you to develop and distribute apps privately or publish them on the global Stripe Apps Marketplace.' A public marketplace of named third-party apps therefore exists and is documented. It remains partial for the reason the record gives — the catalogue is finance, commerce and operations tooling, and no restaurant-specific listing could be verified. source |
| extensibility-headless-embedded | yes / grade A — Apps on Devices runs your own POS application on Stripe smart readers | upheld | Verified against the documentation myself, and every constraint the record quotes is there: S700/S710 on Android 10 (Snapdragon 665, 4GB RAM, 64GB storage, 1080x1920), 'APK files that you upload to the Stripe API have a 200MB size limit', 'Google Play Services aren't available on Stripe Android devices ... parts of Firebase and Google Maps SDKs won't function', 'Production devices have a disabled USB port. Additionally, Android Debug Bridge (adb) and debugging aren't available', and 'Stripe manages updates over the air for all apps and software components that run on the device.' This is one of the few cells where the record's phrasing is tighter than it needed to be rather than looser. source |
| extensibility-webhook-reliability | yes / grade A — HMAC-SHA256 Stripe-Signature, three-day live retry, 15-day Dashboard resend, 30-day CLI resend | upheld | Checked every number against the webhooks documentation rather than accepting the precision as self-authenticating. All four hold: the Stripe-Signature header carries t= plus v1= (live) and v0= (test-only), signatures are HMAC-SHA256, live-mode delivery is attempted 'for up to three days' with exponential back off against three retries over a few hours in sandbox, the Event deliveries tab shows Delivered/Pending/Failed with HTTP status codes, and manual resend is available up to 15 days from the Dashboard and 30 days via 'stripe events resend'. Precise claims that survive checking are rarer than they should be. source |
| reporting-raw-warehouse-export | yes / grade B — Data Pipeline delivers raw data on a scheduled refresh to Snowflake, Redshift, BigQuery, Databricks, S3, GCS or Azure Blob | upheld | Destination list confirmed exactly as stated, and the page says the delivery happens 'without writing code'. Two details the record should carry rather than the vague 'scheduled refresh': the initial load completes within 12 hours and a full load is delivered every 3 hours thereafter. Also note the documentation page itself publishes no price — the $65.00/month figure comes from the pricing page, so keep those two citations separate. source |
| multi-location-enterprise-sso | yes / grade B — SAML 2.0 SSO with JIT provisioning and an SCIM reference | upheld | Quoted verbatim from Stripe's security documentation in my own retrieval: 'We also support single sign-on through Security Assertion Markup Language (SAML) 2.0, allowing you to mandate sign-in requirements, configure access control, and instantly onboard team members through just-in-time (JIT) account provisioning. If you use SSO with SCIM, you can enforce authentication policies centrally through your identity provider.' MFA options (passkeys, hardware security keys, TOTP, SMS) are documented on the same page, with Stripe recommending against SMS. The record's caveat that SCIM's provisioning scope is referenced rather than specified is accurate. source |
| commercial-soc2-attestation | yes / grade B — SOC 1 and SOC 2 Type II produced annually and provided on request; public SOC 3 | upheld | Verbatim on the security page: 'SOC 1 and SOC 2 Type II reports are produced annually and can be provided upon request' and 'Stripe's SOC 3 is a public report of internal controls over security, availability, and confidentiality.' PCI is stated as 'PCI Service Provider Level 1'. ISO 27001 does not appear anywhere on the page and is correctly not claimed. source |
| commercial-post-termination-export-window | no / grade A — 'Upon termination ... User's rights to use the Services and the Stripe Technology immediately cease.' No retrieval window defined. | upheld | A no on a differentiator claim is an assertion of absence about a named business, so I read the SSA myself rather than trusting the quote. It holds: the termination language is verbatim, and separately 'Stripe is not obligated to retain data that it receives from or through User after the Term, except as (a) required by Law; (b) reasonably required for Stripe to perform any post-termination obligations'. No defined number of days for post-termination export appears anywhere in the agreement. Positive evidence of absence, correctly scored. source |
| commercial-data-ownership-clause | no / grade A — perpetual irrevocable licence to Content; Stripe owns Stripe Data; no merchant-ownership clause | upheld | Also checked directly because of the legal exposure in a wrong no. The SSA grants Stripe 'a perpetual, worldwide, non-exclusive, irrevocable, royalty-free license to use the Content to develop, improve, and provide Services', and Stripe Data — defined to include information relating to Stripe API interactions and all aggregated information Stripe generates from the Services — is Stripe's. There is no clause affirming merchant ownership of transaction or customer data and no constraint on Stripe's own use beyond aggregation. The claim asks for exactly that clause; it does not exist. source |
| commercial-rate-increase-clause | yes / grade A — at least 30 days notice of any fee increase | upheld | Verbatim in the SSA: 'Stripe will provide User with at least 30 days notice (or longer period if Law requires) of any increase in a Fee or any new Fees for any Service provided to User'. The record's qualification is the honest one and should stay — notice only, no cap on magnitude, no price lock, and with a no-term agreement the merchant's remedy is to leave. source |
| reliability-247-live-support | yes / grade C — 24x7 phone, email and chat at no cost | upheld | Confirmed on the support-plans page: 'All Stripe customers receive 24x7 phone, email, and chat help, plus access to support center resources and Stripe's developer Discord server.' Paid Premium and Enterprise add the 15-minute critical response SLA, proactive health alerts and a dedicated technical account manager. Grade C is the right ceiling — this is a vendor plans page establishing entitlement, not quality, and the complaint themes about actual responsiveness in sources.jsonl remain a separate and legitimate signal. source |
| commercial-wcag-kiosk-accessibility | unknown — 'No VPAT or Accessibility Conformance Report was located ... whether the S700/S710 payment screen has a documented non-visual access mode is unverified' | upheld | Unknown stands, because the claim demands a published VPAT or ACR asserting WCAG 2.1 AA for self-order kiosk and consumer web-ordering surfaces, and Stripe publishes neither and ships no kiosk. But I resolved the sub-question the record left hanging: the S700/S710 release notes document an accessibility mode with audio readout ('Fixed a bug where accessibility mode didn't read out the "Incorrect PIN entered" message'), 'Added support for Accessible PIN payments', and 'Fixed the text size and made copy changes and UI modifications for AAA accessibility compliance'. A non-visual access mode on the reader therefore exists and is documented in the changelog — it just is not a conformance report and not a kiosk. source |
| commercial-month-to-month-contract | yes, grade A - cited to https://stripe.com/legal/ssa | upheld | Grade only, value and evidence untouched. Vendor LEGAL pages (terms, EULA, MSA, product-specific terms) are graded B corpus-wide - measured, not argued: 217 of 259 claims citing a legal-shaped URL are B. This claim was one of 21 stragglers still at A across 8 vendors. Each was inspected and every one is a genuine contract rather than a technical document, so the loose URL predicate produced no false positives here. The ladder does not name contracts explicitly, which is why this keeps recurring. source |
| commercial-no-early-termination-fee | yes, grade A - cited to https://stripe.com/legal/ssa | upheld | Grade only, value and evidence untouched. Vendor LEGAL pages (terms, EULA, MSA, product-specific terms) are graded B corpus-wide - measured, not argued: 217 of 259 claims citing a legal-shaped URL are B. This claim was one of 21 stragglers still at A across 8 vendors. Each was inspected and every one is a genuine contract rather than a technical document, so the loose URL predicate produced no false positives here. The ladder does not name contracts explicitly, which is why this keeps recurring. source |
| commercial-autorenew-terms-published | yes, grade A - cited to https://stripe.com/legal/ssa | upheld | Grade only, value and evidence untouched. Vendor LEGAL pages (terms, EULA, MSA, product-specific terms) are graded B corpus-wide - measured, not argued: 217 of 259 claims citing a legal-shaped URL are B. This claim was one of 21 stragglers still at A across 8 vendors. Each was inspected and every one is a genuine contract rather than a technical document, so the loose URL predicate produced no false positives here. The ladder does not name contracts explicitly, which is why this keeps recurring. source |
| commercial-rate-increase-clause | yes, grade A - cited to https://stripe.com/legal/ssa | upheld | Grade only, value and evidence untouched. Vendor LEGAL pages (terms, EULA, MSA, product-specific terms) are graded B corpus-wide - measured, not argued: 217 of 259 claims citing a legal-shaped URL are B. This claim was one of 21 stragglers still at A across 8 vendors. Each was inspected and every one is a genuine contract rather than a technical document, so the loose URL predicate produced no false positives here. The ladder does not name contracts explicitly, which is why this keeps recurring. source |
| commercial-post-termination-export-window | no, grade A - cited to https://stripe.com/legal/ssa | upheld | Grade only, value and evidence untouched. Vendor LEGAL pages (terms, EULA, MSA, product-specific terms) are graded B corpus-wide - measured, not argued: 217 of 259 claims citing a legal-shaped URL are B. This claim was one of 21 stragglers still at A across 8 vendors. Each was inspected and every one is a genuine contract rather than a technical document, so the loose URL predicate produced no false positives here. The ladder does not name contracts explicitly, which is why this keeps recurring. source |
| commercial-data-ownership-clause | no, grade A - cited to https://stripe.com/legal/ssa | upheld | Grade only, value and evidence untouched. Vendor LEGAL pages (terms, EULA, MSA, product-specific terms) are graded B corpus-wide - measured, not argued: 217 of 259 claims citing a legal-shaped URL are B. This claim was one of 21 stragglers still at A across 8 vendors. Each was inspected and every one is a genuine contract rather than a technical document, so the loose URL predicate produced no false positives here. The ladder does not name contracts explicitly, which is why this keeps recurring. source |
| commercial-source-available-selfhost | no, grade A - cited to https://stripe.com/legal/ssa | upheld | Grade only, value and evidence untouched. Vendor LEGAL pages (terms, EULA, MSA, product-specific terms) are graded B corpus-wide - measured, not argued: 217 of 259 claims citing a legal-shaped URL are B. This claim was one of 21 stragglers still at A across 8 vendors. Each was inspected and every one is a genuine contract rather than a technical document, so the loose URL predicate produced no false positives here. The ladder does not name contracts explicitly, which is why this keeps recurring. source |
| multi-location-multi-currency-locale | partial / grade B - "Shortfall: broad country coverage, but the currency half is documented as absent. Stripe's a" | upheld | Citation-staleness check. The cited support URL 301s to .../stripe-terminal-global-availability; I pulled the raw page (200, 19553 bytes, article:modified_time 2026-08-07) and parsed its React props: the body is the intro sentence plus a 37-row Country/Currency/Contactless-limit table and nothing else. Neither 'multi-currency presentment' nor 'dynamic currency conversion' appears in the source, and the ?locale=en-GB variant is the same document, so the sentence the note quoted cannot be re-verified there. The limitation itself is still documented, in stronger sources: docs.stripe.com/terminal/payments/regional states 'both the Stripe account receiving the funds and the location associated with the reader must be in the same country, accepting local currency only', and support.stripe.com/questions/stripe-terminal-use-by-connected-accounts-in-different-countries states 'Connected accounts are only able to process card present charges in their local currency. For example, US-based Connect Accounts can only process card_present payments in USD.' Value unchanged; citation re-pointed to primary docs and graded A. source |
| reliability-offline-decline-liability | partial / grade B - "cap and liability language unverifiable on any renderable first-party page; no cumulative cap published" | upgrade-to-yes | The page was always renderable; three passes asked for it wrongly. The variant index at collect-card-payments.md names the real parameters - terminal-card-present-integration=terminal and terminal-sdk-platform= - while every prior attempt used platform=, so the index was the correct response to the request made. Fetched with the real parameters it returns 23,777 bytes and carries both halves of this claim. Liability: "You, as the user, assume all decline and tamper-related risks associated with an offline transaction. If your tampered reader can’t forward payments to Stripe, or the issuer declines the transaction, there’s no way to recover the funds", and "Payment liability is your responsibility when operating your reader offline." Per-transaction cap: "when the transaction exceeds the Stripe-enforced offline maximum of 10,000 USD or equivalent in your operating currency." I confirmed both sentences byte-for-byte on the bluetooth/ios and internet/android variants as well, so this is not a single-variant artefact. The claim asks for a per-transaction OR cumulative cap; the per-transaction one is stated first-party at grade B, which clears the differentiator floor. No cumulative cap exists, but this claim does not require one. source |
| payments-offline-decline-liability | partial / grade B - "the risk position is inferable from forwarding semantics, but the liability statement and the failed-payment report are not retrievable" | upheld | Partial stands, but for the opposite reason to the one recorded, and half the recorded shortfall is now false. The liability statement IS retrievable and I quoted it verbatim from the correctly-parameterised collect-card-payments page (see the sibling row on reliability-offline-decline-liability). What fails is the second half of this claim, the post-reconnect report of failed offline payments, and I looked for it specifically. The documented surfaces are OfflineDelegate.didForwardPaymentIntent(intent, error), didReportForwardingError and didChangeOfflineStatus; PaymentIntent webhooks; and a section headed "Examine payments collected offline" that resolves offline provenance on AUTHORIZED charges via payment_method_details.card_present.offline on the latest Charge. That last one is the closest thing to a report and it is the wrong direction - it identifies offline payments that succeeded, not ones that failed on forward. No Dashboard view, export or Sigma-style report of failed offline forwards is documented. Every one of those surfaces requires the integrator to build the report; that is the named shortfall, and it is the only one left. source |
| payments-offline-store-and-forward | partial / grade B - "the entire published offline control surface is a boolean ... There is no per-transaction and no cumulative limit parameter" | upheld | Contested specifically because the SDK exposes offlineBehavior and offlinePaymentsCount, and the answer is that they do not satisfy this claim. offlineBehavior is a per-PaymentIntent CreateConfiguration enum with three values (REQUIRE_ONLINE, PREFER_ONLINE, FORCE_OFFLINE) - a per-call routing choice, not a threshold. offlinePaymentsCount and offlinePaymentAmountsByCurrency are read-only status properties on Terminal.offlineStatus.reader - a meter, not a limit. Stripe writes the arithmetic out as the developer’s job: "you might want to disallow transactions above a certain amount or disallow all offline transactions if the reader has stored a set of transactions whose sum exceeds a certain amount", and the accompanying Swift sample hardcodes the ceiling in the merchant’s own app ("we block the payment if the amount is over 1000 usd"). Nothing is persisted, enforced or auditable Stripe-side; a merchant with no engineering team has no limit at all. I checked the merchant-configurable surface from both directions and it is a boolean in each: the Dashboard offers an on/off "Offline mode" toggle per location, and the Configuration object schema I retrieved has exactly one offline field, "offline.enabled (boolean, nullable)". Partial stands. Two corrections to the shortfall prose, both applied: the 10,000 USD ceiling is now quotable first-party rather than "documented on a page that has not rendered", and "the entire published offline control surface is a boolean" is too strong - it is true of the Configuration API and the Dashboard, and false of the SDK, which is why the sentence now distinguishes them. source |
Sources
Every URL this record cites. 53 in total.
- https://stripe.com/pricing
- https://stripe.com/terminal/pricing
- https://stripe.com/legal/ssa
- https://docs.stripe.com/security
- https://docs.stripe.com/rate-limits
- https://docs.stripe.com/webhooks
- https://docs.stripe.com/payouts
- https://docs.stripe.com/payments/cards/surcharge
- https://docs.stripe.com/terminal/fleet/locations-and-zones
- https://docs.stripe.com/terminal/features/apps-on-devices/overview
- https://docs.stripe.com/terminal/features/collecting-tips/on-reader
- https://docs.stripe.com/terminal/features/operate-offline/overview
- https://docs.stripe.com/terminal/features/operate-offline/collect-card-payments
- https://support.stripe.com/questions/stripe-terminal-country-and-currency-availability
- https://docs.stripe.com/terminal/fleet/offline-mode
- https://docs.stripe.com/terminal
- https://docs.stripe.com/terminal/overview
- https://docs.stripe.com/terminal/features/saving-payment-details/overview
- https://docs.stripe.com/terminal/references/testing
- https://docs.stripe.com/disputes/responding
- https://docs.stripe.com/data/access-data-in-warehouse
- https://docs.stripe.com/data/schedule-queries
- https://docs.stripe.com/connect
- https://docs.stripe.com/upgrades
- https://docs.stripe.com/activity-logs
- https://docs.stripe.com/security/guide
- https://stripe.com/legal/privacy-center
- https://stripe.com/support-plans
- https://support.stripe.com/questions/submit-a-terminal-card-reader-warranty-claim
- https://marketplace.stripe.com/
- https://status.stripe.com/
- https://stripe.com/terminal
- https://www.cardpaymentoptions.com/credit-card-processors/stripe/
- https://www.tryorbye.com/products/stripe
- https://www.nerdwallet.com/business/software/reviews/stripe-payments
- https://docs.stripe.com/terminal/payments/setup-reader/tap-to-pay.md?platform=ios
- https://docs.stripe.com/terminal/payments/collect-card-payment/supported-card-brands.md
- https://docs.stripe.com/terminal/fleet/offline-mode.md?dashboard-or-api=api
- https://docs.stripe.com/terminal/features/operate-offline/collect-card-payments.md?reader-type=bluetooth&platform=ios
- https://docs.stripe.com/terminal/features/operate-offline/network-transitions.md
- https://docs.stripe.com/stripe-apps.md
- https://marketplace.stripe.com/categories/accounting
- https://docs.stripe.com/terminal/readers/stripe-reader-s700-s710.md
- https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=ios
- https://docs.stripe.com/terminal/payments/regional
- https://support.stripe.com/questions/stripe-terminal-use-by-connected-accounts-in-different-countries
- https://support.stripe.com/questions/stripe-terminal-global-availability
- https://docs.stripe.com/terminal/features/operate-offline/collect-card-payments.md?reader-type=bluetooth&platform=ios
- https://docs.stripe.com/terminal/features/operate-offline/collect-card-payments.md?terminal-card-present-integration=terminal&reader-type=bluetooth&terminal-sdk-platform=ios
- https://docs.stripe.com/robots.txt
- https://docs.stripe.com/terminal/features/operate-offline/collect-card-payments.md?terminal-card-present-integration=terminal&reader-type=internet&terminal-sdk-platform=ios
- https://docs.stripe.com/api/terminal/configuration/object.md?query=offline
- https://docs.stripe.com/terminal/fleet/offline-mode.md?dashboard-or-api=dashboard