New Terminal API Beta Features Now Available

New Terminal API Beta Features Now Available

Order itemization, card on file, delayed capture, and app fees

We recently released new beta features for Square Terminal API, an in-person payments API that connects developer apps built on any platform to Square Terminal for contactless and card payments. As of today, hundreds of developers have integrated with Terminal API, enabling thousands of sellers to take payments with Square Terminal connected to their preferred business app. These new features unlock even more omnichannel use cases, making it easier for developers to serve sellers with vertical-specific and customer-specific needs. Here’s what we released:

  • Deeper orders integration: Developers can integrate Orders API with Terminal API and display itemized line items on the Square Terminal device. In addition to ensuring that full order details are available in seller reports and buyer receipts, this also unlocks new use cases, like creating an order online and paying for it in-store, or paying for an order at a kiosk and sending it to Square Point of Sale for fulfillment.
  • Delayed capture: Developers can support sellers who want to authorize a payment upfront using Square Terminal, then wait to capture the funds until after the service has been completed or goods have been received. This is especially useful in industries like food and beverage, where a customer can open a bar tab and pay their bill at the end of the night, and retail, where sellers capture payments after goods are shipped.
  • Card on file: Developers can save a customer’s card on file with Terminal API and charge the card when the customer makes a purchase in the future. This feature provides a seamless experience for repeat customers and can help drive customer loyalty and retention.
  • App fees: Developers can now monetize their Terminal API integrations by collecting a portion of each payment that their application processes as the application fee.

"Square makes it possible to serve customers quickly and reliably across all of our channels, even during peak hours. We integrated Square Terminal API so our staff could accept payments on the beautiful Square Terminal hardware and so all payment data could sync with our custom, in-house POS. We recently added delayed capture to our integration — a critical capability for restaurants. Throughout this process, Square showed up for us with hands-on customer support, clear technical documentation, and APIs that are simple to integrate — transforming our technology stack."

Mark Stinson, Director of Information Technology at Kura Sushi

How it works

The Terminal API Create Terminal Checkout request now supports additional parameters in order to collect application fees, take a delayed capture payment, or associate a payment with an order. The following example shows how to add an Order ID to a Terminal API checkout request and present an itemized cart to the buyer.

curl https://connect.squareup.com/v2/terminals/checkouts \
 -X POST \
 -H 'Authorization: Bearer {{ACCESS_TOKEN}}' \
 -H 'Content-Type: application/json' \
 -d '{
   "idempotency_key": "5f2e1b9c-86a6-4310-88d2-c0b49a84df66",
   "checkout": {
     "amount_money": {
       "amount": 500,
       "currency": "USD"
     },
     "device_options": {
       "device_id": "R5WNWB5BKNG9R"
       "show_itemized_cart": true
     },
     "order_id": "7piQ5cvmkIYaUuv8XLULddDhefUZY"
   }
 }'

You can also use the new Terminal Actions endpoint to save a customer card on file for future transactions. This request takes a Customer ID as an input, as shown in the following example:

curl https://connect.squareup.com/v2/terminals/actions \
 -X POST \
 -H 'Authorization: Bearer {{ACCESS_TOKEN}}' \
 -H 'Content-Type: application/json' \
 -d '{
  "idempotency_key": "5f2e1vb9-c86a-6431-88d2-c0b49a84df66",
  "action": {
     "device_id": "R5WNWB5BKNG9R",
     "type": "SAVE_CARD",
     "save_card_options": {
        "customer_id": "VDX6V4U34SDMNP8125E3453D",
        "reference_id": "user-id-1"
     }
   }
 }'

Square Terminal will prompt the buyer to present their card and confirm that they allow the seller to save it. Once the card has been saved, it can be managed using the Cards API and can be charged using the Payments API.

Get started

Terminal API orders integration, delayed capture, and application fees are available in public beta in the U.S. Terminal API card on file is available in public beta in the U.S., Canada, and Australia. Terminal API is available across the U.S., Canada, UK, France, Ireland, Spain, Australia, and Japan.

To start building, check out our developer documentation, technical reference, and payments pricing. As always, please share your feedback in our community Slack channel or Square Developer Forums. If you want to keep up to date with the rest of our content, be sure to follow this blog and our Twitter account.

View More Articles ›