Skip to main content
Bring your counter and your website onto one payments platform. Your point-of-sale software takes a card at the counter through the same API it uses online. Your backend creates a PaymentIntent for the sale and sends it to a specific terminal. The buyer presents a card, the terminal selects the eligible payment option and prompts for a PIN when PIN debit applies, and your backend reads the result. Every test account includes ready simulated terminals, so you can build and automate the full payment flow before any hardware arrives. Physical terminals use the same object, the same fields, and the same payment call.

When to use in-person payments

What you can do

Start here

Accept in-person terminal payments

Create a PaymentIntent, process it on a simulated terminal, and handle every status.

The Terminal object

Locations, provisioning, and the three independent states of a terminal.

Availability

  • Terminal payments use USD and automatic capture.
  • Simulated terminals exist in test mode. Ionic assigns physical terminals through a provisioning request, in test or live mode.
  • Refunds on the terminal are turned on per account by Ionic, separately in test and live mode.
  • Run acceptance testing on an Ionic-assigned physical test terminal before enabling production hardware.
  • Platforms run in-person payments for connected accounts with Ionic-Account. See In-person payments for connected accounts.

Guides

API reference

Ionic sends terminal_batch.closed, charge.settled, refund.settled, and the rest of the terminal batch events.