The Point of Sale API lets mobile applications open the Square Point of Sale application to process in-person payments using Square hardware. Developers can use the Point of Sale API to build customized point-of-sale solutions or any other application that requires payments without worrying about hardware integrations. Square takes on the burden of staying PCI compliant. No checklists, assessments, or audits are required. The Point of Sale API is available for native and web applications running on iOS and Android.
Point of Sale API Overview
The Point of Sale API requires an Android or iOS device with the most recent version of the Square Point of Sale application installed.
The Point of Sale API doesn't support:
- Square invoices.
- Itemized sales.
- Sandbox testing (see Testing for supported countries).
Processing card payments with the Point of Sale API requires:
- An activated Square seller account for accepting card payments.
- A Square Reader for accepting card payments or mobile devices (Android and iPhone) with Tap to Pay enabled. For more information about enabling Tap to Pay for the Point of Sale API, follow the setup guides for Android and iPhone.
Processing fees for transactions initiated with the Point of Sale API are identical to fees for transactions initiated directly from the Square Point of Sale application. For more information, see Learn About Square's Fees.
The Point of Sale API cannot be directly integrated with the Payments API to get the payment details from a POS transaction. However, you can still use the Point of Sale API transaction ID to get the payment details by making a set of related Square API calls. For more information, see Payments API Integration.
A complete mobile POS solution is comprised of a mobile device, a Square card reader, mobile device logic, and a backend service that uses the Catalog API to get items and services for purchase.
A mobile application uses the Point of Sale API to create a charge request, start a transaction, open the POS UI, and parse transaction results. The Point of Sale API takes care of transmitting a payment to Square for crediting to a Square account.
A charge request includes a payment total that can be arbitrary or derived from the unit price of a catalog item or service.
A mobile application should have a backend process to connect to the product catalog defined for the Square account. The backend provides catalog items and services to the mobile device so that the device can show descriptions and unit prices.
A mobile backend isn't required if the mobile application doesn't display the product catalog in a Square account.
Use the following build guides to integrate with the Point of Sale API: