You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sumup.presentTapToPayActivation(); // iOS only; no-op on Android
148
137
149
138
Sumup.logout();
150
-
151
-
// iOS only
152
-
Sumup.isCheckoutInProgress;
153
-
154
139
```
140
+
141
+
## Tap-to-Pay (TTP)
142
+
143
+
Accept contactless payments directly on compatible smartphones, without any additional hardware.
144
+
145
+
### iOS
146
+
147
+
**Requirements:**
148
+
- iPhone XS or later, iOS 16.4+
149
+
- Entitlement `com.apple.developer.proximity-reader.payment.acceptance` added to your project (requires approval from Apple)
150
+
- See [Apple's HIG for Tap to Pay on iPhone](https://developer.apple.com/design/human-interface-guidelines/tap-to-pay-on-iphone)
151
+
152
+
**Setup:**
153
+
1. Log in with `Sumup.login()` or `Sumup.loginWithToken()`.
154
+
2. Call `Sumup.checkTapToPayAvailability()`. If `isActivated` is `false`, call `Sumup.presentTapToPayActivation()` to run the one-time activation flow.
155
+
3. Use `PaymentMethod.tapToPay` in your request:
156
+
```dart
157
+
var request = SumupPaymentRequest(payment, paymentMethod: PaymentMethod.tapToPay);
- The TTP SDK is distributed via a private SumUp Maven repository — contact `integration@sumup.com` to get credentials, then add them to your `gradle.properties`:
166
+
```
167
+
SUMUP_TTP_MAVEN_USERNAME=...
168
+
SUMUP_TTP_MAVEN_PASSWORD=...
169
+
```
170
+
- Add the `utopia-sdk` dependency to your app's `build.gradle` (same version used by the plugin) and configure the Maven repository. See `example/android/` for a full working setup.
171
+
- TTP **requires a release build**: the SDK performs device attestation and will refuse to run if USB Debugging or Developer Options are enabled.
172
+
173
+
**Usage:**
174
+
1. You must use `Sumup.loginWithToken(accessToken)` — token login is required for the TTP SDK to authenticate in the background.
175
+
2. Use `PaymentMethod.tapToPay` in your request:
176
+
```dart
177
+
var request = SumupPaymentRequest(payment, paymentMethod: PaymentMethod.tapToPay);
178
+
var checkout = await Sumup.checkout(request);
179
+
```
180
+
181
+
> **Note:** The Android TTP SDK does not return `amount` or `currency` in the transaction result. If you need them, query the [SumUp Transactions API](https://developer.sumup.com/api/transactions/get) using `checkout.transactionCode` or `checkout.foreignTransactionId`.
0 commit comments