# Accept offline payments

Accept payments when you have internet connectivity issues.

> #### Cellular-enabled readers
> 
> If you’re using a cellular-enabled reader like the Stripe Reader S710, see [Network transitions on cellular readers](https://docs.stripe.com/terminal/features/operate-offline/network-transitions.md) to understand how the reader transitions between WiFi, cellular, and offline mode.

If you have internet connectivity issues, Stripe Terminal allows you to store payments locally on your POS device or smart reader. When a network connection is restored, the SDK or smart reader automatically forwards any stored payments to Stripe.

From your application’s perspective, the payment collection process is similar to operating online. While offline, the smart reader or SDK securely stores the payment information and automatically forwards the stored payments when connectivity is restored. The SDK allows you to handle offline-related events using callbacks to your application.

## Availability

### Payment methods

| Payment Method | Supported |
| --- | --- |
| Visa | ✓ Supported1,2 |
| Mastercard | ✓ Supported1,2 |
| Discover | ✓ Supported1,2 |
| American Express | ✓ Supported1,2 |
| China UnionPay | ✓ Supported1,2,4 |
| JCB | ✓ Supported1,2,4 |
| Maestro | ✓ Supported1,2,4 |
| eftpos | ✓ Supported1,2,3,4 |
| Cartes Bancaires | ✓ Supported1,2,3,4 |
| NYCE, PULSE, STAR | - Unsupported |
| girocard | - Unsupported |
| Interac | - Unsupported |
| QR code payments | - Unsupported |

1 Physical cards and NFC-based [mobile wallets](https://docs.stripe.com/payments/wallets.md) are supported. Swiping isn’t allowed. 2 If you’re collecting payments in the European Economic Area, customers are required to insert their card and enter a PIN. 3 Co-branded cards are routed through the international scheme. For more information, see [Cartes Bancaires](https://docs.stripe.com/payments/cartes-bancaires.md) or [eftpos Australia](https://docs.stripe.com/payments/eftpos-australia.md) 4 Not supported for [Tap to Pay on iPhone](https://docs.stripe.com/terminal/payments/setup-reader/tap-to-pay.md?platform=ios) offline mode, which supports Visa, Mastercard, Discover, and American Express contactless cards only.

### Readers

| Device category | Readers | Connection type | Integration type |
| --- | --- | --- | --- |
| Mobile | [BBPOS Chipper 2X BT](https://docs.stripe.com/terminal/readers/bbpos-chipper2xbt.md), [Stripe Reader M2](https://docs.stripe.com/terminal/readers/stripe-m2.md), [BBPOS WisePad 3](https://docs.stripe.com/terminal/readers/bbpos-wisepad3.md) | Bluetooth, USB (Android only) | iOS SDK, Android SDK, React Native SDK |
| Smart | [Stripe Reader S700/S710](https://docs.stripe.com/terminal/readers/stripe-reader-s700-s710.md), [BBPOS WisePOS E](https://docs.stripe.com/terminal/readers/bbpos-wisepos-e.md) | Internet | iOS SDK, Android SDK, React Native SDK |
| Tap to Pay | [Tap to Pay on iPhone](https://docs.stripe.com/terminal/payments/setup-reader/tap-to-pay.md?platform=ios) (Private preview) | Built-in NFC | Terminal iOS SDK |

Tap to Pay on Android doesn’t support offline mode.

### Features

| Feature | Mobile readers | Smart readers | Tap to Pay readers |
| --- | --- | --- | --- |
| **[Tipping](https://docs.stripe.com/terminal/features/collecting-tips/on-reader.md)** | - Unsupported | ✓ Supported | - Unsupported |
| **[Ability to run custom POS app](https://docs.stripe.com/terminal/features/apps-on-devices/overview.md)** | - Unsupported | ✓ Supported | - Unsupported |
| **[Extended authorizations](https://docs.stripe.com/terminal/features/extended-authorizations.md)** | ✓ Supported | ✓ Supported | ✓ Supported |
| **[Incremental authorizations](https://docs.stripe.com/terminal/features/incremental-authorizations.md)** | - Unsupported | - Unsupported | - Unsupported |
| **[Ability to collect input on-screen](https://docs.stripe.com/terminal/features/collect-inputs.md)** | - Unsupported | ✓ Supported | - Unsupported |

# Smart readers


## Collect a payment while offline

The following diagram shows how a smart reader processes payment collection while offline and stores payments to disk. You can safely reboot the reader, even with stored offline payments. After you reboot the reader and it reconnects to the internet, you can connect your POS application to the reader. The reader then resumes forwarding any remaining stored payments.

A high-level diagram that shows how offline payments are stored. (See full diagram at https://docs.stripe.com/terminal/features/operate-offline/overview)

```text
[POS application] -- Create PaymentIntent --> [Terminal SDK]
[Terminal SDK] -- Create PaymentIntent --> [Smart reader]
[Smart reader] -- Securely store request information --> [Smart reader]
[Smart reader] -- Success response --> [Terminal SDK]
[Terminal SDK] -- Success callback --> [POS application]
[POS application] -- Collect payment method --> [Terminal SDK]
[Terminal SDK] -- Prompt for payment method --> [Smart reader]
[Smart reader] -- Payment method data --> [Terminal SDK]
[Terminal SDK] -- Success callback --> [POS application]
[POS application] -- Confirm PaymentIntent --> [Terminal SDK]
[Terminal SDK] -- Confirm PaymentIntent --> [Smart reader]
[Smart reader] -- Securely store request information --> [Smart reader]
[Smart reader] -- Success response --> [Terminal SDK]
[Terminal SDK] -- Success callback --> [POS application]
```

### Forward stored payments when online

The following diagram describes how stored payments are forwarded after connectivity is restored.

A high-level diagram that shows how offline payments are forwarded to the Stripe backend. (See full diagram at https://docs.stripe.com/terminal/features/operate-offline/overview)

```text
[Terminal SDK] -- Fetch connection token --> [POS application]
[POS application] -- Fetch connection token --> [Your backend]
[Your backend] -- POST /v1/terminal/connection_tokens --> [Stripe backend]
[Stripe backend] -- Connection token --> [Your backend]
[Your backend] -- Connection token --> [POS application]
[POS application] -- Connection token --> [Terminal SDK]
[Terminal SDK] -- Connection token --> [Smart reader]
[Smart reader] -- Authenticate using connection token --> [Stripe backend]
[Stripe backend] -- Authentication token --> [Smart reader]
[Smart reader] -- Forward stored payment --> [Stripe backend]
[Stripe backend] -- Success or decline response --> [Smart reader]
[Smart reader] -- Success or decline response --> [Terminal SDK]
[Terminal SDK] -- Forwarding event notification --> [POS application]
```

## See also

- [Collect card payments while offline](https://docs.stripe.com/terminal/features/operate-offline/collect-card-payments.md)

