Use the Point of Sale API in Offline Mode

Applies to: Point of Sale API - iOS | Point of Sale API - Android

Learn how to continue processing payments offline during moments of limited connection to the Internet.

Link to section

Requirements and limitations

If you're using the Point of Sale API with a Square Reader for contactless and chip, both a Bluetooth connection and a secure connection are required to take offline payments.

  • A Bluetooth connection relies on device settings and physical distance. A reader must maintain a Bluetooth connection with a mobile device's POS application to take payments.
  • A secure connection is established when a reader is connected to a mobile device that has its POS application open and online.

To take offline payments with the Point of Sale API and a Square reader:

  • The reader must be connected to a device that was online and had the POS application opened within the last 24 hours.
  • The POS device must have a Bluetooth connection to the reader and have offline processing enabled before going offline.
  • The reader must maintain a Bluetooth connection to your device throughout the offline payment.
Link to section

Accept offline payments

The Point of Sale API supports payment processing with the Square Point of Sale application in Offline Mode.

To accept offline payments with the Point of Sale API:

  1. Sign in to the Square Point of Sale application, choose ≡ More, and then choose Settings.

  2. Choose Checkout, choose Offline payments, and then toggle on Allow.

    Important

    Offline payments are processed automatically when you reconnect your device to the Internet. Payments might be declined if not processed within 24 hours.

Link to section

Offline payment results

Offline payment results don't include a transaction_id field because Square backend systems haven't received and processed the transaction. Instead, the response includes a client_transaction_id field, which matches the value of client_id in Transaction objects. Use client_transaction_id to retrieve the transaction details using the Transactions API ListTransactions endpoint when Internet connection is restored and the Square Point of Sale application processes the staged transactions.

It's not currently possible to filter ListTransactions results by the client_id field.