Square payments can be processed across multiple channels, including online, in-app, and in-person. The Square developer platform includes server-side APIs that support online payments and mobile SDKs that support mobile payments on seller or buyer mobile devices.
An online payment is where the buyer is visiting a seller's web application and making a payment within that web application. An in-person payment is any payment made by a buyer while at a seller's physical location and using the seller's POS device such as an iPad or iPhone. An in-app payment is where the buyer pays using a seller's application installed on their personal mobile device.
Square API support for credit card and card on file processing is currently limited to the countries specified in Supported Payment Methods by Country.
The following sections describe each Square payment option in greater detail. Each section also provides links to more information about getting started with building a Square payment solution.
The Web Payments SDK payment form:
Online payments are comprised of a PCI-compliant web client that accepts all supported payment methods and a seller-hosted backend that processes the payment using a payment token from the client. The payment is credited to the seller using the OAuth token sent with the backend Square API call.
Use the Web Payments SDK in your web client to accept a payment method and the Payments API in your backend to process the payment. For more information, see Web Payments SDK Overview.
The Checkout API can be used when you need a simple prebuilt payment UI that accepts and completes the payment. With the Checkout API, you do not complete the payment using the Payments API. The Checkout API handles collecting a buyer's payment card and creating the payment for you.
Use the In-App Payments SDK to accept in-app payments on a seller-created mobile application and installed on a buyer's Android or iOS device. Buyers use the application to check out purchases and enter payment card information. When the checkout is complete, the application sends a secure payment token to the seller backend for payment.
Square offers hardware devices to process in-person payments. The Square SDK and APIs connect your custom application to these devices.
If you have a custom application running on an Android device, iPhone, or iPad that you want to connect to the following Square hardware to process payments, use the Square Reader SDK or Point of Sale API:
Reader SDK. Use this SDK to embed the Square payment flow in your own mobile application payment UI. The flow uses a connected Square Reader to get the payment card. Note that the Reader SDK is not available outside the United States.
Point of Sale API. Use this API in scenarios where the Reader SDK cannot be used, including when:
Your point of sale (POS) application is a web page running in a mobile browser.
Some or all of the sellers using your POS application are based in a Square-supported country other than the United States.
The Terminal API lets your POS application process purchases using a seller's Square Terminal device. Square Terminal combines hardware and software and can be accessed from a third-party POS application running on a Windows, macOS, iOS, or Android device.