{"id":308570,"recorded_at":"2026-10-26T23:45:43.380576Z","observed_at":"2026-10-26T23:45:43.380395Z","subject_kind":"endpoint","subject":"5eb6fcc8-d76b-4029-ab2f-c5e617b37551","kind":"mcp.tools","method":"probe.mcp/1","body":{"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"}]},"body_sha256":"6ba78ecd53a0da3423e79baadda4929b577279c95483ad792f42b5d2a8d5b047","prev_id":null,"leaf":"0x3bdeb326f5d998eb5cd2d41d17b73084f89d8ae1279aabb32bf1a8b47375f5f4","leaf_text":"{\"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\"}","day":{"day":"2026-10-26","leaves":296695,"root":"0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8","chained":"0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a","anchor_chain":"eip155:5042002","anchor_tx":"0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae","anchor_block":69251483},"proof":["0x3bdf643c354b1d4068c9d03f24440814a97d56d95de264698536e623418f0552","0x242cd7e47d49f7e22df5c94d91d40e57e8d621ab2a71940ad9a4351f393e1ca1","0xd245fc47c169209a1ae0b09790189a25b6b859036e64106aa9db92442a048beb","0x296884435b344fd530dfc029bd6474c4e0942d991a3d104cffe0389ea4f7666f","0x96a1cbd11d7eadfeba6a50edb60bc457365dde0abd8db0deecdf7560ba21afed","0x2b4adbd92724cc929a56a9e84dc19966fd9deee3ce6565287fffa1e0ed0a09d6","0x6f5a1476cd0c8e5a6b5ff82cddbc8fac0fd3e755320132772b3bbb9a2d81b299","0xbc0baebe592cff50963033861f302a3744d6b67194dfd9724245f157fac365cf","0xf2faf4093728c777232702b119748ec430da4271007ae8518a236a38e4851f96","0x2e8a687ff66d8afe58fa1b3504a221aae25ce629dbb3718301a0d0479898a139","0x876d91ae08f3c341c1d9ba4ed92a9c937c054b5c7d6cd935bb21dda6fb029cac","0xdb4b9388e3fe1df4b04e149e559f925fb354066ae1d2537fd6f918162716fadf","0xe2214b3d6a48396930d1739b02ea366de2aac5337c9b9ff2aff28cecf6518139","0x7f594f5609f388d64d3cda87b5631d393ee8300bb09bad71f150113a5886ee33","0x4b52a97f7a80ff7778a702b85267b8d2e5c93ce160942656435c29ae7be68bf4","0x2e6a32eb32761c210560e852405e2f865f958ddbe01027894f8b9c1b3433b9f0","0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d","0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d","0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a"]}