Skip to content

Offline Transactions

Use store-and-forward offline transactions with the Android and iOS Reader SDKs, including requirements, lifecycle, and platform-specific APIs.

Offline Transactions let merchants continue accepting card payments when internet connectivity is unavailable or unreliable. In this store-and-forward flow, card data is captured and cached securely on the device, then uploaded later for processing and authorization.

The feature is available for the Android SDK and iOS SDK. It is not available for Tap to Pay.

Before You Begin

Make sure all of the following are true:

  • You already have an active Android or iOS Reader SDK integration.
  • The device and reader meet the minimum requirements below.
  • The merchant has completed at least one successful online transaction.
  • Your organization has completed the opt-in process for Offline Transactions.

To request access, contact us through the contact form.

Platform Availability

CapabilityAndroid SDKiOS SDK
Offline Transactions Supported Supported
Tap to Pay❌ Not supported❌ Not supported
Supported card schemesVisa, MastercardVisa, Mastercard
Solo firmware3.3.31.0 or higher3.3.31.0 or higher
Solo Lite firmware2.2.1.25 or higher2.2.1.25 or higher

Geographic Availability

Offline Transactions are currently supported in Europe through Worldpay.

Minimum Requirements

RequirementMinimum
Android OSAndroid 8
Card reader (Solo)Firmware 3.3.31.0 or higher
Card reader (Solo Lite)Firmware 2.2.1.25 or higher
Supported card schemesVisa, Mastercard

Lifecycle

Offline Transactions follow four phases: preparation, activation, offline payment acceptance, and reconciliation.

PhaseWhat happens
PreparationThe SDK downloads offline rules and merchant limits while the device is online.
ActivationYour app starts an offline session.
Offline windowTransactions are validated locally, signed, and stored securely on device.
ReconciliationStored transactions are uploaded to SumUp when connectivity returns.

Preparation

Before going offline, sync the latest offline rules and limits while the device is online.

  • Method: SumUpAPI.updateOfflineSecurityPatch(SecurityPatchUpdateCallback callback)
  • Internet required: Yes

If you skip this step, startOfflineSession(...) can fail with OfflineLimitsAbsent.

Best practice: run preparation after merchant login or when the merchant explicitly enables offline mode.

Activation

Offline sessions are explicit on both platforms.

  • Start: SumUpAPI.startOfflineSession(StartOfflineSessionCallback callback)
  • Internet required: No

Once an offline session starts, subsequent payments are attempted as offline transactions until the session is ended.

Offline Window

During an active offline session, transactions are validated locally and stored securely on the device. The SDK still returns an immediate result to your app.

  • Method: SumUpAPI.fetchCurrentOfflineSession(OfflineSessionCallback callback)
  • Internet required: No
  • Returns session information such as remaining time, approved transaction count, failed transaction count, and total approved amount.

Offline sessions are constrained by merchant limits, total stored volume, and session duration. Once those limits are reached or the session expires, new offline transactions are rejected.

Reconciliation

When connectivity returns, upload stored transactions as soon as possible.

  • Manual upload: SumUpAPI.uploadOfflineTransactions(UploadOfflineTransactionsStatusListener callback)
  • End session: SumUpAPI.stopOfflineSession(StopOfflineSessionCallback callback)

Stopping the session also triggers an upload attempt.

Android API Summary

APIPurposeInternet required
SumUpAPI.updateOfflineSecurityPatch(...)Download the latest offline rules and limitsYes
SumUpAPI.startOfflineSession(...)Start an offline sessionNo
SumUpAPI.stopOfflineSession(...)Stop the session and trigger uploadNo
SumUpAPI.uploadOfflineTransactions(...)Upload stored offline transactions manuallyYes
SumUpAPI.fetchCurrentOfflineSession(...)Inspect current session statusNo

Android Integration Example

Update Offline Security Patch

SumUpAPI.updateOfflineSecurityPatch(new SecurityPatchUpdateCallback() {
    @Override
    public void onSuccess() {
        // Security patch update successful
    }

    @Override
    public void onFailure() {
        // Security patch update failed
    }
});

Start Offline Session

SumUpAPI.startOfflineSession(new StartOfflineSessionCallback() {
    @Override
    public void onResult(@NonNull StartOfflineSessionResult result) {
        // Handle the start result
    }
});

Stop Offline Session

SumUpAPI.stopOfflineSession(new StopOfflineSessionCallback() {
    @Override
    public void onResult(@NonNull StopOfflineSessionResult result) {
        // Handle the stop result
    }
});

Common Failure Modes

ScenarioBehavior
Preparation step skipped or failedSession start can fail because offline limits are missing
Reader switched mid-sessionOffline processing is suspended until a new session is started
Session expiredNew offline transactions are rejected
Cumulative limit reachedNew offline transactions are rejected until stored transactions are uploaded
Concurrent offline API callsNot supported on Android; keep calls serial

Testing

For testing guidance, contact your SumUp technical contact or reach out through the contact form.