Integrating contactless credit and debit payment with Transit


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

If your system supports open loop payments in which the bank card serves as the rider’s fare media, then 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.

This feature is currently 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 three options for transit systems that would like to surface this information in the app.

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


No matter which option you choose, 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: GTFS-Fares V2

Advantages: Full-fledged functionality, with complete fare information (including indication of free transfers) updated directly by the transit system

Requirements: Agency must deploy and maintain Fares V2 as part of its GTFS dataset

Example: TriMet, Portland, OR

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: Transit 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: GTFS cemv_support

Advantages: Can be quickly deployed in a transit system’s GTFS; is simpler to add and maintain than Fares V2; can be enabled for specific routes or the entire agency

Drawbacks: Does not include fare information telling riders about trip cost or free transfers

Example: TTC, Toronto, ON

If your transit system accepts contactless credit and debit but you are unable to implement Option 1 by providing a GTFS Fares-V2 dataset, you may consider adding the optional cemv_support=1 value to either agency.txt (to indicate that contactless is accepted across an entire system) or routes.txt (to indicate that contactless is accepted on specific routes). You can learn more about this in technical documentation on GTFS.org.

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.

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

If your system provides a GTFS-Fares V2 dataset, it will override any cemv_support values added to agency.txt or routes.txt, and you will need to pursue Option 1 to ensure that this feature appears in Transit.

Option 3: 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 also provides a GTFS-Fares V2 dataset without a fare_media_type=3 value; cannot be used by apps other than Transit

Example: Miami-Dade Transit, Miami, FL

If your transit system accepts contactless credit and debit but you are unable to implement Options 1 or 2 by updating your GTFS, please contact us and our team will manually add a simplified version of the feature to the app at no charge.
Like Option 2, Option 3 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 unable to implement Option 3 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