Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
About Stripe payments
Upgrade your integration
Payments analytics
Online payments
OverviewFind your use caseManaged Payments
Use Payment Links
Build a checkout page
Build an advanced integration
Build an in-app integration
Payment methods
Add payment methods
Manage payment methods
Faster checkout with Link
Payment interfaces
Payment Links
Checkout
Web Elements
In-app Elements
Payment scenarios
Custom payment flows
Flexible acquiring
Orchestration
In-person payments
Terminal
    Overview
    Accept in-person payments
    Integration design
    Select your reader
    Design an integration
    Quickstart
    Example applications
    Testing
    Terminal setup
    Set up your integration
    Connect to a reader
    Accepting a payment
    Collect card payments
    Accept offline payments
    Mail order and telephone order payments
    Regional considerations
    During checkout
    Collect tips
    Collect and save payment details for future use
    Flexible authorizations
    After checkout
    Refund transactions
    Provide receipts
    Customize checkout
    Cart display
    Collect on-screen inputs
    Collect swiped data
    Collect tapped data for NFC instruments
    Apps on devices
    Manage readers
    Order, return, replace readers
    Register readers
    Manage locations and zones
    Configure readers
    Encryption
    References
    API references
    Mobile readers
    Smart readers
    SDK migration guide
    Deployment checklist
    Stripe Terminal reader product sheets
Other Stripe products
Financial Connections
Crypto
Climate
HomePaymentsTerminal

Set up your integration

Set up a Stripe Terminal SDK or server-driven integration to accept in-person payments.

Copy page

Server-driven integrations use the Stripe API instead of a Terminal SDK to connect to WisePOS E or Stripe Reader S700 smart readers and collect in-person payments. This allows you to:

  • Use Terminal even if your infrastructure doesn’t support iOS, Android, or JavaScript SDKs
  • Build a Terminal integration that’s powered by your custom middleware or cloud-based infrastructure
  • Integrate any device including a .NET-based point of sale to Terminal
  • Improve reader network connections using an internet connection instead of the local area network
  • Make curl requests to prototype an integration

Server-driven integration doesn’t support:

  • Stripe Terminal mobile readers
  • Collect card payments while offline

You can start your server-driven integration with the following components:

  • Your point of sale application: The operator-facing UI that employees see when creating a transaction.
  • Your backend infrastructure: Mediates requests from your point of sale application and makes requests to the Stripe API during the transaction.
  • The Stripe API: Receives requests and forwards them to a smart reader, such as the BBPOS WisePOS E reader or Stripe Reader S700. Stripe also sends webhooks to your backend infrastructure with the payment status.
  • A BBPOS WisePOS E reader, Stripe Reader S700, or simulated reader: Prompts the cardholder for payment and communicates with Stripe and our financial infrastructure to process the payment. You can create a simulated reader if you don’t yet have a physical reader.
Server-driven integration architecture

See also

  • Connect to a reader
Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access program.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc