Train tickets to Apple/Google Wallet Passes
Turn your public transport ticket into an Apple and Google Wallet pass.
Supported ticket types include:
- VDV - German local transport operators, Deutschlandticket
- UIC - Deutsche Bahn, NS, ÖBB and other long-distance operators, Klimaticket, InterRail
- SSB - Select long-distance operators (e.g. SNCB), NS Keycards
- RSP6 - UK train tickets
- RSP8 - UK Railcards
- SNCF domestic tickets
- ELB - Eurostar
If you want your tickets to automatically update when they are renewed you can create an account and add the subscription. Currently, DB and SaarVV are supported.
If you're having trouble scanning your ticket uploading a picture/screenshot of your ticket usually works better. The decoder on the server is better than the one in your browser.
Upload a picture or a PDF instead
Paste your ticket as hex
Not working?
Get in touch with a picture of your ticket and I'll see what I can do.
- Fedi: @q@glauca.space
- Email: q@magicalcodewit.ch
Privacy
Your ticket barcode will be stored to allow automatic updates to subscription tickets. Tickets commonly include your name and date of birth - this information is not processed except to generate the pass. Ticket data may be inspected by a human if you ask for help.
API
You can send scanned Aztec barcode contents to this service's API and retrieve PKPass files from it.
API details
POST /api/upload
Content-Type: application/json
{
"barcode_data": "<base64 encoded aztec contents>"
}
---
200 OK
Content-Type: application/json
{
"ticket_id": "EXAMPLE_ID",
"access_token": "EXAMPLE_TOKEN"
}
---
422 Unprocessable Entity
Content-Type: application/json
{
"title": "Invalid barcode",
"message": "This doesn't look like a valid ticket"
}
GET
/api/apple/v1/passes/pass.ch.magicalcodewit.vdv.ticket/EXAMPLE_ID
Authorization: ApplePass EXAMPLE_TOKEN
---
200 OK
Content-Type: application/vnd.apple.pkpass
Content-Disposition: attachment; filename="EXAMPLE_ID.pkpass"
Pass Contents