Visa Digital Enablement Lite App

The Visa Digital Enablement Lite App is a cutting-edge mobile application that revolutionizes the way consumers interact with their Visa credit and debit cards. With this app, users can securely store their card information on their smartphones and use it to make contactless payments at participating merchants. The app also provides real-time notifications for all card transactions, helping users keep track of their spending and secure their financial data.

OpenAPI Specification

visa-digital-enablement.yml Raw ↑
openapi: 3.0.1
info:
  title: Visa Digital Enablement Lite App
  description: >-
    The Visa Digital Enablement (VDE) Lite App is a standalone, white-label
    solution that enables cardholders to push card credentials into Apple Pay
    (for iOS users) or Google Wallet (for Android users) without the need to
    download a client's mobile app. This efficient user experience facilitates
    quick and seamless execution of targeted tasks like provisioning to a
    digital wallet, thereby enabling immediate use of the card.
  version: '1'
servers:
  - url: https://sandbox.api.visa.com
    description: Sandbox server
security: []
tags:
  - name: URL Generation API
    description: URL Generation API
paths:
  /inapp/provision/appclip/url:
    post:
      tags:
        - URL Generation API
      summary: Generate VDE Lite app URL
      description: Create app clip or instant app URL for given payload.
      parameters:
        - $ref: '#/components/parameters/clientId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUrlRequest'
            examples:
              Card ID:
                summary: Card ID
                value:
                  emailLookupEnable: true
                  payload:
                    cardId: x123&
                    cardIdMetadata:
                      - clientId: C2
                      - customerId: C122
                    cardIdProvider: FWD
                    source: X123
                    user:
                      lastName: Doe
                      firstName: John
                      phoneNumber: '+13352226060'
                      locale: en-US
                      email: [email protected]
                  appId: d071aeff-9a39-c1b3-4482-1cbb9d300f01
              Using PAN:
                summary: Using PAN
                value:
                  emailLookupEnable: true
                  payload:
                    expirationYear: '2024'
                    nameOnAccount: John Doe
                    cardType: DEBIT
                    source: X123
                    billingAddress:
                      phoneNumber: '0015555551234'
                      city: Rocklin
                      countryCode: US
                      postalCode: '94404'
                      addressLine1: 933 Anvil Cir
                      addressLine2: Test
                      addressLine3: Street
                      stateProvinceCode: CA
                    expirationMonth: '11'
                    cardBrand: VISA
                    accountNumber: '4321432112341234'
                    user:
                      firstname: John
                      phoneNumber: '0015555551234'
                      locale: en-US
                      email: [email protected]
                      lastname: Doe
                  appId: d071aeff-9a39-c1b3-4482-1cbb9d300f01
        required: true
      responses:
        '201':
          description: Success Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateUrlResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-operationVersions:
        - label: v1 - Latest
          operationPointer: '#/paths/~1inapp~1provision~1appclip~1url/post'
          default: false
      x-hideTryIt: true
