Build with Square Terminal API, Now Generally Available

Connect your app to Square Terminal for contactless payments

Reddit
LinkedIn

Developers and partners building on Square’s platform are rising to the occasion to help businesses safely return to in-person commerce. As we redefine a new normal, businesses can leverage solutions like self-ordering kiosks and order-ahead apps to engage with customers, while integrating Square for payments with any solution they use.

Today we’re excited to announce that Square Terminal API is generally available to developers in the US, Canada, UK, and Australia. With Terminal API, you can enable businesses to sync your app to Square Terminal, the all-in-one credit card machine built by Square. Businesses can accept contactless payments on the customer-facing, corner-to-corner touchscreen and enjoy a wireless design that enables customer interactions at a safe distance. Plus, Terminal API is compatible with any platform, so developers can integrate with their apps built on iOS, Android, Flutter, React Native, Windows, or their preferred mobile or web platform.

Square Partners like Jane and Remedly are among the first to unlock a seamless payment integration with Terminal API. Medical practitioners have been critical in serving communities during this challenging time, and they need a secure payment solution that integrates with their industry-compliant practice management system.

Jane provides a global, web-based clinic management solution, with the goal of helping medical practitioners save time on administrative tasks. Jane built with Terminal API to provide a seamless point of sale experience from their web-based platform, calling Square Terminal “one of the most beautiful payment devices in the market.”

“We love that we can use a modern webhooks-based solution to provide a more intuitive experience for clinicians and their clients. When a client pays for their service on Terminal, the webhook triggers a pop-up modal in the Jane app to notify the clinician that the payment has been made. The ability for Terminal devices to talk to our software like that is a game changer.”

Zain Amarshi | Lead Payments Developer | Jane

Remedly offers cloud-based electronic health record, practice management, and revenue cycle management software to medical clinics of all sizes. Alex Alishoev, CTO at Remedly, shared that the company is “thrilled that Remedly customers can process payments in person or online with Square,” and “appreciate[s] the breadth of omnichannel solutions that [it] can build on top of Square’s platform.”

In addition to several partnerships in the App Marketplace, we’ve announced a Terminal API integration with Microsoft Dynamics 365 Business Central. The integration, built by Square Solutions Partner Ciellos, will enable thousands of businesses using Dynamics 365 Business Central as their ERP to take payments on Square Terminal.

We encourage all of our developers to learn more about the Square Partner Program. By becoming an App Partner or Solutions Partner, you can serve millions of Square sellers and scale your business.

Start Building in Three Simple Steps

Step 1: Pair your app with Square Terminal. Call the Devices API to generate a Device Code and display it to your user. Once your user logs in to Terminal using the code, a webhook event (which contains the device_id) will notify you that the device is ready to receive a checkout request from your system.

body = {
 idempotency_key: '{{RANDOM_STRING}}',
 device_code: {
   name: 'Counter 1',
   product_type: 'TERMINAL_API',
   location_id: 'B5E4484SHHNYH',
 }
}

client.devices.create_device_code(body: body)

Step 2: Send a payment amount from your app to Terminal. Call Create Terminal Checkout with a payment amount. When you do this, the device will prompt the buyer for payment.

body = {
 idempotency_key: '{{RANDOM_STRING}}',
 checkout: {
   amount_money: {
     amount: 2610,
     currency: 'USD'
   },
   reference_id: 'id123',
   note: 'A brief note',
   device_options: {
     device_id: '{{DEVICE_ID}}'
   }
 }
}

client.terminal.create_terminal_checkout(body: body)

Step 3: Close the sale in your app. After the payment succeeds, you’ll be notified via webhooks so you can close the sale on your end.

Get Started

Terminal API is generally available to developers in the US, Canada, UK, and Australia, and can be accessed publicly in sandbox and production. Sellers can purchase a Square Terminal device from Square or at retail stores, and will pay a standard processing rate to accept magstripe and chip cards, Apple Pay, Google Pay, and other NFC payment methods.

Check out the Terminal API documentation to learn how to get started and access the API reference docs. If you need help with implementation or have any questions, visit our Square Developer Forums or Build with Square Slack channel, or contact our Developer Support team.