> ## Documentation Index
> Fetch the complete documentation index at: https://docs.unblockedbrands.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a wallet pass

> Create a new wallet pass for both Apple and Google platforms.




## OpenAPI

````yaml api-reference/openapi.json post /wallet-pass
openapi: 3.1.0
info:
  title: Unblocked Wallet Passes API
  description: Unblocked Wallet Passes API
  version: 1.0.0
servers:
  - url: https://api.ubpass.co/v1
    description: Generated server url
security:
  - AccessToken: []
  - APIKey: []
tags:
  - name: Pique
    description: Get Pique Campaigns and their video performance data
  - name: Passport - Passes
    description: >-
      Create, update, retrieve, and delete wallet passes for Apple and Google
      platforms
  - name: Passport - Push Notifications
    description: Create, update, get, and delete wallet pass notifications
  - name: Passport - Locations
    description: Create, update, get, and delete wallet pass locations
  - name: Upload APIs
    description: Upload and manage pass assets and images
paths:
  /wallet-pass:
    post:
      tags:
        - Passport - Passes
      summary: Create a wallet pass
      description: |
        Create a new wallet pass for both Apple and Google platforms.
      operationId: createWalletPass
      parameters:
        - name: x-workspace-id
          in: header
          description: >-
            Workspace ID to perform the operation in. If not provided, system
            will use the first one assigned to the user
          required: false
          schema:
            type: string
            pattern: ^[a-zA-Z0-9-_]+$
          example: 1f089d29-6f9c-66c2-af59-99631cec7ab5
      requestBody:
        description: >-
          Wallet pass creation data including metadata, fields, and uploaded
          asset references
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WalletPassInfo'
            examples:
              Create Pass Request:
                summary: Example wallet pass creation request
                description: Create Pass Request
                value:
                  notificationHeader: BLUE PASS
                  passName: VIP MEMBERSHIP PASS
                  passMetadata:
                    description: Exclusive VIP membership pass with premium benefits
                    organizationName: Premium Brands Inc
                    backgroundColor: '#4a32A8'
                    displayTextColor: '#FFFFFF'
                    topField:
                      key: tabKey
                      label: SEE OFFERS
                      value: Tab (...)
                    secondaryFields:
                      - key: auxiliaryFieldKey
                        label: Member Level
                        value: VIP Gold
                      - key: auxiliaryFieldKey2
                        label: Expires
                        value: Dec 31, 2025
                    backFields:
                      - key: featured
                        label: Featured
                        value:
                          - link: https://premiumbrands.com/
                            text: Visit Our Website
                      - key: connectWithUs
                        label: Connect
                        value:
                          - link: https://x.com/premiumbrands/
                            text: X
                          - link: https://www.instagram.com/premiumbrands/
                            text: Instagram
                        changeMessage: null
                    qrUrl: https://premiumbrands.com/vip-benefits
                    qrText: Scan for VIP benefits
                  uploadInfoList:
                    - fileName: icon.png
                      uploadKey: 1f089d37-8a1b-4c2d-9e3f-123456789abc
                    - fileName: logo.png
                      uploadKey: 1f089d37-8a1b-4c2d-9e3f-123456789def
                    - fileName: strip.png
                      uploadKey: 1f089d37-8a1b-4c2d-9e3f-123456789ghi
        required: true
      responses:
        '201':
          description: Wallet pass created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletPassInfo'
              examples:
                Created Pass Response:
                  summary: Successfully created wallet pass
                  description: Created Pass Response
                  value:
                    id: 1f089d37-5ebe-6778-af59-99631cec7ab5
                    createdTime: '2025-09-04T21:09:36.027Z'
                    updatedTime: '2025-09-04T21:09:36.027Z'
                    createdBy: 1ef58ae6-40ac-6fd2-96af-45801844c4e2
                    updatedBy: 1ef58ae6-40ac-6fd2-96af-45801844c4e2
                    workspaceId: 1f089d29-6f9c-66c2-af59-99631cec7ab5
                    accountId: 1f089d29-6fa8-6a13-af59-99631cec7ab5
                    notificationHeader: BLUE PASS
                    passName: VIP MEMBERSHIP PASS
                    status: Published
                    passMetadata:
                      description: Exclusive VIP membership pass with premium benefits
                      organizationName: Premium Brands Inc
                      backgroundColor: '#4a32A8'
                      displayTextColor: '#FFFFFF'
                      topField:
                        key: tabKey
                        label: SEE OFFERS
                        value: Tab (...)
                      secondaryFields:
                        - key: auxiliaryFieldKey
                          label: Member Level
                          value: VIP Gold
                        - key: auxiliaryFieldKey2
                          label: Expires
                          value: Dec 31, 2025
                      backFields:
                        - key: featured
                          label: Featured
                          value:
                            - link: https://premiumbrands.com/
                              text: Visit Our Website
                      qrUrl: https://premiumbrands.com/vip-benefits
                      qrText: Scan for VIP benefits
                    uploadInfoList:
                      - fileName: icon.png
                        uploadKey: 1f089d37-8a1b-4c2d-9e3f-123456789abc
                      - fileName: logo.png
                        uploadKey: 1f089d37-8a1b-4c2d-9e3f-123456789def
                      - fileName: strip.png
                        uploadKey: 1f089d37-8a1b-4c2d-9e3f-123456789ghi
        '400':
          description: Bad Request - Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnblockedApiError'
              examples:
                Bad Request Error:
                  summary: Invalid input validation error
                  description: Bad Request Error
                  value:
                    txId: 1f098faa-8f33-6425-b4ff-533200846d35
                    timestamp: 24-09-2025 03:57:59
                    errorCode: INVALID_INPUT
                    context:
                      passName: must not be null
        '401':
          description: Unauthorized - Invalid or missing authentication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnblockedApiError'
              examples:
                Unauthorized Error:
                  summary: Authentication failed
                  description: Unauthorized Error
                  value:
                    txId: Root=1-68d3693c-26a3db2278c7668f5e086711
                    timestamp: 24-09-2025 03:45:00
                    errorCode: UNAUTHORIZED
                    errorMessage: UNAUTHORIZED.
