openapi: 3.2.0 info: title: Vibes Platform Android Wallet Templates API version: 1.0.0 description: 'Define the design and content of the Google Wallet (Android) pass for a wallet campaign. Each campaign has a single Google Wallet template whose fields map to Google Wallet pass concepts. See the Google Wallet reference for field semantics: https://developers.google.com/wallet/generic' servers: - url: https://public-api.vibescm.com description: North America - url: https://public-api.eu.vibes.com/ description: EMEA security: - basicAuth: [] tags: - name: Android Wallet Templates API description: 'Define the design and content of the Google Wallet (Android) pass for a wallet campaign. Each campaign has a single Google Wallet template whose fields map to Google Wallet pass concepts. See the Google Wallet reference for field semantics: https://developers.google.com/wallet/generic' paths: /companies/{company_key}/campaigns/wallet/{token}/wallet_template: get: tags: - Android Wallet Templates API summary: Get the Google Wallet template description: Retrieve the Google Wallet (Android) pass template for a wallet campaign. Each campaign has a single Google Wallet template. parameters: - name: X-API-Version in: header schema: type: string default: 1 - name: company_key in: path schema: type: string required: true - name: token in: path schema: type: string description: The `token` is the SmartLink token (`wallet_id`) for the campaign. required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/androidTemplateResponse' '404': description: The campaign or its Google Wallet template cannot be found. post: tags: - Android Wallet Templates API summary: Create the Google Wallet template description: Create the Google Wallet (Android) pass template for a wallet campaign. Field semantics follow Google Wallet generic passes (https://developers.google.com/wallet/generic). Many text fields accept Liquid personalization tags that are replaced per recipient. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/androidTemplateRequest' parameters: - name: X-API-Version in: header schema: type: string default: 1 - name: Content-Type in: header schema: type: string example: application/json required: true - name: company_key in: path schema: type: string required: true - name: token in: path schema: type: string required: true description: The `token` is the SmartLink token (`wallet_id`) for the campaign.
Important: If you are entering a real wallet token, please note that using the "Try It" feature on the righthand console will send an actual API call to our system. This may result in a wallet template being created.
responses: '201': description: The Google Wallet template was created. content: application/json: schema: $ref: '#/components/schemas/androidTemplateResponse' put: tags: - Android Wallet Templates API summary: Update the Google Wallet template description: Update the Google Wallet (Android) pass template for a wallet campaign. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/androidTemplateRequest' parameters: - name: X-API-Version in: header schema: type: string default: 1 - name: Content-Type in: header schema: type: string example: application/json required: true - name: company_key in: path schema: type: string required: true - name: token in: path schema: type: string required: true description: The `token` is the SmartLink token (`wallet_id`) for the campaign.
Important: If you are entering a real wallet token, please note that using the "Try It" feature on the righthand console will send an actual API call to our system. This may result in a wallet template being updated.
responses: '200': description: The Google Wallet template was updated. content: application/json: schema: $ref: '#/components/schemas/androidTemplateResponse' '404': description: The campaign or its Google Wallet template cannot be found. components: schemas: androidTemplateResponse: allOf: - type: object properties: id: type: string description: Unique identifier of the Google Wallet template. active: type: boolean description: Whether the template is active. created_at: type: string description: When the template was created, in ISO-8601 format. updated_at: type: string description: When the template was last updated, in ISO-8601 format. - $ref: '#/components/schemas/googleWalletTemplateBody' androidTemplateRequest: example: wallet_template: title: Spring Sale issuer: Example Co provider: Example Store background_color: '#1a73e8' logo: url: https://cdn.example.com/logo.png barcode: type: QR_CODE value: '{{ token }}' alternate_text: '12345' type: object required: - wallet_template properties: wallet_template: required: - title - issuer - logo - barcode allOf: - $ref: '#/components/schemas/googleWalletTemplateBody' googleWalletTemplateBody: type: object description: Design and content of a Google Wallet (Android) pass. Google models three pass kinds — Offer, Loyalty, and Event Ticket — that share a common frame; field semantics follow Google Wallet generic passes (https://developers.google.com/wallet/generic). Many text fields accept Liquid personalization tags that are replaced per recipient. Fields noted as "loyalty only" or "event ticket only" apply only to campaigns of that type. properties: title: type: string description: The pass headline. issuer: type: string description: Organization that issues the pass. provider: type: string description: Merchant shown on the card. Required for offer passes. description: type: string description: Free-text offer description shown on the pass. Offer passes only. background_color: type: string description: Color that fills the card, as a hex value (for example `#1a73e8`). nfc_message: type: string description: Payload delivered when the pass is tapped on an NFC terminal (smart tap). enable_expiration_notification: type: boolean description: When `true`, sends the pass holder a push notification before the offer expires. Offer passes only. logo: type: object description: Small circular logo shown on the pass. properties: url: type: string description: Public URL of the logo image. hero_image: type: object description: Large featured image shown on the pass. properties: url: type: string description: Public URL of the hero image. strip_image: type: object description: Wide banner image shown on the pass. properties: url: type: string description: Public URL of the strip image. strip_images: type: array description: Per-recipient alternates of the `strip_image` banner. They share the single strip slot — only one is shown per pass, chosen at issue time by matching the recipient's `IMAGE_CODE` personalization token against `image_code`. If none matches, the default `strip_image` is shown. Each `image_code` must be unique within the array. items: type: object properties: image_code: type: string description: Unique code used to select this image for a recipient. url: type: string description: Public URL of the strip image. barcode: type: object description: The scannable code shown on the pass. properties: type: type: string description: Barcode format — one of `QR_CODE`, `PDF_417`, `AZTEC`, `CODE_128`, `TEXT_ONLY`, or `None` (lowercase variants `qrCode`, `pdf417`, `aztec`, `code128`, `textOnly` are also accepted). label: type: string description: Caption shown beneath the barcode. value: type: string description: Barcode content (ASCII only). Required unless `type` is `None`. alternate_text: type: string description: Human-readable text shown alongside the barcode. loyalty_points: type: object description: Points balance shown on the pass. Loyalty passes only. properties: label: type: string description: Caption for the points balance. balance: type: string description: Points balance value. Required when a label is present. secondary_loyalty_points: type: object description: Secondary points balance shown on the pass. Loyalty passes only. properties: label: type: string description: Caption for the secondary points balance. balance: type: string description: Secondary points balance value. Required when a label is present. account: type: object description: Account details shown on the pass. Loyalty passes only. properties: name: type: string description: Account holder name. name_label: type: string description: Caption for the account holder name. id: type: string description: Account identifier. id_label: type: string description: Caption for the account identifier. rewards_tier: type: object description: Rewards tier shown on the pass. Loyalty passes only. properties: label: type: string description: Caption for the rewards tier. name: type: string description: Rewards tier name. text_area: type: array description: Free-text modules shown on the pass. items: type: object properties: header: type: string description: Module heading. Supply both header and body, or leave both blank. body: type: string description: Module body text. subinfo: type: array description: Info-module rows (heading/body pairs) shown on the pass. items: type: object properties: header: type: string description: Row heading. Supply both header and body, or leave both blank. body: type: string description: Row body text. messages: type: array description: Push-style announcements shown on the pass. Loyalty and event ticket passes only. items: type: object properties: header: type: string description: Message heading. body: type: string description: Message body text. links: type: array description: Links module shown on the pass. items: type: object properties: description: type: string description: Link label. Required when a URI is present. uri: type: string description: Link target URL. help: type: object description: Help link shown on the pass. Event ticket passes only. properties: uri: type: string description: Help link target URL. description: type: string description: Help link label. homepage: type: object description: Homepage link shown on the pass. Event ticket passes only. properties: uri: type: string description: Homepage URL. description: type: string description: Homepage link label. trackers: type: array description: Tracking-pixel definitions. Each renders a 1x1 image beacon that fires on a pass lifecycle event for analytics. items: type: object properties: action: type: string description: Lifecycle event that fires the tracker. One of `view`, `add`, or `remove`. tag: type: string description: Beacon URL requested when the action occurs. event_id: type: string description: Identifier that groups tickets for the same event (max 64 characters). Event ticket passes only. ticket_holder_name: type: string description: Name of the ticket holder. Event ticket passes only. ticket_number: type: string description: Ticket number. Event ticket passes only. ticket_type: type: string description: Ticket type. Event ticket passes only. venue: type: object description: Event venue shown on the pass. Event ticket passes only. properties: name: type: string description: Venue name. Required when a venue is present. address: type: string description: Venue address. Required when a venue is present. event_info: type: object description: Event timing shown on the pass. Event ticket passes only. properties: doors_open_time: type: string description: When doors open. doors_open_label: type: string description: Caption for the doors-open time. start_time: type: string description: Event start time. end_time: type: string description: Event end time. seat_info: type: object description: Seat assignment shown on the pass. Event ticket passes only. Supply each value together with its matching label. properties: section: type: string description: Seat section. section_label: type: string description: Caption for the section. row: type: string description: Seat row. row_label: type: string description: Caption for the row. seat: type: string description: Seat number. seat_label: type: string description: Caption for the seat. gate: type: string description: Entry gate. gate_label: type: string description: Caption for the gate. reservation_info: type: object description: Reservation confirmation shown on the pass. Event ticket passes only. properties: confirmation_code: type: string description: Reservation confirmation code. confirmation_code_label: type: string description: Caption for the confirmation code. grouping_info: type: object description: Controls how related passes are grouped together on the device. Event ticket passes only. properties: sort_index: type: integer description: Position of this pass within its group. securitySchemes: basicAuth: type: http scheme: basic