components:
  schemas:
    BadRequestResponse:
      required:
        - httpStatus
        - message
        - reason
      type: object
      properties:
        reason:
          type: string
          description: Error Code for the error condition.
        message:
          type: string
          description: >-
            Message describing the error condition with additional information
            wherever applicable.
        requestId:
          type: string
          description: Request unix timestamp, for debugging purpose.
        httpStatus:
          type: string
          description: HTTP Status code
          example: '400'
        correlationId:
          type: string
          description: Request trace id, for debugging purpose.
        errorMessages:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
                description: Detailed error message if any.
              location:
                type: string
                description: Detailed error location if any.
              attribute:
                type: string
                description: Detailed error attribute if any.
    CreateUrlRequest:
      required:
        - appId
      type: object
      properties:
        appId:
          type: string
          description: Issuer application Id.
          example: d071aeff-9a39-c1b3-4482-1cbb9d300f01
        payload:
          oneOf:
            - required:
                - accountNumber
                - cardBrand
                - cardType
                - expirationMonth
                - expirationYear
                - nameOnAccount
              type: object
              properties:
                user:
                  type: object
                  properties:
                    email:
                      type: string
                      description: >-
                        The users email address, which will be used to identify
                        the users existing account or user profile or to
                        establish a new account or user profile (e.g.
                        [email protected]).
                    locale:
                      type: string
                      description: >-
                        Locale code (en-US)- It helps to identify the locale to
                        be selected for email notifications.
                    lastname:
                      type: string
                      description: The users Last Name (e.g. SMITH).
                    firstname:
                      type: string
                      description: The users First Name (e.g. JOHN).
                    phoneNumber:
                      type: string
                      description: >-
                        Cardholder phone number including country code, without
                        spaces and special characters (e.g. 0016503334444).
                source:
                  type: string
                  description: >-
                    Optional for Single-Use clients. Required for
                    Multi-Use/Channel Partner clients.
                cardType:
                  type: string
                  description: 'Valid values are: DEBIT, CREDIT, PREPAID.'
                cardBrand:
                  type: string
                  description: 'Valid values are: VISA, MC.'
                accountNumber:
                  type: string
                  description: Full card number.
                nameOnAccount:
                  type: string
                  description: Full name on the card (Must use UTF-8 characters).
                billingAddress:
                  required:
                    - addressLine1
                    - city
                    - countryCode
                    - phoneNumber
                    - postalCode
                    - stateProvinceCode
                  type: object
                  properties:
                    city:
                      maxLength: 100
                      type: string
                      description: >-
                        City of the billing address (e.g. New York), no special
                        characters.
                    postalCode:
                      type: string
                      description: >-
                        U.S.: 5-digit numeric value (e.g. 94100). Canada:
                        6-digit alphanumeric value (e.g. M4B1B3). Other
                        countries: 5-16 digit alphanumeric value without special
                        characters.
                    countryCode:
                      type: string
                      description: >-
                        Must be in ISO 3166-1 alpha-2 or ISO 3166-1 alpha-3 or
                        ISO 3-digit numeric format (Recommend ISO 3166-1 alpha-2
                        format, e.g. US).
                    phoneNumber:
                      type: string
                      description: >-
                        Cardholder phone number including country code, without
                        spaces and special characters (e.g. 0016503334444).
                    addressLine1:
                      maxLength: 256
                      type: string
                      description: >-
                        Line 1 of the billing address (Must use UTF-8
                        characters)
                    addressLine2:
                      maxLength: 256
                      type: string
                      description: >-
                        Line 2 of the address, which usually corresponds to
                        apartment, suite, etc. (Must use UTF-8 characters)
                    addressLine3:
                      maxLength: 256
                      type: string
                      description: Line 3 of the address (Must use UTF-8 characters)
                    stateProvinceCode:
                      type: string
                      description: >-
                        Must be in ISO 3166-2 format, alphabetic value with max
                        length of 3 characters, with no dashes or spaces.
                expirationYear:
                  type: string
                  description: Year when the card is set to expire (e.g. 2023).
                expirationMonth:
                  type: string
                  description: Month when the card is set to expire (e.g. 02 for Feb).
              description: With PAN info
            - required:
                - cardId
                - cardIdProvider
              type: object
              properties:
                user:
                  type: object
                  properties:
                    email:
                      type: string
                      description: >-
                        The users email address, which will be used to identify
                        the users existing account or user profile or to
                        establish a new account or user profile (e.g.
                        [email protected]).
                    locale:
                      type: string
                      description: >-
                        Locale code (en-US)- It helps to identify the locale to
                        be selected for email notifications.
                    lastname:
                      type: string
                      description: The users Last Name (e.g. SMITH).
                    firstname:
                      type: string
                      description: The users First Name (e.g. JOHN).
                    phoneNumber:
                      type: string
                      description: >-
                        Cardholder phone number including country code, without
                        spaces and special characters (e.g. 0016503334444).
                cardId:
                  type: string
                  description: Card Identifier/Card ID.
                source:
                  type: string
                  description: >-
                    Optional for Single-Use clients. Required for
                    Multi-Use/Channel Partner clients.
                cardIdMetadata:
                  type: array
                  items:
                    type: object
                    properties:
                      clientId:
                        type: string
                        description: >-
                          Client information that can be used to resolve Card
                          ID. Information will be passed as-is to Card ID
                          provider. Conditional logic based on Card ID Provider:
                          FWD  Not Applicable; VUCE  Required; Issuer Client
                          ID value from VUCE API DCP Onboarding configuration
                          (Note: There are different values for Sandbox/CERT and
                          Production); VBR  Not Applicable.
                      customerId:
                        type: string
                        description: >-
                          Client information that can be used to resolve Card
                          ID. Information will be passed as-is to Card ID
                          provider who can resolve the card. Conditional logic
                          based on Card ID Provider: FWD  Not Applicable; VUCE
                           Required for Multi-Use/Channel Partners clients
                          (unless Client ID is provided); VBR  Not Applicable.
                cardIdProvider:
                  type: string
                  description: >-
                    Provider who can resolve the Card ID to the actual card
                    account data. Valid Values are: FWD, VUCE, VBR.
              description: With Card Id Request
        emailLookupEnable:
          type: boolean
          description: Enable search by email.
          example: true
    CreateUrlResponse:
      type: object
      properties:
        url:
          type: string
          description: URL generated
          example: https://domain.visa.com/dlink/push?payload=abc
        notified:
          type: boolean
          description: Notification status if enabled. By default
          example: false
    ErrorResponse:
      required:
        - httpStatus
        - message
        - reason
      type: object
      properties:
        reason:
          type: string
          description: Error Code for the error condition.
        message:
          type: string
          description: >-
            Message describing the error condition with additional information
            wherever applicable.
        requestId:
          type: string
          description: Request unix timestamp, for debugging purpose.
        httpStatus:
          type: string
          description: HTTP Status code
        correlationId:
          type: string
          description: Request trace id, for debugging purpose.
  responses: {}
  parameters:
    clientId:
      name: x-client-id
      in: header
      description: VDP client ID via Service Context
      required: true
      explode: false
      schema:
        type: string
      example: 86da0f74-19f0-4a20-9dde-3e83dfa6bf83
  examples: {}
  requestBodies: {}
  headers: {}
  callbacks: {}
x-tagGroups:
  - name: API Reference
    tags:
      - URL Generation API