Welcome to our new developer portal! Use the "Ask" button to chat with our AI Agent.
For the complete documentation index, see llms.txt. This page is also available as Markdown.

Fare Products

The fare products are the travel contracts the users can purchase.

Overview

There are 3 main fare products categories defined within D1 Transit:

  1. Stored-value fare products

  2. Count-based fare products

  3. Time-based fare products

Stored-Value Fare Products

Stored-value fare products allow users to preload a set amount of money onto a their transit card, which can then be used to ride on the transit network.

Transit operators may offer fare capping which ensures users never pay more than a certain amount within a specified period, providing them cost savings.

Count-Based Fare Products

Count-based fare products allow users to purchase a set number of trips in advance, rather than paying for unlimited travel within a specific period (such as weekly or monthly products).

These products offer a finite number of uses that users can utilize. Typically, count-based fare products can be used until the count is exhausted, however they may have an expiration.

Time-Based Fare Products

Time-based fare products are typically available as monthly or weekly basis and allow unlimited number of trips within a predefined period.

Unlike traditional pay-per-ride tickets, time-based products are activated for a set duration:

  • from the moment of purchase

  • on a scheduled future date

  • or upon the first use

and remain valid for the entirety of that period.

Data Model

The following section describes how a fare product is defined within D1 Transit solution.

There are 2 notions to consider:

  • Product metadata: metadata linked to a product that has been purchased and is linked to the user card account.

  • Purchasable product metadata: metadata linked to a purchasable product, i.e. a product users may purchase.

Product / Purchasable Product common metadata

ProductId

The fare product unique identifier

ProductType

Defines the nature of the fare product, as indicated above, it can be stored-value, count-based or time-based.

ProductName

Localized product name, displayed within the digital wallet.

Fare

Fare object is composed of:

  • fareId: an identifier of the GTFS feed exposed by the Transit operator

  • fareClass: when product is associated with a certain price/category, users can purchase (e.g. business, first, standard...)

  • concession: student, elder, full fare...

ValidityParameters

ValidityParameters object is composed of:

  • numberOfTrips: number of trips a product can be used for. Typically used for count-based products.

  • timeLimits (start time / end time): time window within which a product is valid. Typically used for time-based products, but can be applied to count-based products too.

  • validityAfterTapIn: period of time for which a product is valid after the first tap-in.

  • validityAfterTapOut: period of time for which a product is valid after tap-out. Typically used for transfer purpose.

  • zoneLimits: from/to zones the product is valid for.

  • stationLimits: from/to stations the product is valid for.

  • topupLimits: limits that apply to topping up a stored-value product.

Product Specific Metadata

PurchaseDetails

PurchaseDetails object is composed of:

  • purchaseId: receipt number/identifier for tracking the product purchase.

  • purchaseTime: purchase time of the original product.

  • price: price of the product.

  • currencyCode: currency code.

  • repurchaseUrl: link to repurchase the same product.

  • refundUrl: link to refund website for that product.

Purchasable Product Specific Metadata

SalePeriod

SalePeriod object is composed of:

  • startDate: The earliest date time (inclusive) that this product can be purchased.

  • endDate: The latest date time (exclusive) that this product can be purchased.

EligibleForTopup

Flag indicating whether the product can be topped up or not.

Last updated

Was this helpful?