addrbookFor publishers
← The evidence ledger

Evidence row 308570

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 5eb6fcc8-d76b-4029-ab2f-c5e617b37551
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
6ba78ecd53a0da3423e79baadda4929b577279c95483ad792f42b5d2a8d5b047
Leaf
0x3bdeb326f5d998eb5cd2d41d17b73084f89d8ae1279aabb32bf1a8b47375f5f4

What was observed

{
  "count": 47,
  "tools": [
    {
      "description": "Batch generate wallet passes\n\nGenerate up to 100 wallet passes in one **synchronous** request.\nEach accepted row is one `POST /generate-pass` (same free-100 and\ncard-on-file gates as a single generate). Optional\n`POST /share-pass/create` per successful row when `create_share_links`\nis true (default).\n\n**Host:** `https://passfa.st/api/passes/batch` (site / Vercel preview).\nThis is not an `api.passfa.st` Edge Function. MCP tool:\n`batchGeneratePasses` (secret key `sk_live_` only) — same path and\nbody as this operation.\n\n**Auth:** `Authorization: Bearer sk_live_…` or `pk_live_…` (scope\n`passes:create`). A Supabase user JWT is also accepted (dashboard\nsession). Send `X-App-Id` for multi-app orgs and `X-Org-Id` as\nelsewhere.\n\n**Body:** mapped `rows` (same shape the dashboard posts) **or** raw\n`csv` plus optional `column_map`. Do not send both.\n\n**Limits:** more than 100 rows → `400 row_limit_exceeded` **before**\nany generate. Empty body / empty CSV → `400 empty_batch` or\n`invalid_csv`. Bad template → `400 invalid_template`. Missing or\ninvalid Bearer → `401 unauthorized`.\n\n**Billing:** a row that hits the free-100 / card gate returns the same\n`402` codes as generate-pass (`free_limit_reached`,\n`subscription_canceled`, `payment_past_due`). Remaining rows stop.\nAlready-created rows stay. HTTP `402` is returned only when **zero**\nrows succeeded; a later-row 402 after some successes is HTTP `200`\nwith `stopped_reason` and per-row results.\n\n**Partial failures:** other per-row errors (validation, duplicate\nserial, share-link warning) continue. The response lists every\nprocessed row.\n\n**Scope:** `passes:create`\n\nMaps to OpenAPI operationId `batchGeneratePasses` — POST /passes/batch.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "column_map": {
            "description": "Optional CSV header map when `csv` is sent.",
            "properties": {
              "expires_at": {
                "type": "string"
              },
              "external_id": {
                "type": "string"
              },
              "fields": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              "serial_number": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "create_share_links": {
            "default": true,
            "description": "When true, call POST /share-pass/create after each successful generate.",
            "type": "boolean"
          },
          "csv": {
            "description": "Raw CSV text with a header row. Do not send together with rows.",
            "type": "string"
          },
          "rows": {
            "description": "Mapped rows (dashboard / scripts). Do not send together with csv.",
            "items": {
              "properties": {
                "data": {
                  "additionalProperties": true,
                  "description": "Template field_schema values.",
                  "type": "object"
                },
                "expires_at": {
                  "format": "date-time",
                  "type": "string"
                },
                "external_id": {
                  "type": "string"
                },
                "serial_number": {
                  "description": "Optional. Auto-generated when omitted.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "template_id": {
            "description": "ID of a published template.",
            "format": "uuid",
            "type": "string"
          },
          "wallet_type": {
            "default": "apple",
            "enum": [
              "apple",
              "google",
              "both"
            ],
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "template_id"
        ],
        "type": "object"
      },
      "name": "batchGeneratePasses"
    },
    {
      "description": "Create an API key\n\nCreates a new API key. The response contains `id`, `name`, `key_type`,\n`key_prefix`, `raw_key`, and `message`. The full raw key is shown only\nonce and cannot be retrieved again.\n\n**Scope:** `org:manage`\n\nMaps to OpenAPI operationId `createApiKey` — POST /manage-keys.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "key_type": {
            "description": "Key type. Secret keys have full access; publishable keys have limited scopes.",
            "enum": [
              "secret",
              "publishable"
            ],
            "type": "string"
          },
          "name": {
            "description": "Human-readable label for the key.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "key_type"
        ],
        "type": "object"
      },
      "name": "createApiKey"
    },
    {
      "description": "Create a new app\n\nCreates a new app within the organization.\n\n**Scope:** `org:manage`\n\nMaps to OpenAPI operationId `createApp` — POST /manage-org/app.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "default": "New App",
            "description": "App display name.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "createApp"
    },
    {
      "description": "Create a share token\n\nCreates a public share token for a pass, enabling distribution via URL,\nQR code, or messaging. The share URL points to a public page where\nrecipients can add the pass to Apple or Google Wallet without logging in.\n\nIdempotent — if the pass already has a share token, the existing token\nis returned (200) instead of creating a new one (201).\n\nFor dual-wallet passes (same serial number with both Apple and Google),\nthe share token is automatically applied to all sibling passes.\n\n**Scope:** `passes:manage`\n\nMaps to OpenAPI operationId `createShareToken` — POST /share-pass/create.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "pass_id": {
            "description": "ID of the pass to share.",
            "format": "uuid",
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "pass_id"
        ],
        "type": "object"
      },
      "name": "createShareToken"
    },
    {
      "description": "Create a template\n\nCreates a new pass template in draft status.\n\n**Scope:** `templates:manage`\n\nMaps to OpenAPI operationId `createTemplate` — POST /manage-templates.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "background_image_id": {
            "format": "uuid",
            "type": "string"
          },
          "description": {
            "description": "Optional description of the template.",
            "type": "string"
          },
          "field_schema": {
            "additionalProperties": true,
            "description": "Optional JSON schema for validating dynamic data.",
            "type": "object"
          },
          "google_logo_image_id": {
            "format": "uuid",
            "type": "string"
          },
          "google_pass_type": {
            "description": "Google Wallet class type override. If unset, PassFast auto-maps from\nthe Apple `pass_style` (+ `structure.transitType` for boardingPass):\n- `generic` → generic\n- `storeCard` → loyalty (or giftCard via override)\n- `eventTicket` → eventTicket\n- `coupon` → offer\n- `boardingPass` + transitType PKTransitTypeAir → flight\n- `boardingPass` + transitType Train/Bus/Boat/Generic → transit\n",
            "enum": [
              "generic",
              "loyalty",
              "eventTicket",
              "offer",
              "flight",
              "transit",
              "giftCard"
            ],
            "type": "string"
          },
          "google_wide_logo_image_id": {
            "format": "uuid",
            "type": "string"
          },
          "icon_image_id": {
            "format": "uuid",
            "type": "string"
          },
          "logo_image_id": {
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "description": "Human-readable template name.",
            "type": "string"
          },
          "pass_style": {
            "description": "Apple Wallet pass style.",
            "enum": [
              "boardingPass",
              "coupon",
              "eventTicket",
              "generic",
              "storeCard"
            ],
            "type": "string"
          },
          "strip_image_id": {
            "format": "uuid",
            "type": "string"
          },
          "structure": {
            "additionalProperties": true,
            "description": "Complete pass structure. Drives both Apple `pass.json` emission and\nGoogle Wallet class/object JSON. Fields are grouped below by platform,\nbut the single JSONB object carries all of them for dual-wallet templates.\n",
            "properties": {
              "accessibilityURL": {
                "format": "uri",
                "type": "string"
              },
              "addChangeInfoURL": {
                "format": "uri",
                "type": "string"
              },
              "addOnURL": {
                "format": "uri",
                "type": "string"
              },
              "additionalInfoFields": {
                "description": "Apple poster-style eventTicket only. Rendered inside the eventTicket object.",
                "items": {
                  "description": "A single field inside a pass. Used in `headerFields`, `primaryFields`,\n`secondaryFields`, `auxiliaryFields`, `backFields`, and\n`additionalInfoFields` (poster-style eventTicket only).\n",
                  "properties": {
                    "attributedValue": {
                      "description": "Apple: HTML-flavored value (used for rendering links, etc.).",
                      "type": "string"
                    },
                    "changeMessage": {
                      "description": "Apple: notification text when this field's value changes. Must contain `%@` placeholder for the new value.",
                      "type": "string"
                    },
                    "currencyCode": {
                      "description": "Apple: ISO 4217 currency code. Value is formatted as currency.",
                      "type": "string"
                    },
                    "dataDetectorTypes": {
                      "description": "Apple: back fields only. Limits which kinds of data are detected and linked.",
                      "items": {
                        "enum": [
                          "PKDataDetectorTypePhoneNumber",
                          "PKDataDetectorTypeLink",
                          "PKDataDetectorTypeAddress",
                          "PKDataDetectorTypeCalendarEvent"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "dataKey": {
                      "description": "PassFast-specific: name of a key in the generate-pass request\nbody's `data` object whose value should populate this field.\n",
                      "type": "string"
                    },
                    "dateStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "ignoresTimeZone": {
                      "description": "Apple: whether to display the date in the pass's local time rather than the user's.",
                      "type": "boolean"
                    },
                    "isRelative": {
                      "description": "Apple: whether the date is displayed relative to the current time.",
                      "type": "boolean"
                    },
                    "key": {
                      "description": "Unique key identifying the field. Must be unique across ALL field groups in a template.",
                      "type": "string"
                    },
                    "label": {
                      "description": "Human-readable label rendered above the value on the pass face.",
                      "type": "string"
                    },
                    "numberStyle": {
                      "enum": [
                        "PKNumberStyleDecimal",
                        "PKNumberStylePercent",
                        "PKNumberStyleScientific",
                        "PKNumberStyleSpellOut"
                      ],
                      "type": "string"
                    },
                    "row": {
                      "description": "Apple: auxiliary/secondary layout control (0 or 1).",
                      "enum": [
                        0,
                        1
                      ],
                      "type": "integer"
                    },
                    "semantics": {
                      "additionalProperties": true,
                      "description": "Apple: per-field semantic tags for Siri / Maps / Do-Not-Disturb integration.",
                      "type": "object"
                    },
                    "textAlignment": {
                      "enum": [
                        "PKTextAlignmentLeft",
                        "PKTextAlignmentCenter",
                        "PKTextAlignmentRight",
                        "PKTextAlignmentNatural"
                      ],
                      "type": "string"
                    },
                    "timeStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "value": {
                      "description": "Static value for the field. Number types are preserved for\nApple's `numberStyle` / `currencyCode` formatters. For dynamic\nvalues, omit `value` and set `dataKey` instead.\n",
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    }
                  },
                  "required": [
                    "key"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "appLaunchURL": {
                "format": "uri",
                "type": "string"
              },
              "associatedStoreIdentifiers": {
                "description": "Apple iTunes app IDs for 'Open in App'.",
                "items": {
                  "type": "integer"
                },
                "type": "array"
              },
              "auxiliaryFields": {
                "items": {
                  "description": "A single field inside a pass. Used in `headerFields`, `primaryFields`,\n`secondaryFields`, `auxiliaryFields`, `backFields`, and\n`additionalInfoFields` (poster-style eventTicket only).\n",
                  "properties": {
                    "attributedValue": {
                      "description": "Apple: HTML-flavored value (used for rendering links, etc.).",
                      "type": "string"
                    },
                    "changeMessage": {
                      "description": "Apple: notification text when this field's value changes. Must contain `%@` placeholder for the new value.",
                      "type": "string"
                    },
                    "currencyCode": {
                      "description": "Apple: ISO 4217 currency code. Value is formatted as currency.",
                      "type": "string"
                    },
                    "dataDetectorTypes": {
                      "description": "Apple: back fields only. Limits which kinds of data are detected and linked.",
                      "items": {
                        "enum": [
                          "PKDataDetectorTypePhoneNumber",
                          "PKDataDetectorTypeLink",
                          "PKDataDetectorTypeAddress",
                          "PKDataDetectorTypeCalendarEvent"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "dataKey": {
                      "description": "PassFast-specific: name of a key in the generate-pass request\nbody's `data` object whose value should populate this field.\n",
                      "type": "string"
                    },
                    "dateStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "ignoresTimeZone": {
                      "description": "Apple: whether to display the date in the pass's local time rather than the user's.",
                      "type": "boolean"
                    },
                    "isRelative": {
                      "description": "Apple: whether the date is displayed relative to the current time.",
                      "type": "boolean"
                    },
                    "key": {
                      "description": "Unique key identifying the field. Must be unique across ALL field groups in a template.",
                      "type": "string"
                    },
                    "label": {
                      "description": "Human-readable label rendered above the value on the pass face.",
                      "type": "string"
                    },
                    "numberStyle": {
                      "enum": [
                        "PKNumberStyleDecimal",
                        "PKNumberStylePercent",
                        "PKNumberStyleScientific",
                        "PKNumberStyleSpellOut"
                      ],
                      "type": "string"
                    },
                    "row": {
                      "description": "Apple: auxiliary/secondary layout control (0 or 1).",
                      "enum": [
                        0,
                        1
                      ],
                      "type": "integer"
                    },
                    "semantics": {
                      "additionalProperties": true,
                      "description": "Apple: per-field semantic tags for Siri / Maps / Do-Not-Disturb integration.",
                      "type": "object"
                    },
                    "textAlignment": {
                      "enum": [
                        "PKTextAlignmentLeft",
                        "PKTextAlignmentCenter",
                        "PKTextAlignmentRight",
                        "PKTextAlignmentNatural"
                      ],
                      "type": "string"
                    },
                    "timeStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "value": {
                      "description": "Static value for the field. Number types are preserved for\nApple's `numberStyle` / `currencyCode` formatters. For dynamic\nvalues, omit `value` and set `dataKey` instead.\n",
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    }
                  },
                  "required": [
                    "key"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "backFields": {
                "items": {
                  "description": "A single field inside a pass. Used in `headerFields`, `primaryFields`,\n`secondaryFields`, `auxiliaryFields`, `backFields`, and\n`additionalInfoFields` (poster-style eventTicket only).\n",
                  "properties": {
                    "attributedValue": {
                      "description": "Apple: HTML-flavored value (used for rendering links, etc.).",
                      "type": "string"
                    },
                    "changeMessage": {
                      "description": "Apple: notification text when this field's value changes. Must contain `%@` placeholder for the new value.",
                      "type": "string"
                    },
                    "currencyCode": {
                      "description": "Apple: ISO 4217 currency code. Value is formatted as currency.",
                      "type": "string"
                    },
                    "dataDetectorTypes": {
                      "description": "Apple: back fields only. Limits which kinds of data are detected and linked.",
                      "items": {
                        "enum": [
                          "PKDataDetectorTypePhoneNumber",
                          "PKDataDetectorTypeLink",
                          "PKDataDetectorTypeAddress",
                          "PKDataDetectorTypeCalendarEvent"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "dataKey": {
                      "description": "PassFast-specific: name of a key in the generate-pass request\nbody's `data` object whose value should populate this field.\n",
                      "type": "string"
                    },
                    "dateStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "ignoresTimeZone": {
                      "description": "Apple: whether to display the date in the pass's local time rather than the user's.",
                      "type": "boolean"
                    },
                    "isRelative": {
                      "description": "Apple: whether the date is displayed relative to the current time.",
                      "type": "boolean"
                    },
                    "key": {
                      "description": "Unique key identifying the field. Must be unique across ALL field groups in a template.",
                      "type": "string"
                    },
                    "label": {
                      "description": "Human-readable label rendered above the value on the pass face.",
                      "type": "string"
                    },
                    "numberStyle": {
                      "enum": [
                        "PKNumberStyleDecimal",
                        "PKNumberStylePercent",
                        "PKNumberStyleScientific",
                        "PKNumberStyleSpellOut"
                      ],
                      "type": "string"
                    },
                    "row": {
                      "description": "Apple: auxiliary/secondary layout control (0 or 1).",
                      "enum": [
                        0,
                        1
                      ],
                      "type": "integer"
                    },
                    "semantics": {
                      "additionalProperties": true,
                      "description": "Apple: per-field semantic tags for Siri / Maps / Do-Not-Disturb integration.",
                      "type": "object"
                    },
                    "textAlignment": {
                      "enum": [
                        "PKTextAlignmentLeft",
                        "PKTextAlignmentCenter",
                        "PKTextAlignmentRight",
                        "PKTextAlignmentNatural"
                      ],
                      "type": "string"
                    },
                    "timeStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "value": {
                      "description": "Static value for the field. Number types are preserved for\nApple's `numberStyle` / `currencyCode` formatters. For dynamic\nvalues, omit `value` and set `dataKey` instead.\n",
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    }
                  },
                  "required": [
                    "key"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "backgroundColor": {
                "description": "Accepts `#rrggbb`, `#rgb`, or `rgb(r,g,b)`. Apple emits `rgb(...)`; Google emits `#rrggbb`.",
                "type": "string"
              },
              "bagDropURL": {
                "format": "uri",
                "type": "string"
              },
              "baggagePolicyURL": {
                "format": "uri",
                "type": "string"
              },
              "balanceCurrencyCode": {
                "description": "ISO 4217 code used when `balance` is supplied as a plain number (dollars → micros).",
                "type": "string"
              },
              "balanceDataKey": {
                "type": "string"
              },
              "barcode": {
                "properties": {
                  "altText": {
                    "description": "Static alternate text. Only used when `altTextDataKey` is not set.",
                    "type": "string"
                  },
                  "altTextDataKey": {
                    "description": "Key in generate-pass `data` object whose value becomes the human-readable alt text.",
                    "type": "string"
                  },
                  "format": {
                    "description": "Apple Wallet barcode format. Automatically mapped to Google's equivalent (QR_CODE, PDF_417, AZTEC, CODE_128) when the template targets Google Wallet.",
                    "enum": [
                      "PKBarcodeFormatQR",
                      "PKBarcodeFormatPDF417",
                      "PKBarcodeFormatAztec",
                      "PKBarcodeFormatCode128"
                    ],
                    "type": "string"
                  },
                  "messageDataKey": {
                    "description": "Key in generate-pass `data` object that holds the barcode message.",
                    "type": "string"
                  },
                  "messageEncoding": {
                    "default": "iso-8859-1",
                    "description": "Text encoding for the barcode message. Default is `iso-8859-1` per Apple spec.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "beacons": {
                "items": {
                  "properties": {
                    "major": {
                      "type": "integer"
                    },
                    "minor": {
                      "type": "integer"
                    },
                    "proximityUUID": {
                      "format": "uuid",
                      "type": "string"
                    },
                    "relevantText": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "proximityUUID"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "callbackOptions": {
                "additionalProperties": true,
                "type": "object"
              },
              "cardNumberDataKey": {
                "type": "string"
              },
              "cardNumberLabel": {
                "type": "string"
              },
              "changeSeatURL": {
                "format": "uri",
                "type": "string"
              },
              "checkInURL": {
                "format": "uri",
                "type": "string"
              },
              "contactVenueEmail": {
                "format": "email",
                "type": "string"
              },
              "contactVenuePhoneNumber": {
                "type": "string"
              },
              "contactVenueWebsite": {
                "format": "uri",
                "type": "string"
              },
              "dateTimeEnd": {
                "format": "date-time",
                "type": "string"
              },
              "dateTimeStart": {
                "format": "date-time",
                "type": "string"
              },
              "description": {
                "description": "Apple top-level description. Defaults to 'PassFast Pass' if unset.",
                "type": "string"
              },
              "destination": {
                "properties": {
                  "airportIataCode": {
                    "description": "3-letter IATA airport code (e.g. `LHR`, `JFK`).",
                    "type": "string"
                  },
                  "gate": {
                    "type": "string"
                  },
                  "terminal": {
                    "type": "string"
                  }
                },
                "required": [
                  "airportIataCode"
                ],
                "type": "object"
              },
              "directionsInformationURL": {
                "format": "uri",
                "type": "string"
              },
              "discoverableProgram": {
                "additionalProperties": true,
                "description": "Google Loyalty: public program listing. Requires `countryCode` on the class (set via `discoverableProgram`).",
                "type": "object"
              },
              "doorsOpen": {
                "format": "date-time",
                "type": "string"
              },
              "enableSmartTap": {
                "type": "boolean"
              },
              "entertainmentURL": {
                "format": "uri",
                "type": "string"
              },
              "eventLogoText": {
                "type": "string"
              },
              "eventNumberDataKey": {
                "type": "string"
              },
              "eventNumberLabel": {
                "type": "string"
              },
              "flightHeader": {
                "properties": {
                  "carrier": {
                    "properties": {
                      "carrierIataCode": {
                        "description": "2-letter IATA carrier code (e.g. `BA`, `AA`).",
                        "type": "string"
                      }
                    },
                    "required": [
                      "carrierIataCode"
                    ],
                    "type": "object"
                  },
                  "flightNumber": {
                    "description": "Flight number (digits only per Google spec).",
                    "type": "string"
                  }
                },
                "required": [
                  "carrier",
                  "flightNumber"
                ],
                "type": "object"
              },
              "flightStatusURL": {
                "format": "uri",
                "type": "string"
              },
              "footerBackgroundColor": {
                "type": "string"
              },
              "foregroundColor": {
                "type": "string"
              },
              "gateDataKey": {
                "type": "string"
              },
              "googleLogoText": {
                "description": "Google: brand/card title (required for Google Wallet rendering).",
                "type": "string"
              },
              "googleTransitType": {
                "description": "Google Wallet transit class transitType enum. Auto-derived from Apple's `transitType` if not set explicitly.",
                "enum": [
                  "BUS",
                  "RAIL",
                  "TRAM",
                  "FERRY",
                  "OTHER"
                ],
                "type": "string"
              },
              "groupingIdentifier": {
                "description": "Apple: groups related passes. Also mapped to Google's `groupingInfo.groupingId` on the object.",
                "type": "string"
              },
              "headerFields": {
                "items": {
                  "description": "A single field inside a pass. Used in `headerFields`, `primaryFields`,\n`secondaryFields`, `auxiliaryFields`, `backFields`, and\n`additionalInfoFields` (poster-style eventTicket only).\n",
                  "properties": {
                    "attributedValue": {
                      "description": "Apple: HTML-flavored value (used for rendering links, etc.).",
                      "type": "string"
                    },
                    "changeMessage": {
                      "description": "Apple: notification text when this field's value changes. Must contain `%@` placeholder for the new value.",
                      "type": "string"
                    },
                    "currencyCode": {
                      "description": "Apple: ISO 4217 currency code. Value is formatted as currency.",
                      "type": "string"
                    },
                    "dataDetectorTypes": {
                      "description": "Apple: back fields only. Limits which kinds of data are detected and linked.",
                      "items": {
                        "enum": [
                          "PKDataDetectorTypePhoneNumber",
                          "PKDataDetectorTypeLink",
                          "PKDataDetectorTypeAddress",
                          "PKDataDetectorTypeCalendarEvent"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "dataKey": {
                      "description": "PassFast-specific: name of a key in the generate-pass request\nbody's `data` object whose value should populate this field.\n",
                      "type": "string"
                    },
                    "dateStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "ignoresTimeZone": {
                      "description": "Apple: whether to display the date in the pass's local time rather than the user's.",
                      "type": "boolean"
                    },
                    "isRelative": {
                      "description": "Apple: whether the date is displayed relative to the current time.",
                      "type": "boolean"
                    },
                    "key": {
                      "description": "Unique key identifying the field. Must be unique across ALL field groups in a template.",
                      "type": "string"
                    },
                    "label": {
                      "description": "Human-readable label rendered above the value on the pass face.",
                      "type": "string"
                    },
                    "numberStyle": {
                      "enum": [
                        "PKNumberStyleDecimal",
                        "PKNumberStylePercent",
                        "PKNumberStyleScientific",
                        "PKNumberStyleSpellOut"
                      ],
                      "type": "string"
                    },
                    "row": {
                      "description": "Apple: auxiliary/secondary layout control (0 or 1).",
                      "enum": [
                        0,
                        1
                      ],
                      "type": "integer"
                    },
                    "semantics": {
                      "additionalProperties": true,
                      "description": "Apple: per-field semantic tags for Siri / Maps / Do-Not-Disturb integration.",
                      "type": "object"
                    },
                    "textAlignment": {
                      "enum": [
                        "PKTextAlignmentLeft",
                        "PKTextAlignmentCenter",
                        "PKTextAlignmentRight",
                        "PKTextAlignmentNatural"
                      ],
                      "type": "string"
                    },
                    "timeStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "value": {
                      "description": "Static value for the field. Number types are preserved for\nApple's `numberStyle` / `currencyCode` formatters. For dynamic\nvalues, omit `value` and set `dataKey` instead.\n",
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    }
                  },
                  "required": [
                    "key"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "jumpToURL": {
                "format": "uri",
                "type": "string"
              },
              "labelColor": {
                "description": "Apple only — field label color.",
                "type": "string"
              },
              "liveBroadcastURL": {
                "format": "uri",
                "type": "string"
              },
              "localScheduledArrivalDateTime": {
                "description": "Google Flight: same format as departure.",
                "type": "string"
              },
              "localScheduledDepartureDateTime": {
                "description": "Google Flight: ISO 8601 **without** timezone offset (local airport time). Automatically stripped if a Z/offset is supplied.",
                "type": "string"
              },
              "locations": {
                "items": {
                  "properties": {
                    "altitude": {
                      "type": "number"
                    },
                    "latitude": {
                      "type": "number"
                    },
                    "longitude": {
                      "type": "number"
                    },
                    "relevantText": {
                      "description": "Apple: lock-screen text when the device enters this location.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "latitude",
                    "longitude"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "logoText": {
                "description": "Apple: text beside the logo on the pass face.",
                "type": "string"
              },
              "loyaltyPointsDataKey": {
                "type": "string"
              },
              "loyaltyPointsLabel": {
                "type": "string"
              },
              "maxDistance": {
                "description": "Apple only — max distance (meters) for location relevance.",
                "type": "integer"
              },
              "merchandiseURL": {
                "format": "uri",
                "type": "string"
              },
              "messages": {
                "description": "Google class-level messages.",
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              "nfc": {
                "properties": {
                  "encryptionPublicKey": {
                    "description": "ECC P-256 public key (base64-encoded) for encrypting the NFC payload.",
                    "type": "string"
                  },
                  "message": {
                    "description": "The data transmitted during an NFC interaction.",
                    "type": "string"
                  },
                  "requiresAuthentication": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "message"
                ],
                "type": "object"
              },
              "objectMessages": {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              "orderFoodURL": {
                "format": "uri",
                "type": "string"
              },
              "organizationName": {
                "description": "Apple top-level org name. Defaults to 'PassFast' if unset.",
                "type": "string"
              },
              "origin": {
                "properties": {
                  "airportIataCode": {
                    "description": "3-letter IATA airport code (e.g. `LHR`, `JFK`).",
                    "type": "string"
                  },
                  "gate": {
                    "type": "string"
                  },
                  "terminal": {
                    "type": "string"
                  }
                },
                "required": [
                  "airportIataCode"
                ],
                "type": "object"
              },
              "parkingInformationURL": {
                "format": "uri",
                "type": "string"
              },
              "pinDataKey": {
                "type": "string"
              },
              "pinLabel": {
                "type": "string"
              },
              "primaryFields": {
                "items": {
                  "description": "A single field inside a pass. Used in `headerFields`, `primaryFields`,\n`secondaryFields`, `auxiliaryFields`, `backFields`, and\n`additionalInfoFields` (poster-style eventTicket only).\n",
                  "properties": {
                    "attributedValue": {
                      "description": "Apple: HTML-flavored value (used for rendering links, etc.).",
                      "type": "string"
                    },
                    "changeMessage": {
                      "description": "Apple: notification text when this field's value changes. Must contain `%@` placeholder for the new value.",
                      "type": "string"
                    },
                    "currencyCode": {
                      "description": "Apple: ISO 4217 currency code. Value is formatted as currency.",
                      "type": "string"
                    },
                    "dataDetectorTypes": {
                      "description": "Apple: back fields only. Limits which kinds of data are detected and linked.",
                      "items": {
                        "enum": [
                          "PKDataDetectorTypePhoneNumber",
                          "PKDataDetectorTypeLink",
                          "PKDataDetectorTypeAddress",
                          "PKDataDetectorTypeCalendarEvent"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "dataKey": {
                      "description": "PassFast-specific: name of a key in the generate-pass request\nbody's `data` object whose value should populate this field.\n",
                      "type": "string"
                    },
                    "dateStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "ignoresTimeZone": {
                      "description": "Apple: whether to display the date in the pass's local time rather than the user's.",
                      "type": "boolean"
                    },
                    "isRelative": {
                      "description": "Apple: whether the date is displayed relative to the current time.",
                      "type": "boolean"
                    },
                    "key": {
                      "description": "Unique key identifying the field. Must be unique across ALL field groups in a template.",
                      "type": "string"
                    },
                    "label": {
                      "description": "Human-readable label rendered above the value on the pass face.",
                      "type": "string"
                    },
                    "numberStyle": {
                      "enum": [
                        "PKNumberStyleDecimal",
                        "PKNumberStylePercent",
                        "PKNumberStyleScientific",
                        "PKNumberStyleSpellOut"
                      ],
                      "type": "string"
                    },
                    "row": {
                      "description": "Apple: auxiliary/secondary layout control (0 or 1).",
                      "enum": [
                        0,
                        1
                      ],
                      "type": "integer"
                    },
                    "semantics": {
                      "additionalProperties": true,
                      "description": "Apple: per-field semantic tags for Siri / Maps / Do-Not-Disturb integration.",
                      "type": "object"
                    },
                    "textAlignment": {
                      "enum": [
                        "PKTextAlignmentLeft",
                        "PKTextAlignmentCenter",
                        "PKTextAlignmentRight",
                        "PKTextAlignmentNatural"
                      ],
                      "type": "string"
                    },
                    "timeStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "value": {
                      "description": "Static value for the field. Number types are preserved for\nApple's `numberStyle` / `currencyCode` formatters. For dynamic\nvalues, omit `value` and set `dataKey` instead.\n",
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    }
                  },
                  "required": [
                    "key"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "purchaseParkingURL": {
                "format": "uri",
                "type": "string"
              },
              "redemptionChannel": {
                "description": "Google Wallet OfferClass redemption channel.",
                "enum": [
                  "INSTORE",
                  "ONLINE",
                  "BOTH",
                  "TEMPORARY_PRICE_REDUCTION"
                ],
                "type": "string"
              },
              "relevantDate": {
                "description": "ISO 8601 datetime with timezone suffix. Naive datetimes (no Z/offset) are rejected.",
                "format": "date-time",
                "type": "string"
              },
              "relevantDates": {
                "description": "Apple plural relevantDates[] — multiple time windows. Entries without timezone are filtered out.",
                "items": {
                  "oneOf": [
                    {
                      "format": "date-time",
                      "type": "string"
                    },
                    {
                      "properties": {
                        "endDate": {
                          "format": "date-time",
                          "type": "string"
                        },
                        "startDate": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  ]
                },
                "type": "array"
              },
              "rotatingBarcode": {
                "description": "Google Wallet rotating barcode (TOTP-based). Supply a pre-configured\nobject; PassFast does not synthesize the HMAC secret.\n",
                "properties": {
                  "totpDetails": {
                    "properties": {
                      "algorithm": {
                        "enum": [
                          "TOTP_SHA1",
                          "TOTP_SHA256",
                          "TOTP_SHA512"
                        ],
                        "type": "string"
                      },
                      "parameters": {
                        "items": {
                          "properties": {
                            "key": {
                              "description": "Base16 (hex) encoded TOTP secret.",
                              "type": "string"
                            },
                            "valueLength": {
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "periodMillis": {
                        "description": "TOTP period as a string of milliseconds (e.g. `\"30000\"`).",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": {
                    "enum": [
                      "QR_CODE",
                      "AZTEC",
                      "PDF_417",
                      "CODE_128",
                      "DATA_MATRIX"
                    ],
                    "type": "string"
                  },
                  "valuePattern": {
                    "description": "Pattern for the rotating value, e.g. `rotating-{totp_value}`.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rowDataKey": {
                "type": "string"
              },
              "seatDataKey": {
                "type": "string"
              },
              "seatUpgradeURL": {
                "format": "uri",
                "type": "string"
              },
              "secondaryFields": {
                "items": {
                  "description": "A single field inside a pass. Used in `headerFields`, `primaryFields`,\n`secondaryFields`, `auxiliaryFields`, `backFields`, and\n`additionalInfoFields` (poster-style eventTicket only).\n",
                  "properties": {
                    "attributedValue": {
                      "description": "Apple: HTML-flavored value (used for rendering links, etc.).",
                      "type": "string"
                    },
                    "changeMessage": {
                      "description": "Apple: notification text when this field's value changes. Must contain `%@` placeholder for the new value.",
                      "type": "string"
                    },
                    "currencyCode": {
                      "description": "Apple: ISO 4217 currency code. Value is formatted as currency.",
                      "type": "string"
                    },
                    "dataDetectorTypes": {
                      "description": "Apple: back fields only. Limits which kinds of data are detected and linked.",
                      "items": {
                        "enum": [
                          "PKDataDetectorTypePhoneNumber",
                          "PKDataDetectorTypeLink",
                          "PKDataDetectorTypeAddress",
                          "PKDataDetectorTypeCalendarEvent"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "dataKey": {
                      "description": "PassFast-specific: name of a key in the generate-pass request\nbody's `data` object whose value should populate this field.\n",
                      "type": "string"
                    },
                    "dateStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "ignoresTimeZone": {
                      "description": "Apple: whether to display the date in the pass's local time rather than the user's.",
                      "type": "boolean"
                    },
                    "isRelative": {
                      "description": "Apple: whether the date is displayed relative to the current time.",
                      "type": "boolean"
                    },
                    "key": {
                      "description": "Unique key identifying the field. Must be unique across ALL field groups in a template.",
                      "type": "string"
                    },
                    "label": {
                      "description": "Human-readable label rendered above the value on the pass face.",
                      "type": "string"
                    },
                    "numberStyle": {
                      "enum": [
                        "PKNumberStyleDecimal",
                        "PKNumberStylePercent",
                        "PKNumberStyleScientific",
                        "PKNumberStyleSpellOut"
                      ],
                      "type": "string"
                    },
                    "row": {
                      "description": "Apple: auxiliary/secondary layout control (0 or 1).",
                      "enum": [
                        0,
                        1
                      ],
                      "type": "integer"
                    },
                    "semantics": {
                      "additionalProperties": true,
                      "description": "Apple: per-field semantic tags for Siri / Maps / Do-Not-Disturb integration.",
                      "type": "object"
                    },
                    "textAlignment": {
                      "enum": [
                        "PKTextAlignmentLeft",
                        "PKTextAlignmentCenter",
                        "PKTextAlignmentRight",
                        "PKTextAlignmentNatural"
                      ],
                      "type": "string"
                    },
                    "timeStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "value": {
                      "description": "Static value for the field. Number types are preserved for\nApple's `numberStyle` / `currencyCode` formatters. For dynamic\nvalues, omit `value` and set `dataKey` instead.\n",
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    }
                  },
                  "required": [
                    "key"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "secondaryLoyaltyPointsDataKey": {
                "type": "string"
              },
              "secondaryLoyaltyPointsLabel": {
                "type": "string"
              },
              "sectionDataKey": {
                "type": "string"
              },
              "securityAnimation": {
                "additionalProperties": true,
                "type": "object"
              },
              "sellURL": {
                "format": "uri",
                "type": "string"
              },
              "semantics": {
                "additionalProperties": true,
                "description": "Apple: top-level semantic tags (event, transit, balance categories).",
                "type": "object"
              },
              "shoppingURL": {
                "format": "uri",
                "type": "string"
              },
              "smartTapRedemptionDataKey": {
                "type": "string"
              },
              "smartTapRedemptionValue": {
                "type": "string"
              },
              "suppressHeaderDarkening": {
                "type": "boolean"
              },
              "suppressStripShine": {
                "type": "boolean"
              },
              "ticketHolderNameDataKey": {
                "type": "string"
              },
              "ticketNumberDataKey": {
                "type": "string"
              },
              "trackBagsURL": {
                "format": "uri",
                "type": "string"
              },
              "transferURL": {
                "format": "uri",
                "type": "string"
              },
              "transitInformationURL": {
                "format": "uri",
                "type": "string"
              },
              "transitOperatorName": {
                "type": "string"
              },
              "transitType": {
                "description": "Apple Wallet transitType enum. Required for `boardingPass` templates at publish.",
                "enum": [
                  "PKTransitTypeAir",
                  "PKTransitTypeTrain",
                  "PKTransitTypeBus",
                  "PKTransitTypeBoat",
                  "PKTransitTypeGeneric"
                ],
                "type": "string"
              },
              "tripType": {
                "enum": [
                  "ROUND_TRIP",
                  "ONE_WAY"
                ],
                "type": "string"
              },
              "useAutomaticColors": {
                "type": "boolean"
              },
              "venueAddress": {
                "type": "string"
              },
              "venueName": {
                "type": "string"
              },
              "viewUnlockRequirement": {
                "enum": [
                  "UNLOCK_REQUIRED_TO_VIEW",
                  "VIEW_UNLOCK_REQUIREMENT_UNSPECIFIED"
                ],
                "type": "string"
              }
            },
            "required": [
              "backgroundColor",
              "foregroundColor"
            ],
            "type": "object"
          },
          "thumbnail_image_id": {
            "format": "uuid",
            "type": "string"
          },
          "wallet_types": {
            "default": [
              "apple"
            ],
            "items": {
              "enum": [
                "apple",
                "google"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "name",
          "pass_style",
          "structure"
        ],
        "type": "object"
      },
      "name": "createTemplate"
    },
    {
      "description": "Deactivate Google credential\n\nDeactivates a Google Wallet credential.\n\n**Scope:** `certs:manage`\n\nMaps to OpenAPI operationId `deactivateGoogleCredential` — DELETE /manage-certs/google/{id}.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Google credential ID.",
            "format": "uuid",
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "deactivateGoogleCredential"
    },
    {
      "description": "Delete an API key\n\nPermanently deletes an API key. The key **must be revoked first**\n(via PATCH) before it can be deleted. Attempting to delete an active\nkey returns 400.\n\n**Scope:** `org:manage`\n\nMaps to OpenAPI operationId `deleteApiKey` — DELETE /manage-keys/{id}.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "API key ID.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "deleteApiKey"
    },
    {
      "description": "Deactivate an app\n\nDeactivates the current app. This does not permanently delete data.\n\n**Scope:** `org:manage`\n\nMaps to OpenAPI operationId `deleteApp` — DELETE /manage-org/app.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "deleteApp"
    },
    {
      "description": "Delete a certificate\n\nDeletes a certificate.\n\n**Scope:** `certs:manage`\n\nMaps to OpenAPI operationId `deleteCertificate` — DELETE /manage-certs/{id}.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Certificate ID.",
            "format": "uuid",
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "deleteCertificate"
    },
    {
      "description": "Delete an image\n\nDeletes an image (storage file + DB row). Always succeeds when the image exists.\n\nAny template column pointing at this image is silently cleared (the template\nfalls back to no image in that slot — re-attach a new one if needed).\nAny pass with `strip_image_id` pointing at this image has its override nullified\nand reverts to the template's strip on next render.\n\nUse `GET /manage-images/{id}/usage` first if you need to know the blast radius\nbefore deleting.\n\n**Scope:** `images:manage`\n\nMaps to OpenAPI operationId `deleteImage` — DELETE /manage-images/{id}.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Image ID.",
            "format": "uuid",
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "deleteImage"
    },
    {
      "description": "Delete a template\n\nSoft-deletes a template by marking it as archived. Use `permanent=true`\nto permanently delete the template and its associated data.\n\n**Scope:** `templates:manage`\n\nMaps to OpenAPI operationId `deleteTemplate` — DELETE /manage-templates/{id}.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Template ID.",
            "format": "uuid",
            "type": "string"
          },
          "permanent": {
            "default": false,
            "description": "When true, permanently deletes the template instead of archiving it.",
            "type": "boolean"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "deleteTemplate"
    },
    {
      "description": "Download a .pkpass file\n\nDownloads the `.pkpass` binary for an active pass.\n\n**Scope:** `passes:download`\n\nMaps to OpenAPI operationId `downloadPass` — GET /manage-passes/{id}/download.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Pass ID.",
            "format": "uuid",
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "downloadPass"
    },
    {
      "description": "Download a .pkpass file by serial number\n\nDownloads the `.pkpass` binary for an active pass looked up by serial number.\nWhen a serial has both Apple and Google passes, use `?wallet_type=` to select which one (defaults to `apple`).\n\n**Scope:** `passes:download`\n\nMaps to OpenAPI operationId `downloadPassBySerial` — GET /manage-passes/serial/{serial_number}/download.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "serial_number": {
            "description": "Pass serial number (unique within app + wallet type).",
            "type": "string"
          },
          "wallet_type": {
            "default": "apple",
            "description": "Wallet type to look up when a serial number has both Apple and Google passes.\nDefaults to `apple` for backward compatibility.\n",
            "enum": [
              "apple",
              "google"
            ],
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "serial_number"
        ],
        "type": "object"
      },
      "name": "downloadPassBySerial"
    },
    {
      "description": "Download shared Apple .pkpass\n\nDownloads the Apple `.pkpass` file for a shared pass. No authentication\nrequired. Only works for active Apple passes.\n\nMaps to OpenAPI operationId `downloadSharedPass` — GET /share-pass/{token}/download. Public endpoint — no API key required.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "token": {
            "description": "Share token (32 hex characters).",
            "type": "string"
          }
        },
        "required": [
          "token"
        ],
        "type": "object"
      },
      "name": "downloadSharedPass"
    },
    {
      "description": "Generate a wallet pass\n\nGenerates a wallet pass from a published template. For Apple passes (default),\nreturns a signed `.pkpass` binary file directly. For Google passes\n(`wallet_type: \"google\"`), returns a JSON object containing a `save_url`\nthat the user can open to add the pass to Google Wallet.\n\nWhen `wallet_type: \"both\"`, generates both Apple and Google passes in a single\ncall. The response is always JSON with `apple` and `google` keys. Partial success\nis allowed — if one wallet fails, the other is still returned with a warning.\nReturns 201 if at least one succeeds.\n\nThe pass ID is returned in the `X-Pass-Id` response header (for single-wallet).\n\nIf the app has a validation webhook configured, the webhook is called once\nbefore generation (not per wallet type). A webhook rejection returns 403;\na webhook error returns 502 (fail-closed).\n\n**Scope:** `passes:create`\n\nMaps to OpenAPI operationId `generatePass` — POST /generate-pass.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "data": {
            "additionalProperties": true,
            "description": "Dynamic field values merged into the template structure.",
            "type": "object"
          },
          "expires_at": {
            "description": "Optional expiration timestamp for the pass.",
            "format": "date-time",
            "type": "string"
          },
          "external_id": {
            "description": "Optional external identifier for cross-system lookups.",
            "type": "string"
          },
          "get_or_create": {
            "default": false,
            "description": "When true, if a pass with the same serial_number already exists and is active,\nreturn the existing .pkpass (200) instead of a 409 error. The response includes\nan `X-Pass-Existed: true` header. If the existing pass is voided/expired,\nreturns 409. When false (default), duplicate serials always return 409.\n",
            "type": "boolean"
          },
          "locations": {
            "description": "GPS locations where the pass is relevant (shown on lock screen).\nOverrides template defaults if provided.\n",
            "items": {
              "properties": {
                "altitude": {
                  "description": "Altitude in meters (optional).",
                  "type": "number"
                },
                "latitude": {
                  "description": "Latitude in degrees.",
                  "type": "number"
                },
                "longitude": {
                  "description": "Longitude in degrees.",
                  "type": "number"
                },
                "relevantText": {
                  "description": "Text displayed on lock screen when user is near this location.",
                  "type": "string"
                }
              },
              "required": [
                "latitude",
                "longitude"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "max_distance": {
            "description": "Maximum distance in meters from a location for lock screen relevance.",
            "type": "number"
          },
          "relevant_date": {
            "description": "ISO 8601 date when the pass is relevant (appears on lock screen).",
            "format": "date-time",
            "type": "string"
          },
          "serial_number": {
            "description": "Unique serial number for this pass.",
            "type": "string"
          },
          "strip_image_id": {
            "description": "Override the template's strip/hero image for this pass only. The referenced\nimage must belong to the same app and have purpose `strip` (or a `strip_*`\nvariant). Applied to Apple `strip.png` and Google `heroImage` atomically\n(same value for both wallets in `wallet_type: \"both\"`). Omit or send `null`\nto use the template's strip image.\n",
            "format": "uuid",
            "type": "string"
          },
          "template_id": {
            "description": "ID of the published template to use.",
            "format": "uuid",
            "type": "string"
          },
          "wallet_type": {
            "default": "apple",
            "description": "Target wallet platform. Defaults to `apple`. When set to `google`,\nthe response is a JSON object with a `save_url` instead of a binary .pkpass file.\nWhen set to `both`, generates both Apple and Google passes in one call and\nreturns a JSON object with `apple`, `google`, and `warnings` keys.\n",
            "enum": [
              "apple",
              "google",
              "both"
            ],
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "template_id",
          "serial_number",
          "data"
        ],
        "type": "object"
      },
      "name": "generatePass"
    },
    {
      "description": "Get current app details\n\nReturns the current app's settings.\n\n**Scope:** `org:read`\n\nMaps to OpenAPI operationId `getApp` — GET /manage-org/app.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "getApp"
    },
    {
      "description": "Batch generate limits\n\nPublic metadata for `POST /passes/batch`. No authentication.\n\nReturns the hard row cap (100), sync mode, auth summary, and stable\nerror codes. This path is on the site host (`https://passfa.st/api`),\nnot `https://api.passfa.st/functions/v1`. MCP tool:\n`getBatchGenerateLimits`.\n\nMaps to OpenAPI operationId `getBatchGenerateLimits` — GET /passes/batch. Public endpoint — no API key required.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "getBatchGenerateLimits"
    },
    {
      "description": "Get image usage / reference counts\n\nReport how an image is referenced across templates and passes. Useful before\nDELETE to confirm an image is unused, or to find which templates a shared\nasset is attached to.\n\n- `template_refs` lists every template column (e.g. `strip_image_id`,\n  `icon_image_id`, `google_logo_image_id`) that references this image.\n- `pass_refs_count` is the number of passes whose per-pass `strip_image_id`\n  points at this image.\n- `safe_to_delete` is `true` when `total_refs` is 0.\n\n**Scope:** `images:manage`\n\nMaps to OpenAPI operationId `getImageUsage` — GET /manage-images/{id}/usage.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Image ID.",
            "format": "uuid",
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "getImageUsage"
    },
    {
      "description": "Check managed signing availability\n\nReturns whether managed (platform) signing credentials are available\nfor Apple and Google wallets. When `apple_ready` or `google_ready` is\n`true`, apps can use `signing_mode: \"managed\"` or\n`google_signing_mode: \"managed\"` without uploading their own credentials.\n\n**Scope:** `org:read`\n\nMaps to OpenAPI operationId `getManagedSigningStatus` — GET /manage-org/managed-signing-status.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "getManagedSigningStatus"
    },
    {
      "description": "Get organization details\n\nReturns the current organization's settings.\n\n**Scope:** `org:read`\n\nMaps to OpenAPI operationId `getOrganization` — GET /manage-org.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "getOrganization"
    },
    {
      "description": "Get a pass\n\nReturns the full details of a single pass.\n\n**Scope:** `passes:read`\n\nMaps to OpenAPI operationId `getPass` — GET /manage-passes/{id}.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Pass ID.",
            "format": "uuid",
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "getPass"
    },
    {
      "description": "Get a pass by serial number\n\nReturns the full details of a single pass looked up by serial number.\nWhen a serial has both Apple and Google passes, use `?wallet_type=` to select which one (defaults to `apple`).\n\n**Scope:** `passes:read`\n\nMaps to OpenAPI operationId `getPassBySerial` — GET /manage-passes/serial/{serial_number}.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "serial_number": {
            "description": "Pass serial number (unique within app + wallet type).",
            "type": "string"
          },
          "wallet_type": {
            "default": "apple",
            "description": "Wallet type to look up when a serial number has both Apple and Google passes.\nDefaults to `apple` for backward compatibility.\n",
            "enum": [
              "apple",
              "google"
            ],
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "serial_number"
        ],
        "type": "object"
      },
      "name": "getPassBySerial"
    },
    {
      "description": "Get shared pass metadata\n\nReturns public metadata for a shared pass. No authentication required.\nUsed by the public share page to display wallet buttons and pass info.\n\nMaps to OpenAPI operationId `getSharePassMetadata` — GET /share-pass/{token}. Public endpoint — no API key required.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "token": {
            "description": "Share token (32 hex characters).",
            "type": "string"
          }
        },
        "required": [
          "token"
        ],
        "type": "object"
      },
      "name": "getSharePassMetadata"
    },
    {
      "description": "Get a template\n\nReturns the full details of a single template.\n\n**Scope:** `templates:manage`\n\nMaps to OpenAPI operationId `getTemplate` — GET /manage-templates/{id}.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Template ID.",
            "format": "uuid",
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "getTemplate"
    },
    {
      "description": "List API keys\n\nReturns all API keys for the current organization.\n\n**Scope:** `org:manage`\n\nMaps to OpenAPI operationId `listApiKeys` — GET /manage-keys.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "listApiKeys"
    },
    {
      "description": "List certificates\n\nReturns all certificates for the current app.\n\n**Scope:** `certs:manage`\n\nMaps to OpenAPI operationId `listCertificates` — GET /manage-certs.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "listCertificates"
    },
    {
      "description": "List Google credentials\n\nReturns all active Google Wallet credentials for the current app.\n\n**Scope:** `certs:manage`\n\nMaps to OpenAPI operationId `listGoogleCredentials` — GET /manage-certs/google.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "listGoogleCredentials"
    },
    {
      "description": "List images\n\nReturns all images for the current app, including signed preview URLs.\n\n**Scope:** `images:manage`\n\nMaps to OpenAPI operationId `listImages` — GET /manage-images.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "listImages"
    },
    {
      "description": "List passes\n\nReturns a paginated list of passes for the current app.\n\n**Scope:** `passes:read`\n\nMaps to OpenAPI operationId `listPasses` — GET /manage-passes.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "created_after": {
            "description": "Only return passes created after this timestamp.",
            "format": "date-time",
            "type": "string"
          },
          "created_before": {
            "description": "Only return passes created before this timestamp.",
            "format": "date-time",
            "type": "string"
          },
          "external_id": {
            "description": "Filter by external ID.",
            "type": "string"
          },
          "limit": {
            "default": 50,
            "description": "Maximum number of results to return.",
            "type": "integer"
          },
          "offset": {
            "default": 0,
            "description": "Number of results to skip.",
            "type": "integer"
          },
          "serial_number": {
            "description": "Filter by serial number.",
            "type": "string"
          },
          "status": {
            "description": "Filter by pass status.",
            "enum": [
              "active",
              "invalidated",
              "expired"
            ],
            "type": "string"
          },
          "template_id": {
            "description": "Filter by template ID.",
            "format": "uuid",
            "type": "string"
          },
          "wallet_type": {
            "description": "Filter by wallet platform type.",
            "enum": [
              "apple",
              "google"
            ],
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "listPasses"
    },
    {
      "description": "List templates\n\nReturns all templates for the current app. By default returns non-archived\ntemplates. Set `archived=true` to return only archived templates.\n\n**Scope:** `templates:manage`\n\nMaps to OpenAPI operationId `listTemplates` — GET /manage-templates.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "archived": {
            "default": false,
            "description": "When true, return only archived templates instead of active ones.",
            "type": "boolean"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "listTemplates"
    },
    {
      "description": "List webhook events\n\nReturns a paginated list of webhook event delivery records for the current app.\n\n**Scope:** `org:read`\n\nMaps to OpenAPI operationId `listWebhookEvents` — GET /manage-org/webhook-events.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "delivery_status": {
            "description": "Filter by delivery status.",
            "enum": [
              "pending",
              "delivered",
              "failed"
            ],
            "type": "string"
          },
          "event_type": {
            "description": "Filter by event type.",
            "enum": [
              "pass.created",
              "pass.updated",
              "pass.voided",
              "pass.expired",
              "device.registered",
              "device.unregistered"
            ],
            "type": "string"
          },
          "limit": {
            "default": 50,
            "description": "Maximum number of results to return.",
            "type": "integer"
          },
          "offset": {
            "default": 0,
            "description": "Number of results to skip.",
            "type": "integer"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "listWebhookEvents"
    },
    {
      "description": "Publish a template\n\nPublishes a draft template, making it available for pass generation.\nPublished templates cannot be modified.\n\n**Scope:** `templates:manage`\n\nMaps to OpenAPI operationId `publishTemplate` — POST /manage-templates/{id}/publish.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Template ID.",
            "format": "uuid",
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "publishTemplate"
    },
    {
      "description": "Revoke an API key\n\nRevokes an API key, making it inactive. Revoked keys cannot authenticate.\n\n**Scope:** `org:manage`\n\nMaps to OpenAPI operationId `revokeApiKey` — PATCH /manage-keys/{id}.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "API key ID.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "revokeApiKey"
    },
    {
      "description": "Test Apple certificates\n\nGenerates an ephemeral test `.pkpass` file to verify that the uploaded\nApple signing certificates are valid and complete. The test pass is\nnot stored — it is returned directly as a binary download.\n\n**Scope:** `certs:manage`\n\nMaps to OpenAPI operationId `testAppleCertificates` — POST /manage-certs/test.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "testAppleCertificates"
    },
    {
      "description": "Test Google connection\n\nTests the configured Google Wallet credentials by attempting to\nauthenticate with the Google Wallet API.\n\n**Scope:** `certs:manage`\n\nMaps to OpenAPI operationId `testGoogleConnection` — POST /manage-certs/google/test.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "testGoogleConnection"
    },
    {
      "description": "Test the validation webhook\n\nSends a sample validation webhook payload to the configured URL\nand returns the result.\n\n**Scope:** `org:manage`\n\nMaps to OpenAPI operationId `testWebhook` — POST /manage-org/app/test-webhook.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "testWebhook"
    },
    {
      "description": "Update app settings\n\nUpdates the current app's settings, including webhook configuration.\nSet `regenerate_webhook_secret` to `true` to generate a new webhook\nsigning secret; the new secret is returned in `webhook_secret_raw`\n(shown only once).\n\n**Scope:** `org:manage`\n\nMaps to OpenAPI operationId `updateApp` — PATCH /manage-org/app.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "apple_team_id": {
            "description": "Apple Developer Team ID.",
            "type": "string"
          },
          "google_signing_mode": {
            "description": "Google signing mode. `managed` uses platform credentials; `custom` uses your own.",
            "enum": [
              "managed",
              "custom"
            ],
            "type": "string"
          },
          "name": {
            "description": "App display name.",
            "type": "string"
          },
          "onboarding_completed": {
            "description": "Whether onboarding has been completed for this app.",
            "type": "boolean"
          },
          "pass_type_identifier": {
            "description": "Apple pass type identifier (e.g., pass.com.example.myapp).",
            "type": "string"
          },
          "regenerate_webhook_secret": {
            "description": "Set to true to regenerate the webhook signing secret.",
            "type": "boolean"
          },
          "signing_mode": {
            "description": "Apple signing mode. `managed` uses platform credentials; `custom` uses your own.",
            "enum": [
              "managed",
              "custom"
            ],
            "type": "string"
          },
          "validation_webhook_url": {
            "description": "URL for pre-generation validation webhooks.",
            "format": "uri",
            "type": "string"
          },
          "webhook_url": {
            "description": "URL for async event webhook delivery.",
            "format": "uri",
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "updateApp"
    },
    {
      "description": "Update organization settings\n\nUpdates the current organization's settings, including APNs credentials.\n\n**Scope:** `org:manage`\n\nMaps to OpenAPI operationId `updateOrganization` — PATCH /manage-org.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "apns_key_id": {
            "description": "Apple Push Notification service Key ID.",
            "type": "string"
          },
          "apns_key_p8": {
            "description": "APNs .p8 private key contents.",
            "type": "string"
          },
          "name": {
            "description": "Organization display name.",
            "type": "string"
          },
          "slug": {
            "description": "URL-friendly slug.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "updateOrganization"
    },
    {
      "description": "Update a pass\n\nUpdates the dynamic data of an active pass. Optionally sends a push\nnotification to registered devices so they fetch the updated pass.\nAt least one of `data`, `expires_at`, `locations`, `relevant_date`,\nor `max_distance` is required.\n\n**Scope:** `passes:manage`\n\nMaps to OpenAPI operationId `updatePass` — PATCH /manage-passes/{id}.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "data": {
            "additionalProperties": true,
            "description": "New dynamic field values to merge into the pass.",
            "type": "object"
          },
          "expires_at": {
            "description": "Expiration timestamp (set to null to remove expiration).",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "Pass ID.",
            "format": "uuid",
            "type": "string"
          },
          "locations": {
            "description": "GPS locations where the pass is relevant (overrides template defaults).",
            "items": {
              "properties": {
                "altitude": {
                  "type": "number"
                },
                "latitude": {
                  "type": "number"
                },
                "longitude": {
                  "type": "number"
                },
                "relevantText": {
                  "type": "string"
                }
              },
              "required": [
                "latitude",
                "longitude"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "max_distance": {
            "description": "Maximum distance in meters from a location for lock screen relevance.",
            "type": "number"
          },
          "push_update": {
            "default": false,
            "description": "If true, send a push notification to registered devices.",
            "type": "boolean"
          },
          "relevant_date": {
            "description": "ISO 8601 date when the pass is relevant (lock screen).",
            "format": "date-time",
            "type": "string"
          },
          "strip_image_id": {
            "description": "Override the template's strip/hero image for this pass. The referenced\nimage must belong to the same app and have purpose `strip` (or a `strip_*`\nvariant). Applied to Apple `strip.png` and Google `heroImage` atomically\n(synced to the sibling pass for dual-wallet). Send `null` to clear the\noverride and revert to the template's strip image. Omit the field to\nleave the current override unchanged.\n",
            "format": "uuid",
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "updatePass"
    },
    {
      "description": "Update a pass by serial number\n\nUpdates the dynamic data of an active pass looked up by serial number.\nOptionally sends a push notification to registered devices.\nAt least one of `data`, `expires_at`, `locations`, `relevant_date`,\nor `max_distance` is required.\nWhen a serial has both Apple and Google passes, use `?wallet_type=` to select which one (defaults to `apple`).\n\n**Scope:** `passes:manage`\n\nMaps to OpenAPI operationId `updatePassBySerial` — PATCH /manage-passes/serial/{serial_number}.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "data": {
            "additionalProperties": true,
            "description": "New dynamic field values to merge into the pass.",
            "type": "object"
          },
          "expires_at": {
            "description": "Expiration timestamp (set to null to remove expiration).",
            "format": "date-time",
            "type": "string"
          },
          "locations": {
            "description": "GPS locations where the pass is relevant (overrides template defaults).",
            "items": {
              "properties": {
                "altitude": {
                  "type": "number"
                },
                "latitude": {
                  "type": "number"
                },
                "longitude": {
                  "type": "number"
                },
                "relevantText": {
                  "type": "string"
                }
              },
              "required": [
                "latitude",
                "longitude"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "max_distance": {
            "description": "Maximum distance in meters from a location for lock screen relevance.",
            "type": "number"
          },
          "push_update": {
            "default": false,
            "description": "If true, send a push notification to registered devices.",
            "type": "boolean"
          },
          "relevant_date": {
            "description": "ISO 8601 date when the pass is relevant (lock screen).",
            "format": "date-time",
            "type": "string"
          },
          "serial_number": {
            "description": "Pass serial number (unique within app + wallet type).",
            "type": "string"
          },
          "strip_image_id": {
            "description": "Override the template's strip/hero image for this pass. The referenced\nimage must belong to the same app and have purpose `strip` (or a `strip_*`\nvariant). Applied to Apple `strip.png` and Google `heroImage` atomically\n(synced to the sibling pass for dual-wallet). Send `null` to clear the\noverride and revert to the template's strip image. Omit the field to\nleave the current override unchanged.\n",
            "format": "uuid",
            "type": "string"
          },
          "wallet_type": {
            "default": "apple",
            "description": "Wallet type to look up when a serial number has both Apple and Google passes.\nDefaults to `apple` for backward compatibility.\n",
            "enum": [
              "apple",
              "google"
            ],
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "serial_number"
        ],
        "type": "object"
      },
      "name": "updatePassBySerial"
    },
    {
      "description": "Update a template\n\nUpdates a draft template. Published templates cannot be modified.\n\n**Scope:** `templates:manage`\n\nMaps to OpenAPI operationId `updateTemplate` — PATCH /manage-templates/{id}.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "background_image_id": {
            "format": "uuid",
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "field_schema": {
            "additionalProperties": true,
            "type": "object"
          },
          "google_logo_image_id": {
            "format": "uuid",
            "type": "string"
          },
          "google_pass_type": {
            "allOf": [
              {
                "description": "Google Wallet class type override. If unset, PassFast auto-maps from\nthe Apple `pass_style` (+ `structure.transitType` for boardingPass):\n- `generic` → generic\n- `storeCard` → loyalty (or giftCard via override)\n- `eventTicket` → eventTicket\n- `coupon` → offer\n- `boardingPass` + transitType PKTransitTypeAir → flight\n- `boardingPass` + transitType Train/Bus/Boat/Generic → transit\n",
                "enum": [
                  "generic",
                  "loyalty",
                  "eventTicket",
                  "offer",
                  "flight",
                  "transit",
                  "giftCard"
                ],
                "type": "string"
              }
            ]
          },
          "google_wide_logo_image_id": {
            "format": "uuid",
            "type": "string"
          },
          "icon_image_id": {
            "format": "uuid",
            "type": "string"
          },
          "id": {
            "description": "Template ID.",
            "format": "uuid",
            "type": "string"
          },
          "logo_image_id": {
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "pass_style": {
            "description": "Apple Wallet pass style.",
            "enum": [
              "boardingPass",
              "coupon",
              "eventTicket",
              "generic",
              "storeCard"
            ],
            "type": "string"
          },
          "strip_image_id": {
            "format": "uuid",
            "type": "string"
          },
          "structure": {
            "additionalProperties": true,
            "description": "Complete pass structure. Drives both Apple `pass.json` emission and\nGoogle Wallet class/object JSON. Fields are grouped below by platform,\nbut the single JSONB object carries all of them for dual-wallet templates.\n",
            "properties": {
              "accessibilityURL": {
                "format": "uri",
                "type": "string"
              },
              "addChangeInfoURL": {
                "format": "uri",
                "type": "string"
              },
              "addOnURL": {
                "format": "uri",
                "type": "string"
              },
              "additionalInfoFields": {
                "description": "Apple poster-style eventTicket only. Rendered inside the eventTicket object.",
                "items": {
                  "description": "A single field inside a pass. Used in `headerFields`, `primaryFields`,\n`secondaryFields`, `auxiliaryFields`, `backFields`, and\n`additionalInfoFields` (poster-style eventTicket only).\n",
                  "properties": {
                    "attributedValue": {
                      "description": "Apple: HTML-flavored value (used for rendering links, etc.).",
                      "type": "string"
                    },
                    "changeMessage": {
                      "description": "Apple: notification text when this field's value changes. Must contain `%@` placeholder for the new value.",
                      "type": "string"
                    },
                    "currencyCode": {
                      "description": "Apple: ISO 4217 currency code. Value is formatted as currency.",
                      "type": "string"
                    },
                    "dataDetectorTypes": {
                      "description": "Apple: back fields only. Limits which kinds of data are detected and linked.",
                      "items": {
                        "enum": [
                          "PKDataDetectorTypePhoneNumber",
                          "PKDataDetectorTypeLink",
                          "PKDataDetectorTypeAddress",
                          "PKDataDetectorTypeCalendarEvent"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "dataKey": {
                      "description": "PassFast-specific: name of a key in the generate-pass request\nbody's `data` object whose value should populate this field.\n",
                      "type": "string"
                    },
                    "dateStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "ignoresTimeZone": {
                      "description": "Apple: whether to display the date in the pass's local time rather than the user's.",
                      "type": "boolean"
                    },
                    "isRelative": {
                      "description": "Apple: whether the date is displayed relative to the current time.",
                      "type": "boolean"
                    },
                    "key": {
                      "description": "Unique key identifying the field. Must be unique across ALL field groups in a template.",
                      "type": "string"
                    },
                    "label": {
                      "description": "Human-readable label rendered above the value on the pass face.",
                      "type": "string"
                    },
                    "numberStyle": {
                      "enum": [
                        "PKNumberStyleDecimal",
                        "PKNumberStylePercent",
                        "PKNumberStyleScientific",
                        "PKNumberStyleSpellOut"
                      ],
                      "type": "string"
                    },
                    "row": {
                      "description": "Apple: auxiliary/secondary layout control (0 or 1).",
                      "enum": [
                        0,
                        1
                      ],
                      "type": "integer"
                    },
                    "semantics": {
                      "additionalProperties": true,
                      "description": "Apple: per-field semantic tags for Siri / Maps / Do-Not-Disturb integration.",
                      "type": "object"
                    },
                    "textAlignment": {
                      "enum": [
                        "PKTextAlignmentLeft",
                        "PKTextAlignmentCenter",
                        "PKTextAlignmentRight",
                        "PKTextAlignmentNatural"
                      ],
                      "type": "string"
                    },
                    "timeStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "value": {
                      "description": "Static value for the field. Number types are preserved for\nApple's `numberStyle` / `currencyCode` formatters. For dynamic\nvalues, omit `value` and set `dataKey` instead.\n",
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    }
                  },
                  "required": [
                    "key"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "appLaunchURL": {
                "format": "uri",
                "type": "string"
              },
              "associatedStoreIdentifiers": {
                "description": "Apple iTunes app IDs for 'Open in App'.",
                "items": {
                  "type": "integer"
                },
                "type": "array"
              },
              "auxiliaryFields": {
                "items": {
                  "description": "A single field inside a pass. Used in `headerFields`, `primaryFields`,\n`secondaryFields`, `auxiliaryFields`, `backFields`, and\n`additionalInfoFields` (poster-style eventTicket only).\n",
                  "properties": {
                    "attributedValue": {
                      "description": "Apple: HTML-flavored value (used for rendering links, etc.).",
                      "type": "string"
                    },
                    "changeMessage": {
                      "description": "Apple: notification text when this field's value changes. Must contain `%@` placeholder for the new value.",
                      "type": "string"
                    },
                    "currencyCode": {
                      "description": "Apple: ISO 4217 currency code. Value is formatted as currency.",
                      "type": "string"
                    },
                    "dataDetectorTypes": {
                      "description": "Apple: back fields only. Limits which kinds of data are detected and linked.",
                      "items": {
                        "enum": [
                          "PKDataDetectorTypePhoneNumber",
                          "PKDataDetectorTypeLink",
                          "PKDataDetectorTypeAddress",
                          "PKDataDetectorTypeCalendarEvent"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "dataKey": {
                      "description": "PassFast-specific: name of a key in the generate-pass request\nbody's `data` object whose value should populate this field.\n",
                      "type": "string"
                    },
                    "dateStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "ignoresTimeZone": {
                      "description": "Apple: whether to display the date in the pass's local time rather than the user's.",
                      "type": "boolean"
                    },
                    "isRelative": {
                      "description": "Apple: whether the date is displayed relative to the current time.",
                      "type": "boolean"
                    },
                    "key": {
                      "description": "Unique key identifying the field. Must be unique across ALL field groups in a template.",
                      "type": "string"
                    },
                    "label": {
                      "description": "Human-readable label rendered above the value on the pass face.",
                      "type": "string"
                    },
                    "numberStyle": {
                      "enum": [
                        "PKNumberStyleDecimal",
                        "PKNumberStylePercent",
                        "PKNumberStyleScientific",
                        "PKNumberStyleSpellOut"
                      ],
                      "type": "string"
                    },
                    "row": {
                      "description": "Apple: auxiliary/secondary layout control (0 or 1).",
                      "enum": [
                        0,
                        1
                      ],
                      "type": "integer"
                    },
                    "semantics": {
                      "additionalProperties": true,
                      "description": "Apple: per-field semantic tags for Siri / Maps / Do-Not-Disturb integration.",
                      "type": "object"
                    },
                    "textAlignment": {
                      "enum": [
                        "PKTextAlignmentLeft",
                        "PKTextAlignmentCenter",
                        "PKTextAlignmentRight",
                        "PKTextAlignmentNatural"
                      ],
                      "type": "string"
                    },
                    "timeStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "value": {
                      "description": "Static value for the field. Number types are preserved for\nApple's `numberStyle` / `currencyCode` formatters. For dynamic\nvalues, omit `value` and set `dataKey` instead.\n",
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    }
                  },
                  "required": [
                    "key"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "backFields": {
                "items": {
                  "description": "A single field inside a pass. Used in `headerFields`, `primaryFields`,\n`secondaryFields`, `auxiliaryFields`, `backFields`, and\n`additionalInfoFields` (poster-style eventTicket only).\n",
                  "properties": {
                    "attributedValue": {
                      "description": "Apple: HTML-flavored value (used for rendering links, etc.).",
                      "type": "string"
                    },
                    "changeMessage": {
                      "description": "Apple: notification text when this field's value changes. Must contain `%@` placeholder for the new value.",
                      "type": "string"
                    },
                    "currencyCode": {
                      "description": "Apple: ISO 4217 currency code. Value is formatted as currency.",
                      "type": "string"
                    },
                    "dataDetectorTypes": {
                      "description": "Apple: back fields only. Limits which kinds of data are detected and linked.",
                      "items": {
                        "enum": [
                          "PKDataDetectorTypePhoneNumber",
                          "PKDataDetectorTypeLink",
                          "PKDataDetectorTypeAddress",
                          "PKDataDetectorTypeCalendarEvent"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "dataKey": {
                      "description": "PassFast-specific: name of a key in the generate-pass request\nbody's `data` object whose value should populate this field.\n",
                      "type": "string"
                    },
                    "dateStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "ignoresTimeZone": {
                      "description": "Apple: whether to display the date in the pass's local time rather than the user's.",
                      "type": "boolean"
                    },
                    "isRelative": {
                      "description": "Apple: whether the date is displayed relative to the current time.",
                      "type": "boolean"
                    },
                    "key": {
                      "description": "Unique key identifying the field. Must be unique across ALL field groups in a template.",
                      "type": "string"
                    },
                    "label": {
                      "description": "Human-readable label rendered above the value on the pass face.",
                      "type": "string"
                    },
                    "numberStyle": {
                      "enum": [
                        "PKNumberStyleDecimal",
                        "PKNumberStylePercent",
                        "PKNumberStyleScientific",
                        "PKNumberStyleSpellOut"
                      ],
                      "type": "string"
                    },
                    "row": {
                      "description": "Apple: auxiliary/secondary layout control (0 or 1).",
                      "enum": [
                        0,
                        1
                      ],
                      "type": "integer"
                    },
                    "semantics": {
                      "additionalProperties": true,
                      "description": "Apple: per-field semantic tags for Siri / Maps / Do-Not-Disturb integration.",
                      "type": "object"
                    },
                    "textAlignment": {
                      "enum": [
                        "PKTextAlignmentLeft",
                        "PKTextAlignmentCenter",
                        "PKTextAlignmentRight",
                        "PKTextAlignmentNatural"
                      ],
                      "type": "string"
                    },
                    "timeStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "value": {
                      "description": "Static value for the field. Number types are preserved for\nApple's `numberStyle` / `currencyCode` formatters. For dynamic\nvalues, omit `value` and set `dataKey` instead.\n",
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    }
                  },
                  "required": [
                    "key"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "backgroundColor": {
                "description": "Accepts `#rrggbb`, `#rgb`, or `rgb(r,g,b)`. Apple emits `rgb(...)`; Google emits `#rrggbb`.",
                "type": "string"
              },
              "bagDropURL": {
                "format": "uri",
                "type": "string"
              },
              "baggagePolicyURL": {
                "format": "uri",
                "type": "string"
              },
              "balanceCurrencyCode": {
                "description": "ISO 4217 code used when `balance` is supplied as a plain number (dollars → micros).",
                "type": "string"
              },
              "balanceDataKey": {
                "type": "string"
              },
              "barcode": {
                "properties": {
                  "altText": {
                    "description": "Static alternate text. Only used when `altTextDataKey` is not set.",
                    "type": "string"
                  },
                  "altTextDataKey": {
                    "description": "Key in generate-pass `data` object whose value becomes the human-readable alt text.",
                    "type": "string"
                  },
                  "format": {
                    "description": "Apple Wallet barcode format. Automatically mapped to Google's equivalent (QR_CODE, PDF_417, AZTEC, CODE_128) when the template targets Google Wallet.",
                    "enum": [
                      "PKBarcodeFormatQR",
                      "PKBarcodeFormatPDF417",
                      "PKBarcodeFormatAztec",
                      "PKBarcodeFormatCode128"
                    ],
                    "type": "string"
                  },
                  "messageDataKey": {
                    "description": "Key in generate-pass `data` object that holds the barcode message.",
                    "type": "string"
                  },
                  "messageEncoding": {
                    "default": "iso-8859-1",
                    "description": "Text encoding for the barcode message. Default is `iso-8859-1` per Apple spec.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "beacons": {
                "items": {
                  "properties": {
                    "major": {
                      "type": "integer"
                    },
                    "minor": {
                      "type": "integer"
                    },
                    "proximityUUID": {
                      "format": "uuid",
                      "type": "string"
                    },
                    "relevantText": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "proximityUUID"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "callbackOptions": {
                "additionalProperties": true,
                "type": "object"
              },
              "cardNumberDataKey": {
                "type": "string"
              },
              "cardNumberLabel": {
                "type": "string"
              },
              "changeSeatURL": {
                "format": "uri",
                "type": "string"
              },
              "checkInURL": {
                "format": "uri",
                "type": "string"
              },
              "contactVenueEmail": {
                "format": "email",
                "type": "string"
              },
              "contactVenuePhoneNumber": {
                "type": "string"
              },
              "contactVenueWebsite": {
                "format": "uri",
                "type": "string"
              },
              "dateTimeEnd": {
                "format": "date-time",
                "type": "string"
              },
              "dateTimeStart": {
                "format": "date-time",
                "type": "string"
              },
              "description": {
                "description": "Apple top-level description. Defaults to 'PassFast Pass' if unset.",
                "type": "string"
              },
              "destination": {
                "properties": {
                  "airportIataCode": {
                    "description": "3-letter IATA airport code (e.g. `LHR`, `JFK`).",
                    "type": "string"
                  },
                  "gate": {
                    "type": "string"
                  },
                  "terminal": {
                    "type": "string"
                  }
                },
                "required": [
                  "airportIataCode"
                ],
                "type": "object"
              },
              "directionsInformationURL": {
                "format": "uri",
                "type": "string"
              },
              "discoverableProgram": {
                "additionalProperties": true,
                "description": "Google Loyalty: public program listing. Requires `countryCode` on the class (set via `discoverableProgram`).",
                "type": "object"
              },
              "doorsOpen": {
                "format": "date-time",
                "type": "string"
              },
              "enableSmartTap": {
                "type": "boolean"
              },
              "entertainmentURL": {
                "format": "uri",
                "type": "string"
              },
              "eventLogoText": {
                "type": "string"
              },
              "eventNumberDataKey": {
                "type": "string"
              },
              "eventNumberLabel": {
                "type": "string"
              },
              "flightHeader": {
                "properties": {
                  "carrier": {
                    "properties": {
                      "carrierIataCode": {
                        "description": "2-letter IATA carrier code (e.g. `BA`, `AA`).",
                        "type": "string"
                      }
                    },
                    "required": [
                      "carrierIataCode"
                    ],
                    "type": "object"
                  },
                  "flightNumber": {
                    "description": "Flight number (digits only per Google spec).",
                    "type": "string"
                  }
                },
                "required": [
                  "carrier",
                  "flightNumber"
                ],
                "type": "object"
              },
              "flightStatusURL": {
                "format": "uri",
                "type": "string"
              },
              "footerBackgroundColor": {
                "type": "string"
              },
              "foregroundColor": {
                "type": "string"
              },
              "gateDataKey": {
                "type": "string"
              },
              "googleLogoText": {
                "description": "Google: brand/card title (required for Google Wallet rendering).",
                "type": "string"
              },
              "googleTransitType": {
                "description": "Google Wallet transit class transitType enum. Auto-derived from Apple's `transitType` if not set explicitly.",
                "enum": [
                  "BUS",
                  "RAIL",
                  "TRAM",
                  "FERRY",
                  "OTHER"
                ],
                "type": "string"
              },
              "groupingIdentifier": {
                "description": "Apple: groups related passes. Also mapped to Google's `groupingInfo.groupingId` on the object.",
                "type": "string"
              },
              "headerFields": {
                "items": {
                  "description": "A single field inside a pass. Used in `headerFields`, `primaryFields`,\n`secondaryFields`, `auxiliaryFields`, `backFields`, and\n`additionalInfoFields` (poster-style eventTicket only).\n",
                  "properties": {
                    "attributedValue": {
                      "description": "Apple: HTML-flavored value (used for rendering links, etc.).",
                      "type": "string"
                    },
                    "changeMessage": {
                      "description": "Apple: notification text when this field's value changes. Must contain `%@` placeholder for the new value.",
                      "type": "string"
                    },
                    "currencyCode": {
                      "description": "Apple: ISO 4217 currency code. Value is formatted as currency.",
                      "type": "string"
                    },
                    "dataDetectorTypes": {
                      "description": "Apple: back fields only. Limits which kinds of data are detected and linked.",
                      "items": {
                        "enum": [
                          "PKDataDetectorTypePhoneNumber",
                          "PKDataDetectorTypeLink",
                          "PKDataDetectorTypeAddress",
                          "PKDataDetectorTypeCalendarEvent"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "dataKey": {
                      "description": "PassFast-specific: name of a key in the generate-pass request\nbody's `data` object whose value should populate this field.\n",
                      "type": "string"
                    },
                    "dateStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "ignoresTimeZone": {
                      "description": "Apple: whether to display the date in the pass's local time rather than the user's.",
                      "type": "boolean"
                    },
                    "isRelative": {
                      "description": "Apple: whether the date is displayed relative to the current time.",
                      "type": "boolean"
                    },
                    "key": {
                      "description": "Unique key identifying the field. Must be unique across ALL field groups in a template.",
                      "type": "string"
                    },
                    "label": {
                      "description": "Human-readable label rendered above the value on the pass face.",
                      "type": "string"
                    },
                    "numberStyle": {
                      "enum": [
                        "PKNumberStyleDecimal",
                        "PKNumberStylePercent",
                        "PKNumberStyleScientific",
                        "PKNumberStyleSpellOut"
                      ],
                      "type": "string"
                    },
                    "row": {
                      "description": "Apple: auxiliary/secondary layout control (0 or 1).",
                      "enum": [
                        0,
                        1
                      ],
                      "type": "integer"
                    },
                    "semantics": {
                      "additionalProperties": true,
                      "description": "Apple: per-field semantic tags for Siri / Maps / Do-Not-Disturb integration.",
                      "type": "object"
                    },
                    "textAlignment": {
                      "enum": [
                        "PKTextAlignmentLeft",
                        "PKTextAlignmentCenter",
                        "PKTextAlignmentRight",
                        "PKTextAlignmentNatural"
                      ],
                      "type": "string"
                    },
                    "timeStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "value": {
                      "description": "Static value for the field. Number types are preserved for\nApple's `numberStyle` / `currencyCode` formatters. For dynamic\nvalues, omit `value` and set `dataKey` instead.\n",
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    }
                  },
                  "required": [
                    "key"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "jumpToURL": {
                "format": "uri",
                "type": "string"
              },
              "labelColor": {
                "description": "Apple only — field label color.",
                "type": "string"
              },
              "liveBroadcastURL": {
                "format": "uri",
                "type": "string"
              },
              "localScheduledArrivalDateTime": {
                "description": "Google Flight: same format as departure.",
                "type": "string"
              },
              "localScheduledDepartureDateTime": {
                "description": "Google Flight: ISO 8601 **without** timezone offset (local airport time). Automatically stripped if a Z/offset is supplied.",
                "type": "string"
              },
              "locations": {
                "items": {
                  "properties": {
                    "altitude": {
                      "type": "number"
                    },
                    "latitude": {
                      "type": "number"
                    },
                    "longitude": {
                      "type": "number"
                    },
                    "relevantText": {
                      "description": "Apple: lock-screen text when the device enters this location.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "latitude",
                    "longitude"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "logoText": {
                "description": "Apple: text beside the logo on the pass face.",
                "type": "string"
              },
              "loyaltyPointsDataKey": {
                "type": "string"
              },
              "loyaltyPointsLabel": {
                "type": "string"
              },
              "maxDistance": {
                "description": "Apple only — max distance (meters) for location relevance.",
                "type": "integer"
              },
              "merchandiseURL": {
                "format": "uri",
                "type": "string"
              },
              "messages": {
                "description": "Google class-level messages.",
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              "nfc": {
                "properties": {
                  "encryptionPublicKey": {
                    "description": "ECC P-256 public key (base64-encoded) for encrypting the NFC payload.",
                    "type": "string"
                  },
                  "message": {
                    "description": "The data transmitted during an NFC interaction.",
                    "type": "string"
                  },
                  "requiresAuthentication": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "message"
                ],
                "type": "object"
              },
              "objectMessages": {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              "orderFoodURL": {
                "format": "uri",
                "type": "string"
              },
              "organizationName": {
                "description": "Apple top-level org name. Defaults to 'PassFast' if unset.",
                "type": "string"
              },
              "origin": {
                "properties": {
                  "airportIataCode": {
                    "description": "3-letter IATA airport code (e.g. `LHR`, `JFK`).",
                    "type": "string"
                  },
                  "gate": {
                    "type": "string"
                  },
                  "terminal": {
                    "type": "string"
                  }
                },
                "required": [
                  "airportIataCode"
                ],
                "type": "object"
              },
              "parkingInformationURL": {
                "format": "uri",
                "type": "string"
              },
              "pinDataKey": {
                "type": "string"
              },
              "pinLabel": {
                "type": "string"
              },
              "primaryFields": {
                "items": {
                  "description": "A single field inside a pass. Used in `headerFields`, `primaryFields`,\n`secondaryFields`, `auxiliaryFields`, `backFields`, and\n`additionalInfoFields` (poster-style eventTicket only).\n",
                  "properties": {
                    "attributedValue": {
                      "description": "Apple: HTML-flavored value (used for rendering links, etc.).",
                      "type": "string"
                    },
                    "changeMessage": {
                      "description": "Apple: notification text when this field's value changes. Must contain `%@` placeholder for the new value.",
                      "type": "string"
                    },
                    "currencyCode": {
                      "description": "Apple: ISO 4217 currency code. Value is formatted as currency.",
                      "type": "string"
                    },
                    "dataDetectorTypes": {
                      "description": "Apple: back fields only. Limits which kinds of data are detected and linked.",
                      "items": {
                        "enum": [
                          "PKDataDetectorTypePhoneNumber",
                          "PKDataDetectorTypeLink",
                          "PKDataDetectorTypeAddress",
                          "PKDataDetectorTypeCalendarEvent"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "dataKey": {
                      "description": "PassFast-specific: name of a key in the generate-pass request\nbody's `data` object whose value should populate this field.\n",
                      "type": "string"
                    },
                    "dateStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "ignoresTimeZone": {
                      "description": "Apple: whether to display the date in the pass's local time rather than the user's.",
                      "type": "boolean"
                    },
                    "isRelative": {
                      "description": "Apple: whether the date is displayed relative to the current time.",
                      "type": "boolean"
                    },
                    "key": {
                      "description": "Unique key identifying the field. Must be unique across ALL field groups in a template.",
                      "type": "string"
                    },
                    "label": {
                      "description": "Human-readable label rendered above the value on the pass face.",
                      "type": "string"
                    },
                    "numberStyle": {
                      "enum": [
                        "PKNumberStyleDecimal",
                        "PKNumberStylePercent",
                        "PKNumberStyleScientific",
                        "PKNumberStyleSpellOut"
                      ],
                      "type": "string"
                    },
                    "row": {
                      "description": "Apple: auxiliary/secondary layout control (0 or 1).",
                      "enum": [
                        0,
                        1
                      ],
                      "type": "integer"
                    },
                    "semantics": {
                      "additionalProperties": true,
                      "description": "Apple: per-field semantic tags for Siri / Maps / Do-Not-Disturb integration.",
                      "type": "object"
                    },
                    "textAlignment": {
                      "enum": [
                        "PKTextAlignmentLeft",
                        "PKTextAlignmentCenter",
                        "PKTextAlignmentRight",
                        "PKTextAlignmentNatural"
                      ],
                      "type": "string"
                    },
                    "timeStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "value": {
                      "description": "Static value for the field. Number types are preserved for\nApple's `numberStyle` / `currencyCode` formatters. For dynamic\nvalues, omit `value` and set `dataKey` instead.\n",
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    }
                  },
                  "required": [
                    "key"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "purchaseParkingURL": {
                "format": "uri",
                "type": "string"
              },
              "redemptionChannel": {
                "description": "Google Wallet OfferClass redemption channel.",
                "enum": [
                  "INSTORE",
                  "ONLINE",
                  "BOTH",
                  "TEMPORARY_PRICE_REDUCTION"
                ],
                "type": "string"
              },
              "relevantDate": {
                "description": "ISO 8601 datetime with timezone suffix. Naive datetimes (no Z/offset) are rejected.",
                "format": "date-time",
                "type": "string"
              },
              "relevantDates": {
                "description": "Apple plural relevantDates[] — multiple time windows. Entries without timezone are filtered out.",
                "items": {
                  "oneOf": [
                    {
                      "format": "date-time",
                      "type": "string"
                    },
                    {
                      "properties": {
                        "endDate": {
                          "format": "date-time",
                          "type": "string"
                        },
                        "startDate": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  ]
                },
                "type": "array"
              },
              "rotatingBarcode": {
                "description": "Google Wallet rotating barcode (TOTP-based). Supply a pre-configured\nobject; PassFast does not synthesize the HMAC secret.\n",
                "properties": {
                  "totpDetails": {
                    "properties": {
                      "algorithm": {
                        "enum": [
                          "TOTP_SHA1",
                          "TOTP_SHA256",
                          "TOTP_SHA512"
                        ],
                        "type": "string"
                      },
                      "parameters": {
                        "items": {
                          "properties": {
                            "key": {
                              "description": "Base16 (hex) encoded TOTP secret.",
                              "type": "string"
                            },
                            "valueLength": {
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "periodMillis": {
                        "description": "TOTP period as a string of milliseconds (e.g. `\"30000\"`).",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": {
                    "enum": [
                      "QR_CODE",
                      "AZTEC",
                      "PDF_417",
                      "CODE_128",
                      "DATA_MATRIX"
                    ],
                    "type": "string"
                  },
                  "valuePattern": {
                    "description": "Pattern for the rotating value, e.g. `rotating-{totp_value}`.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rowDataKey": {
                "type": "string"
              },
              "seatDataKey": {
                "type": "string"
              },
              "seatUpgradeURL": {
                "format": "uri",
                "type": "string"
              },
              "secondaryFields": {
                "items": {
                  "description": "A single field inside a pass. Used in `headerFields`, `primaryFields`,\n`secondaryFields`, `auxiliaryFields`, `backFields`, and\n`additionalInfoFields` (poster-style eventTicket only).\n",
                  "properties": {
                    "attributedValue": {
                      "description": "Apple: HTML-flavored value (used for rendering links, etc.).",
                      "type": "string"
                    },
                    "changeMessage": {
                      "description": "Apple: notification text when this field's value changes. Must contain `%@` placeholder for the new value.",
                      "type": "string"
                    },
                    "currencyCode": {
                      "description": "Apple: ISO 4217 currency code. Value is formatted as currency.",
                      "type": "string"
                    },
                    "dataDetectorTypes": {
                      "description": "Apple: back fields only. Limits which kinds of data are detected and linked.",
                      "items": {
                        "enum": [
                          "PKDataDetectorTypePhoneNumber",
                          "PKDataDetectorTypeLink",
                          "PKDataDetectorTypeAddress",
                          "PKDataDetectorTypeCalendarEvent"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "dataKey": {
                      "description": "PassFast-specific: name of a key in the generate-pass request\nbody's `data` object whose value should populate this field.\n",
                      "type": "string"
                    },
                    "dateStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "ignoresTimeZone": {
                      "description": "Apple: whether to display the date in the pass's local time rather than the user's.",
                      "type": "boolean"
                    },
                    "isRelative": {
                      "description": "Apple: whether the date is displayed relative to the current time.",
                      "type": "boolean"
                    },
                    "key": {
                      "description": "Unique key identifying the field. Must be unique across ALL field groups in a template.",
                      "type": "string"
                    },
                    "label": {
                      "description": "Human-readable label rendered above the value on the pass face.",
                      "type": "string"
                    },
                    "numberStyle": {
                      "enum": [
                        "PKNumberStyleDecimal",
                        "PKNumberStylePercent",
                        "PKNumberStyleScientific",
                        "PKNumberStyleSpellOut"
                      ],
                      "type": "string"
                    },
                    "row": {
                      "description": "Apple: auxiliary/secondary layout control (0 or 1).",
                      "enum": [
                        0,
                        1
                      ],
                      "type": "integer"
                    },
                    "semantics": {
                      "additionalProperties": true,
                      "description": "Apple: per-field semantic tags for Siri / Maps / Do-Not-Disturb integration.",
                      "type": "object"
                    },
                    "textAlignment": {
                      "enum": [
                        "PKTextAlignmentLeft",
                        "PKTextAlignmentCenter",
                        "PKTextAlignmentRight",
                        "PKTextAlignmentNatural"
                      ],
                      "type": "string"
                    },
                    "timeStyle": {
                      "enum": [
                        "PKDateStyleNone",
                        "PKDateStyleShort",
                        "PKDateStyleMedium",
                        "PKDateStyleLong",
                        "PKDateStyleFull"
                      ],
                      "type": "string"
                    },
                    "value": {
                      "description": "Static value for the field. Number types are preserved for\nApple's `numberStyle` / `currencyCode` formatters. For dynamic\nvalues, omit `value` and set `dataKey` instead.\n",
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    }
                  },
                  "required": [
                    "key"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "secondaryLoyaltyPointsDataKey": {
                "type": "string"
              },
              "secondaryLoyaltyPointsLabel": {
                "type": "string"
              },
              "sectionDataKey": {
                "type": "string"
              },
              "securityAnimation": {
                "additionalProperties": true,
                "type": "object"
              },
              "sellURL": {
                "format": "uri",
                "type": "string"
              },
              "semantics": {
                "additionalProperties": true,
                "description": "Apple: top-level semantic tags (event, transit, balance categories).",
                "type": "object"
              },
              "shoppingURL": {
                "format": "uri",
                "type": "string"
              },
              "smartTapRedemptionDataKey": {
                "type": "string"
              },
              "smartTapRedemptionValue": {
                "type": "string"
              },
              "suppressHeaderDarkening": {
                "type": "boolean"
              },
              "suppressStripShine": {
                "type": "boolean"
              },
              "ticketHolderNameDataKey": {
                "type": "string"
              },
              "ticketNumberDataKey": {
                "type": "string"
              },
              "trackBagsURL": {
                "format": "uri",
                "type": "string"
              },
              "transferURL": {
                "format": "uri",
                "type": "string"
              },
              "transitInformationURL": {
                "format": "uri",
                "type": "string"
              },
              "transitOperatorName": {
                "type": "string"
              },
              "transitType": {
                "description": "Apple Wallet transitType enum. Required for `boardingPass` templates at publish.",
                "enum": [
                  "PKTransitTypeAir",
                  "PKTransitTypeTrain",
                  "PKTransitTypeBus",
                  "PKTransitTypeBoat",
                  "PKTransitTypeGeneric"
                ],
                "type": "string"
              },
              "tripType": {
                "enum": [
                  "ROUND_TRIP",
                  "ONE_WAY"
                ],
                "type": "string"
              },
              "useAutomaticColors": {
                "type": "boolean"
              },
              "venueAddress": {
                "type": "string"
              },
              "venueName": {
                "type": "string"
              },
              "viewUnlockRequirement": {
                "enum": [
                  "UNLOCK_REQUIRED_TO_VIEW",
                  "VIEW_UNLOCK_REQUIREMENT_UNSPECIFIED"
                ],
                "type": "string"
              }
            },
            "required": [
              "backgroundColor",
              "foregroundColor"
            ],
            "type": "object"
          },
          "thumbnail_image_id": {
            "format": "uuid",
            "type": "string"
          },
          "wallet_types": {
            "description": "Wallet platforms this template supports.",
            "items": {
              "enum": [
                "apple",
                "google"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "updateTemplate"
    },
    {
      "description": "Upload a single certificate\n\nUploads a single PEM-encoded certificate or key.\n\n**Scope:** `certs:manage`\n\nMaps to OpenAPI operationId `uploadCertificate` — POST /manage-certs.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "cert_data": {
            "description": "Base64-encoded certificate or key data.",
            "format": "byte",
            "type": "string"
          },
          "cert_type": {
            "description": "Type of certificate being uploaded.",
            "enum": [
              "signer_cert",
              "signer_key",
              "wwdr"
            ],
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "cert_type",
          "cert_data"
        ],
        "type": "object"
      },
      "name": "uploadCertificate"
    },
    {
      "description": "Upload Google credentials\n\nUploads Google service account credentials for Google Wallet pass signing.\nThe service account JSON and issuer ID are stored securely.\n\n**Scope:** `certs:manage`\n\nMaps to OpenAPI operationId `uploadGoogleCredentials` — POST /manage-certs/google.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "issuer_id": {
            "description": "Google Wallet issuer ID.",
            "type": "string"
          },
          "service_account_json": {
            "additionalProperties": true,
            "description": "Google service account JSON key file contents.",
            "type": "object"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "service_account_json",
          "issuer_id"
        ],
        "type": "object"
      },
      "name": "uploadGoogleCredentials"
    },
    {
      "description": "Upload an image\n\nUploads an image for use in pass templates or per-pass strip overrides.\nSend as multipart form data with a `purpose` field and a `file` field\ncontaining the PNG image.\n\n**Upload behaviour by purpose:**\n- `strip` — **accumulates**. Each upload creates a new image; the returned\n  `id` can be passed as `strip_image_id` on `POST /v1/passes` or\n  `PATCH /v1/passes/{id}` to give individual passes their own banner.\n  Previous `strip` images are NOT deleted — manage them via\n  `DELETE /v1/images/{id}` when no longer referenced.\n- All other purposes (`icon`, `logo`, `thumbnail`, `background`, `footer`,\n  and all `_2x`/`_3x` variants) — **replace-on-upload**. Uploading a new\n  image of the same purpose deletes the previous one from storage and DB.\n  These are app-wide template assets, not per-pass.\n\n**Scope:** `images:manage`\n\nMaps to OpenAPI operationId `uploadImage` — POST /manage-images.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "file_base64": {
            "description": "Base64-encoded file bytes. Maps to the OpenAPI multipart `file` field — same uploadImage (or equivalent) endpoint, not a new API.",
            "type": "string"
          },
          "filename": {
            "description": "Optional filename sent with the multipart upload.",
            "type": "string"
          },
          "purpose": {
            "description": "The intended use of the image. `strip` uploads accumulate\n(for per-pass `strip_image_id` overrides); all other purposes\nreplace existing uploads of the same purpose for the app.\n",
            "enum": [
              "icon",
              "icon_2x",
              "icon_3x",
              "logo",
              "logo_2x",
              "logo_3x",
              "thumbnail",
              "thumbnail_2x",
              "strip",
              "strip_2x",
              "background",
              "background_2x",
              "footer",
              "footer_2x"
            ],
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "purpose",
          "file_base64"
        ],
        "type": "object"
      },
      "name": "uploadImage"
    },
    {
      "description": "Upload a .p12 certificate bundle\n\nUploads a PKCS#12 (.p12) bundle containing signer certificate and private key.\nThe bundle is decrypted with the provided password, and individual certificates\nare extracted and stored with AES-256-GCM encryption.\n\n**Scope:** `certs:manage`\n\nMaps to OpenAPI operationId `uploadP12Certificate` — POST /manage-certs/p12.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "p12_data": {
            "description": "Base64-encoded .p12 file data.",
            "format": "byte",
            "type": "string"
          },
          "password": {
            "description": "Password to decrypt the .p12 bundle (if password-protected).",
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "p12_data"
        ],
        "type": "object"
      },
      "name": "uploadP12Certificate"
    },
    {
      "description": "Void a pass\n\nMarks a pass as invalidated and rebuilds the `.pkpass` file with Apple's `voided: true` flag.\nRegistered devices are sent push notifications so the pass appears voided immediately in Apple Wallet.\nRebuild failure is non-fatal — the pass is still invalidated at the DB level.\n\n**Scope:** `passes:manage`\n\nMaps to OpenAPI operationId `voidPass` — POST /manage-passes/{id}/void.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Pass ID.",
            "format": "uuid",
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "voidPass"
    },
    {
      "description": "Void a pass by serial number\n\nMarks a pass (looked up by serial number) as invalidated and rebuilds the `.pkpass`\nfile with Apple's `voided: true` flag. Registered devices are sent push notifications\nso the pass appears voided immediately in Apple Wallet.\nWhen a serial has both Apple and Google passes, use `?wallet_type=` to select which one (defaults to `apple`).\n\n**Scope:** `passes:manage`\n\nMaps to OpenAPI operationId `voidPassBySerial` — POST /manage-passes/serial/{serial_number}/void.\n\nSame PassFast HTTP API, billing, and rate limits. Do not invent other paths.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "serial_number": {
            "description": "Pass serial number (unique within app + wallet type).",
            "type": "string"
          },
          "wallet_type": {
            "default": "apple",
            "description": "Wallet type to look up when a serial number has both Apple and Google passes.\nDefaults to `apple` for backward compatibility.\n",
            "enum": [
              "apple",
              "google"
            ],
            "type": "string"
          },
          "x_app_id": {
            "description": "Override X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "serial_number"
        ],
        "type": "object"
      },
      "name": "voidPassBySerial"
    }
  ]
}

What the leaf hashes

{"body":"6ba78ecd53a0da3423e79baadda4929b577279c95483ad792f42b5d2a8d5b047","id":308570,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793058343380395,"prev":null,"subject":"5eb6fcc8-d76b-4029-ab2f-c5e617b37551","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0x3bdf643c354b1d4068c9d03f24440814a97d56d95de264698536e623418f0552
  2. 0x242cd7e47d49f7e22df5c94d91d40e57e8d621ab2a71940ad9a4351f393e1ca1
  3. 0xd245fc47c169209a1ae0b09790189a25b6b859036e64106aa9db92442a048beb
  4. 0x296884435b344fd530dfc029bd6474c4e0942d991a3d104cffe0389ea4f7666f
  5. 0x96a1cbd11d7eadfeba6a50edb60bc457365dde0abd8db0deecdf7560ba21afed
  6. 0x2b4adbd92724cc929a56a9e84dc19966fd9deee3ce6565287fffa1e0ed0a09d6
  7. 0x6f5a1476cd0c8e5a6b5ff82cddbc8fac0fd3e755320132772b3bbb9a2d81b299
  8. 0xbc0baebe592cff50963033861f302a3744d6b67194dfd9724245f157fac365cf
  9. 0xf2faf4093728c777232702b119748ec430da4271007ae8518a236a38e4851f96
  10. 0x2e8a687ff66d8afe58fa1b3504a221aae25ce629dbb3718301a0d0479898a139
  11. 0x876d91ae08f3c341c1d9ba4ed92a9c937c054b5c7d6cd935bb21dda6fb029cac
  12. 0xdb4b9388e3fe1df4b04e149e559f925fb354066ae1d2537fd6f918162716fadf
  13. 0xe2214b3d6a48396930d1739b02ea366de2aac5337c9b9ff2aff28cecf6518139
  14. 0x7f594f5609f388d64d3cda87b5631d393ee8300bb09bad71f150113a5886ee33
  15. 0x4b52a97f7a80ff7778a702b85267b8d2e5c93ce160942656435c29ae7be68bf4
  16. 0x2e6a32eb32761c210560e852405e2f865f958ddbe01027894f8b9c1b3433b9f0
  17. 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON