Skip to content

Agency cards

An agency card is a generic term for the proprietary physical card tranist providers issue to eligible riders to show they participate in the provider’s reduced fare program. The Courtesy Card program at Monterey-Salinas Transit (MST) is a good example. Agency card programs pre-date the option of fare collection using contactless payments. Transit providers often require riders to show the card to bus operators when boarding to prove their eligibility for reduced fares.

During the pilot phase of Cal-ITP Benefits, we offered the agency card enrollment option to transit providers that were early adopters of contactless payments and wanted to use Cal-ITP Benefits as a way to enroll riders in discount groups the application didn’t yet support, such as Medicare cardholders and people with disabilities. As the range of enrollment options in the app expands to cover previously unsupported discount groups, the agency card enrollment option becomes less necessary. We plan to deprecate the agency card enrollment option when the application offers enrollment pathways for all required groups.

The agency card enrollment option differs from other options in the application because of the way the app verifies a rider’s eligibility for transit benefits. When a rider chooses the agency card enrollment pathway, the application uses the Eligibility API call. This API call queries data stored offline on the agency side to confirm the rider is active in the program. For all other enrollment options, the Cal-ITP Benefits app confirms rider eligibility by querying external data sources via to the CDT Identity Gateway. See the older adult enrollment pathway as one example.

Demonstration

This video shows the rider experience enrolling for transit benefits using the agency card enrollment pathway.

Architecture

To support an agency card deployment in Cal-ITP Benefits, the transit provider produces a list of eligible riders in CSV format. That file is loaded into an instance of the Eligibility Server running in the transit provider’s cloud.

Cal-ITP uses the hashfields tool to mask user data before it leaves the transit provider’s on-premises systems to protect rider personal information.

System architecture

flowchart LR
    rider((Rider's browser))
    benefits[Cal-ITP Benefits]
    api[Eligibility Server]
    data[Hashed list of eligible riders]
    cardsystem[Agency card data source]

    rider --> benefits

    subgraph CDT Azure Environment
        benefits
    end

    benefits <--> api

    subgraph Transit provider cloud
        api --> data
    end

    subgraph Transit provider on-prem
        cardsystem --> hashfields
    end

    hashfields --> data

Notes:

Process

sequenceDiagram
autonumber
    actor Transit rider
    participant Benefits as Cal-ITP Benefits
    participant elig_server as Eligibility server
    participant ac_data as Hashed listed of eligible riders
    participant Agency card data source
    participant Transit processor

    Agency card data source-->>ac_data: exports nightly
       activate ac_data
    ac_data-->>elig_server: loaded on server start
    Transit rider->>Benefits: visits benefits.calitp.org
        activate Benefits
    Benefits-->>elig_server: provides agency card details
        activate elig_server
    elig_server-->>Benefits: returns eligibility status (y/n)
        deactivate elig_server
    Benefits-->>Transit processor: payment enrollment start
        activate Transit processor
    Transit rider->>Transit processor: provides debit or credit card details
    Transit processor-->>Benefits: card registration confirmation
        deactivate Transit processor
        deactivate Benefits