Plug into Switzerland and beyond.
Production connectors across the tourism stack. Each connector is a typed module with a stable contract, configured per tenant. Adding a new connector is a workflow, not a release.
Browse and install connectors.
Filter by category. Each connector exposes a typed contract.
Integrations
One Core, every cluster in orbit.
Click any cluster to inspect its representative partners. Adding a new cluster is a workflow, not a release.
Active cluster
Insurance
die Mobiliar, ERV, AXA Travel, MyClimate, Atmosfair — bundled at checkout.
Representative partners
Technical exchange
- Protocol
- REST · quote/bind
- Direction
- Core → Partner
- Cadence
- On checkout
{
"product": "erv.travel.flex",
"cart_id": "crt_8af2c91",
"insured": 2,
"trip_value_chf": 252.4,
"premium_chf": 12.8,
"policy_no": "ERV-2026-7748102"
}Click any cluster to inspect partners.
Open any cluster for partners, contract and example payload.
Connector detail · TWINT.
Per-connector configuration, health metrics, recent events, scoped permissions.
TWINT
Swiss mobile payments · via Datatrans
Configuration
Recent events
Last 24h| 14:32:08 | captured | CHF 252.40 | ok |
| 14:18:44 | captured | CHF 89.00 | ok |
| 13:55:12 | initiated | CHF 420.00 | default |
| 13:40:01 | captured | CHF 64.00 | ok |
| 13:22:18 | declined | CHF 1240.00 | warn |
Health
Permissions
- payment.create
- payment.refund
- payment.read
Add a new API connection — no code.
Three steps: connection, auth + field mapping, webhooks + test. Every new connector is generated as typed config that ships with the same observability and audit trail as built-ins.
Configurator
Add API connection
Connection
Generated connector
YAML · JSON · TS{
"connector": {
"id": "skidata-freemotion",
"kind": "rest",
"base_url": "https://api.freemotion.skidata.com/v3",
"auth": {
"type": "oauth2",
"token_url": "https://api.freemotion.skidata.com/v3/oauth/token",
"scopes": [
"read:gates",
"write:passes"
]
},
"mapping": {
"passes[].id": "product.sku",
"passes[].priceCents": "product.price * 100",
"gates[].status": "channel.health"
},
"webhooks": [
{
"event": "pass.scanned",
"target": "/api/public/skidata/scan"
}
]
}
}One ticket, many systems, under 1.5 seconds.
Keep reading
