# MPTP Data Fields

## Overview

To ensure compliance with Safe Transport Victoria (STV), all MPTP-related data submitted to CabFare Connect must adhere to a strict schema. Whether data is captured via a physical card read on the EFTPOS Terminal or manual entry on the Taxi Meter, it must be mapped to the fields defined on this page.

## MPTP Member Object

When validating a member via `/terminal/mptp/validate` or `/meter/mptp/validate`, the system expects and returns the following core data points:

| Field               | Type      | Description                                                                                | Requirement                 |
| ------------------- | --------- | ------------------------------------------------------------------------------------------ | --------------------------- |
| `memberNumber`      | `string`  | The unique 9-digit identifier found on the passenger's STV card                            | Required                    |
| `isEligible`        | `boolean` | Returns `true` if the member has a valid account and available subsidy balance             | Returned by CabFare Connect |
| `expiryDate`        | `string`  | The card expiry in `YYYY-MM-DD` format. Transactions cannot proceed if the card is expired | Required                    |
| `subsidyPercentage` | `integer` | The percentage of the fare covered by STV (typically 50%)                                  | Returned by CabFare Connect |
| `subsidyCap`        | `integer` | The maximum amount in cents covered per trip (typically 6000, equivalent to $60.00)        | Returned by CabFare Connect |

## Driver MPTP Data

When a driver logs in, CabFare Connect returns the driver's current MPTP registration status in the `mptpDriverData` object:

| Field        | Type     | Description                                                                                                                                                 |
| ------------ | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `mptpStatus` | `string` | The driver's current MPTP eligibility status. `MPTP_DRIVER_INVALID` indicates the driver is not registered or not currently permitted to provide MPTP trips |
| `mptpNumber` | `string` | The driver's MPTP registration number. Only present if the driver is registered                                                                             |
| `mptpExpiry` | `string` | The driver's MPTP registration expiry date in `YYYY-MM-DD` format. Only present if the driver is registered                                                 |

If `mptpStatus` is `MPTP_DRIVER_INVALID`, Subsidy Scheme trip functions must be disabled for the shift. Standard trips continue normally.

## Critical Validation Rules

**Manual entry format**
If entering a member number manually on the Taxi Meter, the system strictly accepts the last 9 digits of the card number only. The first 9 digits of the card number must not be included.

**Currency format**
All fare-related fields including `subsidyCap` are expressed in cents as integers. A $60.00 cap is represented as `6000`.

**Eligibility check**
A trip must not be initiated as an MPTP trip unless `isEligible` returns `true` during the validation check.

**Expired or cancelled cards**
A subsidised fare must not be processed for a member whose MPTP card has been rejected as expired or cancelled.

---
Source: https://docs.cabfare.com/api/mptp-data-fields