components:
  schemas:
    WalletPassInfo:
      type: object
      properties:
        id:
          type: string
        createdTime:
          type: string
          format: date-time
          description: >-
            The time when the entity was created in ISO 8601 format including
            milliseconds and timezone offset.
          example: '2025-05-13T15:07:15.036Z'
        updatedTime:
          type: string
          format: date-time
          description: >-
            The time when the entity was last updated in ISO 8601 format
            including milliseconds and timezone offset.
          example: '2025-05-13T15:07:15.036Z'
        createdBy:
          type: string
          description: The user who created the entity.
        updatedBy:
          type: string
          description: The user who last updated the entity.
        workspaceId:
          type: string
          description: 'Workspace the pass belongs to. '
        passName:
          type: string
          description: Name of the pass, the name has to be unique within the workspace.
          example: My Wallet Pass
        passMetadata:
          $ref: '#/components/schemas/PassMetadata'
          description: Pass metadata.
        uploadInfoList:
          type: array
          description: >-
            Wallet pass images. each pass has to have a logo, icon, and strip
            images in png format. footer.png is optional.
          items:
            $ref: '#/components/schemas/UploadInfo'
        passLink:
          type: string
          description: >-
            The link where passes can be downloaded. This link will be generated
            after passes are created.
        notificationHeader:
          type: string
          description: >-
            This is used for Apple passes. The notification header is displayed
            on the lock screen when a notification is sent to the pass.
        account:
          $ref: '#/components/schemas/Account'
          description: >-
            Account which the pass belongs to. If it's not provided the system
            will automatically use the default account for the workspace.
        appleIssuedCount:
          type: integer
          format: int32
          description: >-
            Total number of users who have added this pass to their Apple
            Wallets
        googleIssuedCount:
          type: integer
          format: int32
          description: >-
            Total number of users who have added this pass to their Google
            Wallets
        totalIssuedCount:
          type: integer
          format: int32
          description: >-
            Total number of users who have added this pass to their wallets
            (Apple + Google)
        appleActiveCount:
          type: integer
          format: int32
          description: >-
            Total number of users who have added this pass to their Apple
            Wallets and have not removed it
        googleActiveCount:
          type: integer
          format: int32
          description: >-
            Total number of users who have added this pass to their Google
            Wallets and have not removed it
        totalActiveCount:
          type: integer
          format: int32
          description: >-
            Total number of users who have added this pass to their wallets
            (Apple + Google) and have not removed it
        passLinkSlug:
          type: string
          description: >-
            Slug to be used for the pass link. This is used to generate the pass
            link, if not provided the system will generate a random slug.
        googlePassLink:
          type: string
          description: Raw link to Google Pass. This link is provided by Google API.
        status:
          type: string
          description: Pass status
          enum:
            - Draft
            - Published
          example: Draft, Published
    UnblockedApiError:
      type: object
      properties:
        txId:
          type: string
        timestamp:
          type: string
          format: date-time
        errorCode:
          type: string
        errorMessage:
          type: string
        context:
          type: object
          additionalProperties: {}
    PassMetadata:
      type: object
      properties:
        description:
          type: string
          description: >-
            Pass description. Apple: Displayed on the back of the pass,
            providing additional details. Google: Used as the main description
            of the pass, visible in the pass details.
        organizationName:
          type: string
          description: >-
            Organization name. Apple: Displayed on the lock screen and in the
            Wallet app, identifying the issuer. Google: Displayed at the top of
            the pass, identifying the issuer.
        backgroundColor:
          type: string
          description: Background color of the pass.
        displayTextColor:
          type: string
          description: Text color of the pass.
        topField:
          $ref: '#/components/schemas/PassField'
          description: >-
            Top field. Apple: It appears at the right top of the pass.  Google:
            Top field appears below the pass description.
        secondaryFields:
          type: array
          description: Secondary fields.
          items:
            $ref: '#/components/schemas/PassField'
        backFields:
          type: array
          description: Back fields.
          items:
            $ref: '#/components/schemas/BackPassField'
        qrUrl:
          type: string
          description: URL or text for the QR code.
        qrText:
          type: string
          description: QR text. It appears below the QR code.
        locations:
          type: array
          description: >-
            Locations. Apple: Defines geographic locations where the pass is
            relevant. The pass can appear on the lock screen when the user is
            near one of these locations. Google: Not supported.
          items:
            $ref: '#/components/schemas/PassLocation'
        appDeepLinks:
          $ref: '#/components/schemas/AppDeepLinks'
        userDeepLink:
          $ref: '#/components/schemas/UserDeepLink'
          description: User deep link configuration containing app type and input link
    UploadInfo:
      type: object
      properties:
        fileKey:
          type: string
        fileName:
          type: string
        url:
          type: string
    Account:
      type: object
      properties:
        id:
          type: string
        createdTime:
          type: string
          format: date-time
          description: >-
            The time when the entity was created in ISO 8601 format including
            milliseconds and timezone offset.
          example: '2025-05-13T15:07:15.036Z'
        updatedTime:
          type: string
          format: date-time
          description: >-
            The time when the entity was last updated in ISO 8601 format
            including milliseconds and timezone offset.
          example: '2025-05-13T15:07:15.036Z'
        createdBy:
          type: string
          description: The user who created the entity.
        updatedBy:
          type: string
          description: The user who last updated the entity.
        workspaceId:
          type: string
          description: The ID of the workspace to which this entity belongs.
        name:
          type: string
          description: Account name
        clientContact:
          type: string
          description: Client contact
        clientContactDetails:
          type: string
          description: Client contact details
    PassField:
      type: object
      properties:
        key:
          type: string
        label:
          type: string
        value:
          type: string
        changeMessage:
          type: string
    BackPassField:
      type: object
      properties:
        key:
          type: string
        label:
          type: string
        value:
          type: array
          items:
            $ref: '#/components/schemas/BackPassFieldValue'
        changeMessage:
          type: string
    PassLocation:
      type: object
      properties:
        id:
          type: string
        createdTime:
          type: string
          format: date-time
          description: >-
            The time when the entity was created in ISO 8601 format including
            milliseconds and timezone offset.
          example: '2025-05-13T15:07:15.036Z'
        updatedTime:
          type: string
          format: date-time
          description: >-
            The time when the entity was last updated in ISO 8601 format
            including milliseconds and timezone offset.
          example: '2025-05-13T15:07:15.036Z'
        createdBy:
          type: string
          description: The user who created the entity.
        updatedBy:
          type: string
          description: The user who last updated the entity.
        workspaceId:
          type: string
          description: The ID of the workspace to which this entity belongs.
        name:
          type: string
          description: >-
            Name of the location. This field is required and has a maximum
            length of 255 characters.
          example: Main Store
          maxLength: 255
          minLength: 0
        enabled:
          type: boolean
          description: >-
            Indicates whether the location is enabled. If true, the pass may
            trigger a notification when the user is near this location. Default
            is true if not specified.
          example: true
        latitude:
          type: number
          format: double
          description: Latitude of the location in degrees. This field is required.
          example: 37.7749
        longitude:
          type: number
          format: double
          description: Longitude of the location in degrees. This field is required.
          example: -122.4194
        altitude:
          type: number
          format: double
          description: Altitude of the location in meters. Optional.
          example: 10.5
        relevantText:
          type: string
          description: >-
            Text to display on the lock screen when the user is near this
            location. This field is required and has a maximum length of 255
            characters.
          example: You are near Main Store!
          maxLength: 255
          minLength: 0
      required:
        - latitude
        - longitude
        - name
        - relevantText
    AppDeepLinks:
      type: object
      properties:
        appleDeepLinkData:
          $ref: '#/components/schemas/AppleDeepLinkData'
        googleDeepLinkData:
          $ref: '#/components/schemas/GoogleDeepLinkData'
    UserDeepLink:
      type: object
      properties:
        appType:
          type: string
          description: Type of application for the deep link
          enum:
            - Website
            - Mobile App
            - Tiktok
            - Instagram
            - X
            - Youtube
            - Spotify
        inputLink:
          type: string
          description: The input link URL for the deep link
        appleAppStoreUrl:
          type: string
          description: Apple App Store URL (for Mobile App type)
        launchUrl:
          type: string
          description: Launch URL (for Mobile App type)
        googlePlayStoreUrl:
          type: string
          description: Google Play Store URL (for Mobile App type)
    BackPassFieldValue:
      type: object
      properties:
        text:
          type: string
        link:
          type: string
        slug:
          type: string
        shortLinkValue:
          type: string
        shortLinkId:
          type: string
        utmSource:
          type: string
    AppleDeepLinkData:
      type: object
      properties:
        appStoreId:
          type: string
        launchUrl:
          type: string
    GoogleDeepLinkData:
      type: object
      properties:
        androidPackageName:
          type: string
        webAppUrl:
          type: string
        displayText:
          type: string
  securitySchemes:
    AccessToken:
      type: http
      description: Bearer token authentication
      scheme: bearer
      bearerFormat: JWT
    APIKey:
      type: apiKey
      description: API Key authentication
      name: api-key
      in: header

````