Screvercommerce
Switzerland

Concrete Swiss integration examples.

Each example follows the same shape: what it is, how it connects, how Screver Commerce models it, and a sample request or response.

Live destinations

Storefront — Alpine Zone.

A destination running on Screver Commerce. Same backend powers every product tile.

alpinezone.ch
A
Alpine Zone
EN ▾Cart · 2
Winter 2026 · Live

Zermatt, all in one tap.

Lift passes, rentals, the Glacier Express, dinner at Findlerhof — one cart, one payment, one wallet pass.

Destination

Zermatt

Dates

Any

Guests

Any

Activity

Any

Popular this week

View all →

Lift access

Zermatt Day Pass

CHF 89

Rail

Glacier Express

CHF 268

5-day course

Sedrun Ski School

CHF 320

Per day

E-Bike rental

CHF 65

Evening

Findlerhof Dinner

CHF 95

Leukerbad

Wellness day

CHF 95

Destination storefront · Alpine Zone
SBB / opendata.ch

Next departures from a station.

Swiss Federal Railways open transport API. No API key required; rate-limited. Used for departure boards on destination pages, station resolution for booking forms, and connector ancillaries for combined tickets.

javascript

// Fetch next 6 departures from Montreux
const res = await fetch(
  'https://transport.opendata.ch/v1/stationboard?station=Montreux&limit=6'
);
const { stationboard } = await res.json();
return stationboard.map(s => ({
  departureTime: s.stop.departure,
  line: s.category + s.number,
  destination: s.to,
  platform: s.stop.platform,
  delay: s.stop.delay,
}));
TWINT

Initiate a Swiss mobile payment.

TWINT is initiated by a token (QR or deep-link) returned from a payment provider. Datatrans, SIX Payment Services, and PostFinance all expose TWINT.

http

POST /api/payments/twint/initiate
{
  "bookingId": "bkg_01HTABXYZ",
  "amount": 64320,
  "currency": "CHF",
  "channel": "web"
}

-> 200 OK
{
  "qrCode": "https://twint.ch/q/abc...",
  "deepLink": "twint://pay?token=abc...",
  "expiresAt": "2026-05-25T14:35:00Z",
  "reference": "twint_ref_123"
}
SwissPass + SwissID

Federated Swiss identity.

SwissPass is the rail-issued identity used by SBB for Half-Fare and GA. SwissID is the federated Swiss digital identity. Both expose OAuth2/OIDC. Binding a SwissPass at checkout applies Half-Fare or GA reduction automatically — the fare engine reads the entitlement; no manual reduction selection.

Skidata, Axess

Lift access control.

Both expose vendor APIs for ticket pre-loading, gate validation, and entitlement push. On booking confirmation, the connector pushes the entitlement to the gate system; on gate scan, validation happens at the vendor with success/failure logged via webhook.

Skidata: REST + OAuth2 client credentials. Endpoints: /Tickets, /MediaRequests, /ValidationEvents. Retries with exponential backoff + outbox table.
Axess: SOAP / SmartConnect. Connector translates to a canonical entitlement schema and back.

MeteoSwiss

Weather data for pricing rules.

Snow-depth input to the low-snow ski-pass discount rule. Wind-speed input to cable-car operability flags. Forecast input to dynamic-pricing weight. Scheduled fetch every 30 minutes; normalised weather signal cached in Postgres. The pricing rule engine reads weather.snowDepth_cm, weather.windSpeed_kmh, weather.forecastTemp_24h as input variables.

Cantonal tourist tax

Meldewesen automation.

Each Swiss canton operates its own Kurtaxe reporting system. Most accept XML or CSV uploads; some have REST endpoints. Tourist tax is computed automatically as a synthetic line item per booking; a scheduled job aggregates per-period totals and submits to the canton endpoint in the required format. Every submission writes to IntegrationEvents.

HubSpot CRM

Booking → contact + deal sync (in production).

javascript

// On booking.created
await hubspot.contacts.upsert({
  idProperty: 'email',
  properties: {
    email: customer.email,
    firstname: customer.firstName,
    lastname: customer.lastName,
    preferred_language: customer.locale,
    swisspass_bound: !!customer.swissPassId,
  },
});

await hubspot.deals.create({
  properties: {
    dealname: `Booking ${booking.reference}`,
    amount: booking.total / 100,
    pipeline: tenant.hubspot.pipelineId,
    dealstage: 'closedwon',
    booking_id: booking.id,
    booking_lines: JSON.stringify(booking.lineItems),
  },
  associations: [{ to: { id: contactId }, types: [...] }],
});

Keep reading