Wrapper do Flutter para usar o SDK SumUp. Com este plugin, seu aplicativo pode se conectar facilmente a um terminal SumUp, fazer login e aceitar pagamentos com cartão no Android e no iOS.
Orientação gerada a partir de informações públicas. Apenas para referência.
O pacote sumup é um invólucro do Flutter para o SDK SumUp, permitindo a integração fluida de funcionalidades de pagamento com cartão em aplicativos Flutter para Android e iOS. Ele permite que desenvolvedores se conectem a terminais SumUp, autentiquem usuários e processem pagamentos diretamente em seus aplicativos. Projetado para simplicidade e confiabilidade, ele abstrai as complexidades das interações com SDK nativo, mantendo o tratamento seguro de transações. Ideal para empresas que precisam de capacidades de ponto de venda móvel com configuração mínima.
Casos de uso
Sistemas de POS móveis
Pagamentos presenciais no varejo
Faturamento de serviço móvel
Aplicativos de bilhetagem de eventos
Soluções de pagamento para pequenas empresas
Principais recursos
Integração nativa do SDK SumUp
Processamento seguro de pagamento com cartão
Suporte multiplataforma (Android e iOS)
Conexão fácil com terminal
fluxo de autenticação do usuário
Indicado para
Aplicativos de varejo
Negócios baseados em serviços
Organizadores de eventos
Freelancers aceitando pagamentos
extensões de comércio eletrônico
Considerações
Requer conta de comerciante SumUp
Limitado às regiões compatíveis
Dependente do hardware do terminal SumUp
Necessita de conformidade adequada com as regulamentações de pagamento
A execução em segundo plano pode exigir configuração adicional
README original
Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.
sumup
A Flutter plugin for the SumUp SDK. Supports card reader and Tap-to-Pay payments on Android and iOS.
Partner Links
Support this project by purchasing SumUp terminals through our affiliate links for your country:
Registered for a merchant account via SumUp's country websites (or received a test account).
Received a SumUp card terminal: Solo, Air, Air Lite, PIN+ terminal, Chip & Signature reader, or SumUp Air Register.
Requested an Affiliate (Access) Key and registered your application ID via the SumUp Dashboard.
Flutter 3.44+ and Dart 3.12+.
iOS deployment target 16.0+ and Xcode 26.2+ (iOS 16.7+ for Tap-to-Pay; 17.5+ recommended).
Android minSdkVersion 26+ (30+ for Tap-to-Pay), targetSdkVersion 36, Java 17, Android Gradle Plugin 9.2.1, and Gradle 9.5.1.
Migrating from 0.14.x
Version 0.15.0 adopts the native SDK 7.x toolchains.
Upgrade the app to Flutter 3.44+ / Dart 3.12+. SumUp Android SDK 7.1 requires Kotlin 2.4.0,
while Flutter 3.44 still needs its temporary AGP 9 compatibility mode for this explicit KGP
version. In the host app's android/gradle.properties, set:
android.builtInKotlin=false
android.newDsl=false
Declare org.jetbrains.kotlin.android version 2.4.0 with apply false in
android/settings.gradle:
plugins {
id "org.jetbrains.kotlin.android" version "2.4.0" apply false
}
Then apply it in android/app/build.gradle:
plugins {
id "org.jetbrains.kotlin.android"
}
Flutter 3.44 reports this legacy-KGP path as temporary; keep the two compatibility flags until
Flutter can use the vendor-required Kotlin version through AGP's built-in Kotlin integration.
Compile and target Android API 36 with Java 17, AGP 9.2.1, and Gradle 9.5.1.
Keep Android minSdk 26 for card-reader-only apps. Configuring Tap-to-Pay credentials enables the
TTP implementation; the host app must then also set minSdk to 30.
Use an iOS 16 deployment target with Xcode 26.2 or later. Swift Package Manager is recommended;
SumUp will stop publishing new CocoaPods SDK releases after October 31, 2026.
Android rollback warning: after an app has initialized SumUp Android SDK 7.1.0, downgrading
that installation to a version backed by an older native SDK is not supported. Validate the
migration with a sandbox merchant and use a staged rollout.
iOS rollback warning: before downgrading from SumUp iOS SDK 7.1.2, upload all pending Offline
Payments. If a downgrade is unavoidable, upload them first, delete the app, and then install the
version backed by the older SDK.
Installing
Add sumup to your pubspec.yaml:
dependencies:sumup:
Import sumup:
import'package:sumup/sumup.dart';
Getting Started
// 1. Initialise the SDK with your Affiliate KeyawaitSumup.init(affiliateKey);
// 2. Log in — either interactively or with an OAuth tokenawaitSumup.login();
// orawaitSumup.loginWithToken(token);
// 3. (Optional) Ask the user to pick / configure a card readerawaitSumup.openSettings();
// 4. Optionally warm up the reader before checkoutawaitSumup.prepareForCheckout();
// 5. Run a checkoutvar payment = SumupPayment(
title: 'Coffee',
total: 3.50,
currency: 'EUR',
foreignTransactionId: '', // leave empty to auto-generate a unique ID
saleItemsCount: 1,
skipSuccessScreen: false,
tip: 0.0,
);
var checkout = awaitSumup.checkout(SumupPaymentRequest(payment));
// checkout.success — bool// checkout.transactionCode — String// checkout.amount — double (not available on Android Tap-to-Pay)// checkout.currency — String (not available on Android Tap-to-Pay)// checkout.products — List<SumupProduct>; iOS and Android card reader only// checkout.merchantCode — String; Android Tap-to-Pay only// checkout.cardScheme — String; Android Tap-to-Pay only// checkout.errors — String; non-null when success is false
Log in with Sumup.login() or Sumup.loginWithToken().
Call Sumup.checkTapToPayAvailability(). If isActivated is false, call Sumup.presentTapToPayActivation() to run the one-time activation flow.
Use PaymentMethod.tapToPay in your request:
var request = SumupPaymentRequest(payment, paymentMethod: PaymentMethod.tapToPay);
var checkout = awaitSumup.checkout(request);
Android
Tap-to-Pay is opt-in (since 0.14.2). The TTP SDK (com.sumup.tap-to-pay:utopia-sdk) lives in a
private SumUp Maven repository. By default the plugin builds without it — no credentials, no
private-repo access, no 401. The card-reader (merchant-sdk) checkout path works fully in this mode.
You only need the steps below if you actually want Tap-to-Pay. (If you previously hit
Could not resolve com.sumup.tap-to-pay:utopia-sdk … 401 Unauthorized, upgrade to 0.14.2+ and
simply don't set the property.)
Requirements:
NFC-enabled physical device, Android 11 (API 30)+
Set the host application's minSdk to 30 when enabling Tap-to-Pay.
Enable core-library desugaring in the host app module, as required by Tap-to-Pay 1.1.1+:
Get Tap-to-Pay Maven credentials from SumUp (contact integration@sumup.com), then add them to your
user-level ~/.gradle/gradle.properties (or pass them via -P / environment). Do not commit the
credentials to the app repository. The plugin reads both credentials and automatically wires
the private Maven repo and compiles the
utopia-sdk dependency — you do not add it to your own build.gradle.
For environment-only configuration, use the names above or Gradle's standard
ORG_GRADLE_PROJECT_SUMUP_TTP_MAVEN_USERNAME and
ORG_GRADLE_PROJECT_SUMUP_TTP_MAVEN_PASSWORD variables.
SumUp sandbox merchants can test with a debuggable build. Live merchants require a
non-debuggable build with USB Debugging and Developer Options disabled.
Usage:
You must use Sumup.loginWithToken(accessToken) — token login is required for the TTP SDK to authenticate in the background.
Use PaymentMethod.tapToPay in your request:
var request = SumupPaymentRequest(payment, paymentMethod: PaymentMethod.tapToPay);
var checkout = awaitSumup.checkout(request);
Note: The Android TTP SDK does not return amount or currency in the transaction result. If you need them, query the SumUp Transactions API using checkout.transactionCode or checkout.foreignTransactionId.