Integrating contactless credit and debit payment with Transit

Check our our blog post to learn more about why we launched this feature and what it looks like.

Does your system allow riders to tap physical or virtual cEMV (contactless Europay, Visa, Mastercard) cards?

If your system supports:
  • Open loop payments in which the bank card serves as the rider’s fare media (in use worldwide) or
  • In-vehicle ticket sales that provide a printed proof of payment (common on UK buses)...
…we can surface this information in the Transit app and link riders directly to Apple Wallet and Google Wallet so they can pay their fare.
Due to limitations at the operating system level of iOS and Android mobile devices, this feature is compatible only with Apple Wallet on iOS and Google Wallet on Android. It is not compatible with other digital wallets such as Samsung Wallet.

There are two options for transit systems that would like to surface this information in the app.

But first: what about that “Fare info” button?

No matter whether you choose Option 1 or Option 2, this button is important! It directs users to a page on your transit agency’s website that contains complete information about fares.

You can provide a URL by updating the required agency.txt file in your GTFS with the optional agency_fare_url value. Make sure it directs users to a general page on your website about fares for your system, such as trimet.org/fares or mbta.com/fares.

If you are unable to update this field in your GTFS, you can contact us and share a URL that we can add manually to Transit.

If you do not provide a URL, the “Fare info” button will not appear.

Option 1: Up-to-date GTFS-Fares V2

Advantages: Full-fledged functionality, including fare schedule information updated directly by the transit system

Requirements: Requires agency to deploy and maintain Fares V2 as part of its GTFS dataset

If your system provides an up-to-date deployment of GTFS-Fares V2 to inform riders of fare schedules, be sure to include a contactless fare media option in fare_products.txt by using the fare_media_type=3 value. You can learn more about this in technical documentation on GTFS.org. (Note that a fare_media_type=3 value on its own is insufficient for this feature to function; it must be part of a valid, built-out GTFS-Fares V2 deployment.)
Option 1 requires GTFS-Fares V2. It is important to know that GTFS-Fares V1, based on the fare_attributes.txt and fare_rules.txt files, is not supported by Transit.

On trips where contactless fare media are accepted and the GTFS-Fares V2 data has been updated, a button will appear in the app showing the full-price adult fare for that trip. (Note: our app does not yet support display of reduced fare options.) If a range of fares are possible in a distance- or zone-based system, but the rider’s destination is unknown, then the button will show a range. If a multi-leg trip involves a free transfer, the button on the connecting leg will say “Free transfer”.

Tapping this button then opens a sheet with additional information and a link to Apple Wallet on iOS and Google Wallet on Android.

Once your updated GTFS is published and run through Transit’s data pipeline, this feature will begin to appear in the app automatically for trips where contactless is accepted.

Option 2: Manual deployment by Transit

Advantages: Can be deployed without any technical knowledge from transit system staff

Drawbacks: Does not include fare information telling riders how much the trip will cost; cannot be deployed if a transit system provides a GTFS-Fares V2 dataset without a fare_media_type=3 value

If your transit system accepts contactless credit and debit but you are unable to implement Option 1 by providing up-to-date GTFS Fares-V2 data, please contact us and our team will manually add a simplified version of the feature to the app at no charge.
Option 2 does not include information about how much each ride will cost; instead it will display a button that says "Contactless" on affected routes. Tapping this button then opens a sheet with a link to Apple Wallet on iOS and Google Wallet on Android.

If your system provides a GTFS-Fares V2 dataset but it does not include a fare_media_type=3 value, we are unfortunately unable to implement Option 2 manually. Please update your GTFS-Fares V2 data using Option 1.

If you have any questions, please don’t hesitate to contact us.

Still need help? Contact Us Contact Us