Skip to content

SumUp ​

Reads a SumUp merchant account: transactions and related catalog objects. Use an OAuth app or an access token. Pair with a destination that matches the write policy you set (Athena / Iceberg / SkipprLake for daily replace).

Before you begin ​

  1. Copy the merchant code from SumUp.
  2. Create an OAuth app and a refresh token, or a personal access token.
bash
export SUMUP_CLIENT_ID="..."
export SUMUP_CLIENT_SECRET="..."
export SUMUP_REFRESH_TOKEN="..."

Configure ​

python
from skippr import Config, DataSourceSumUp, EnvRef, Pipeline

cfg = Config.discover()
src = cfg.data_source(
    "sumup",
    DataSourceSumUp(
        merchant_code="MC123",
        start_date="2024-01-01",
        oauth_token_url="https://api.sumup.com/token",
        oauth_client_id="${SUMUP_CLIENT_ID}",
        oauth_client_secret=EnvRef("SUMUP_CLIENT_SECRET"),
        oauth_refresh_token=EnvRef("SUMUP_REFRESH_TOKEN"),
        stream_profile="full",
    ),
)
cfg.pipeline("sumup", Pipeline(data_source=src, data_sink=cfg.get_data_sink("lake")))
cfg.save()
bash
skipprd connect data-source sumup \
  --pipeline sumup \
  --name sumup \
  --merchant-code MC123 \
  --start-date 2024-01-01 \
  --oauth-token-url https://api.sumup.com/token \
  --oauth-client-id '${SUMUP_CLIENT_ID}' \
  --oauth-client-secret '${SUMUP_CLIENT_SECRET}' \
  --oauth-refresh-token '${SUMUP_REFRESH_TOKEN}' \
  --stream-profile full
yaml
data_sources:
  sumup:
    SumUp:
      merchant_code: MC123
      start_date: "2024-01-01"
      stream_profile: full
      lookback_days: 7
      oauth_token_url: https://api.sumup.com/token
      oauth_client_id: ${SUMUP_CLIENT_ID}
      oauth_client_secret: ${SUMUP_CLIENT_SECRET}
      oauth_refresh_token: ${SUMUP_REFRESH_TOKEN}

Options ​

KeyTypeRequired/DefaultDescription
merchant_codestringRequiredSumUp merchant code
start_datestringRequiredFirst date (YYYY-MM-DD)
lookback_daysintegerNot setDays to re-read
stream_profilestringNot setminimal, standard, or full
streamslistProfile setExact stream list
min_query_interval_msintegerNot setDelay between API calls
oauth_token_urlURLNot setToken endpoint
oauth_client_idstringNot setOAuth client id
oauth_client_secretsecretNot setOAuth secret
oauth_refresh_tokensecretNot setRefresh token
access_tokensecretNot setStatic token (skips refresh)
privacyobjectNot setField redaction (see Stripe's privacy settings for the shape)

What gets synced ​

Merchant transactions and catalog objects in the selected profile. Each run re-reads lookback_days.

Troubleshooting ​

SymptomFix
401Rotate the refresh token or access token
Empty tablesCheck merchant_code and start_date

Next steps ​