If you have a Square Terminal card machine paired to your Square account, Pistonlog can send a checkout straight to it. The customer taps or inserts their card on the physical device — no card numbers handled by Pistonlog at all.
Setup
The Terminal must be paired to your Square account (not to Pistonlog) using Square's own dashboard. Pistonlog reads the list of paired devices from your Square account via the Devices API.
How it works
Click Take payment → Terminal
The button is disabled if no Terminal is paired.
Pick the device
If you have more than one Terminal paired, choose which one the checkout should go to.
Pistonlog sends the checkout
Square pushes the prompt to the device. The screen lights up with the amount and a "tap card" message.
Customer pays on the device
Tap, insert, swipe — whatever method they prefer. The device handles SCA itself.
Wait for confirmation
The Terminal sends the result back to Square. Square's webhook then updates Pistonlog.
Known quirk
Terminal checkouts store checkout.id as the Square payment ID, but Square's payment.updated webhook event carries order_id. These two IDs differ for Terminal payments, which means the automatic webhook update can miss. The Refresh button on the payment status display fetches the current state from Square directly to work around this.