Skip to content

Agency Cards

Agency Cards is a generic term for reduced fare programs offered by Transit Providers, such as the Courtesy Card program from Monterey-Salinas Transit (MST).

Agency cards are different from our other use cases in that eligibility verification happens on the agency side (offline) rather than through the Benefits app, and the Benefits app then checks for a valid Agency Card via an Eligibility API call.

Demonstration

Here’s a video showing what the flow looks like, having agency cardholders confirm eligibility via the Eligibility Server and enroll via Littlepay:

Architecture

In order to support an Agency Cards deployment, the Transit Provider produces a list of eligible users (CSV format) that is loaded into an instance of Eligibility Server running in the Transit Provider’s cloud.

Cal-ITP makes the hashfields tool to facilitate masking user data before it leaves Transit Provider on-premises systems.

The complete system architecture looks like:

flowchart LR
    rider((User's browser))
    api[Eligibility Server]
    data[Hashed Agency Card data]
    cardsystem[Data source]

    rider --> Benefits

    subgraph CDT Azure
        Benefits
    end

    Benefits --> api

    subgraph Transit Provider cloud
        api --> data
    end

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

    hashfields --> data

Notes:

Process

sequenceDiagram
    actor Rider
    participant Benefits as Benefits app
    participant elig_server as Eligibility Server
    participant cc_data as Hashed data
    participant Data Source
    participant Littlepay

    Data Source-->>cc_data: exports nightly
    cc_data-->>elig_server: gets loaded on Server start

    Rider->>Benefits: visits site
    Benefits-->>elig_server: passes entered Agency Card details
    elig_server-->>Benefits: confirms eligibility

    Benefits-->>Littlepay: enrollment start
    Rider->>Littlepay: enters payment card details
    Littlepay-->>Benefits: enrollment complete