NovoPayment Issuer Tokenization API

NovoPayment, as a Token Service Provider, has a collection of APIs that enables Issuers to participate in the Tokenization ecosystem; we are responsible for the interaction between the Issuer and the franchises. Providing security in the process, ease of implementation and support for your development teams throughout the project.

Operations 12

POST /v1/checkEligibility Check Eligibility #
POST /v1/approveProvision Approve Provision #
POST /v1/notification Notification #
POST /v1/verification/methods Get Cardholder Verification Methods #
POST /v1/sendPasscode Send Passcode #
POST /v1/deviceBinding Device Token Binding #
POST /v1/cardinfo Card Info #
POST /itsp/{clientID}/vtis/v1/pan/lifecycle PAN Lifecycle #
POST /itsp/{clientID}/vtis/v1/tokens/lifecycle Token Lifecycle #
POST /itsp/{clientID}/vtis/v1/pan/retrieveTokenInfo Token Inquiry by PAN #
POST /itsp/{clientID}/vtis/v1/tokens/details Token Inquiry #
POST /itsp/{clientID}/vtis/v1/updateCardMetadata Update card Metadata #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/issuer-tokenization"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

novopayment-issuer-tokenization-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: >
    NovoPayment, as a Token Service Provider, has a collection of APIs that
    enables Issuers to participate in the Tokenization ecosystem; we are
    responsible for the interaction between the Issuer and the franchises.


    Providing security in the process, ease of implementation and support for
    your development teams throughout the project.


    The integration between the Issuer and this portfolio services are with API
    Rest, all these services are useful for the Issuer, who is responsible for
    providing the cards and carrying out the process of validation and approval
    of the tokens.


    The set of APIs that the Issuer needs to develop are listed below, depending
    on the relation between Novo and the client.


    When an issuer is a client of our issuance services, the verification and
    approval processes are performed by us. For that reason, only need to develop

    this set of APIs:

    - [Sendpasscode](https://developer.novopayment.com/api/tokenization/issuer-tokenization-api-v1.0#/operations/SendPasscode)

    - [Notification](https://developer.novopayment.com/api/tokenization/issuer-tokenization-api-v1.0#/operations/Notification)

    - [Token Inquiry](https://developer.novopayment.com/api/tokenization/issuer-tokenization-api-v1.0#/operations/TokenInquiry)

    - [Token Inquiry by PAN](https://developer.novopayment.com/api/tokenization/issuer-tokenization-api-v1.0#/operations/TokenInquiryPan)

    - [Token Lifecycle](https://developer.novopayment.com/api/tokenization/issuer-tokenization-api-v1.0#/operations/TokenLifecycle)

    - [PAN Lifecycle](https://developer.novopayment.com/api/tokenization/issuer-tokenization-api-v1.0#/operations/PanLifecycle)

    - [Update card metadata](https://developer.novopayment.com/api/tokenization/issuer-tokenization-api-v1.0#/operations/UpdateCardMetadata)


    If the Issuer has its own system to issued and manage cards, also will need

    to develop these APIs:


    - [Check Eligibility](https://developer.novopayment.com/api/tokenization/issuer-tokenization-api-v1.0#/operations/CheckEligibility)

    - [Approve Provisioning](https://developer.novopayment.com/api/tokenization/issuer-tokenization-api-v1.0#/operations/ApproveProvision)

    - [Get Cardholder Verification Methods](https://developer.novopayment.com/api/tokenization/issuer-tokenization-api-v1.0#/operations/CardholderVerificationMethods)

    - [Device Token Binding](https://developer.novopayment.com/api/tokenization/issuer-tokenization-api-v1.0#/operations/DeviceTokenBinding)



    ## Header Params


    HTTP headers allow the client and server to pass additional information with

    the request or response.


    ### HTTP Header fields


    | Name| Description| Data Type| Required/<br>Optional/<br>Conditional|

    |-|-|-|-|

    | X-REQUEST-ID | Unique ID for the API request. This ID is the reference in all the API’s processes.| String (1-36)| Required|

    | Accept | Content types that are acceptable related to this operation. Sample: application / json; charset = UTF-8 | String | Required|

    | Content-Type | Response body type. Operation related information. Sample: application / json; charset = UTF-8 | String | It is not required if the body of the request is empty, like a “GET” request.|

    | Accept-Language | Language accepted in the response. Sample: en-US. The default value is "en-US". | String | Optional|

    | Content-Language | Language of the request. Sample: en-US. The default value is "en-US". | String | Optional|

    | apikey | Obtained Client ID in NovoPayment’s developer hub, that identifies the client that sends the request. Sample: dbhCR5oPkopFI7OXmGkYFDVpmABxuWMx | String | Required|


    ## Security


    This section describes the encryption and decryption strategies to protect

    sensitive information.


    ### Data Encryption


    The body fields sent by the issuer to the I-TSP in the request have

    confidential information that must be encrypted with JWE (JSON Web Encryption)

    and JWS( JSON Web Signature)


    ### JWE Composition


    The following format specifies the encrypted body fields of the plain text

    representation.


    Base64URL (UTF8 (header JWE)) || '.' || Base64URL (encrypted key JWE) ||

    '.'|| Base64URL (initialization vector JWE) ||

    '.' || Base64URL (encrypted text JWE) || '.' || Base64URL (JWE authentication tag)


    ### JWE Header


    The JWE Header contains the following metadata for the encryption and decryption.


    | Name | Description | Data type | Required/<br>Optional/<br>Conditional |

    |-|-|-|-|

    | alg | The value is RSA-OAEP-256 | Enum | Required |

    | kid | Identifier of the key to be used. | String (64) | Optional |

    | typ | The value is JOSE | String (32) | Required |

    | enc | The value is A256GCM | Enum | Required |


    ### JWS Composition


    The following format specifies the encrypted body fields of the plain text

    representation.


    Base64URL (UTF-8 (header JWS)) || '.' || Base64URL (JWE) || '.' ||

    Base64URL (signature JWS)


    ### JWS Header


    The JWS Header contains the following metadata for the encryption and

    decryption.


    | Name | Description | Data type | (length) | Required/<br>Optional/<br>Conditional |

    |-|-|-|-|-|

    | alg  | The value is PS256 | Enum | | Required |

    | kid  | Identifier of the key used to signed. | String (64) | | Optional |

    | typ  | The value is JOSE | String (32) | | Required |

    | cty  | The value is JWE | Enum | | Required |


    _**Note:**_


    _The issuer must give to NovoPayment the RSA encryption certificates for JWE

    and JWS. In addition, NovoPayment will give the corresponding certificates

    to the issuer._
  version: v1.0
  title: Issuer Tokenization API
servers:
  - description: UAT
    url: https://cert-api.novopayment.com
tags:
  - name: Tokenization Process
  - name: Life Cycle Management
paths:
  "/v1/checkEligibility":
    post:
      servers:
        - description: |
            External
          url: "https://[URLIssuer]"
      tags:
        - Tokenization Process
      summary: Check Eligibility
      description: |
        This endpoint is consumed in the card enrollment flow for VTS, and it
        is only valid when the metadata card information is only known by one
        entity or an external issuer.

        NovoPayment will consume this endpoint when it is required to very if a
        card is eligible for the card enrollment flow.
      parameters:
        - $ref: "#/components/parameters/ContentType"
        
      requestBody:
        $ref: "#/components/requestBodies/RQCheckEligibility"
      operationId: CheckEligibility
      responses:
        "200":
          $ref: "#/components/responses/RSCheckEligibility200"
        "400":
          $ref: "#/components/responses/RS400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/v1/approveProvision":
    post:
      servers:
        - description: External
          url: "https://[URLIssuer]"
      tags:
        - Tokenization Process
      summary: Approve Provision
      description: >
        This endpoint is consumed in the card enrollment flow for VTS, and
        it is

        only valid when the metadata card information is only known by one entity

        or an external issuer.


        NovoPayment will consume this endpoint when it is required to very if a

        card is eligible for the card enrollment flow with external Issuers.
      requestBody:
        $ref: "#/components/requestBodies/RQApproveProvision"
      operationId: ApproveProvision
      responses:
        "200":
          $ref: "#/components/responses/RSApproveProvision200"
        "400":
          $ref: "#/components/responses/RSErrorCode400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/v1/notification":
    post:
      servers:
        - description: External
          url: "https://[URLIssuer]"
      tags:
        - Tokenization Process
      summary: Notification
      description: |
        NovoPayment to Issuer (external and internal).

        The I-TSP notification to the issuer is done through a REST request to
        the URL previously send by the issuer.

        Through this endpoint, the Issuer is going to receive a variety of
        different notifications regarding changes to the tokens, PAN, or Card
        Metadata lifecycle.

        Every notification could have different parameters.
      
      requestBody:
        $ref: "#/components/requestBodies/RQNotification"
      operationId: Notification
      responses:
        "200":
          $ref: "#/components/responses/RS200"
        "400":
          $ref: "#/components/responses/RS400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"

  "/v1/verification/methods":
    post:
      servers:
        - description: External
          url: "https://[URLIssuer]"
      tags:
        - Tokenization Process
      summary: Get Cardholder Verification Methods
      description: |
        NovoPayment to Issuer (external and internal).

        This endpoint allows the issuer to notify the I-TSP the different
        cardholder authentication methods such as email, phone number, among
        others for the delivery of the One Time Password (OTP). The request
        from the I-TSP to the Issuer is sent through a REST request to a URL
        previously send by the issuer.
      
      requestBody:
        $ref: "#/components/requestBodies/RQCardholderVerificationMethods"
      operationId: CardholderVerificationMethods
      responses:
        "200":
          $ref: "#/components/responses/RSCardholderVerificationMethods200"
        "400":
          $ref: "#/components/responses/RS400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/v1/sendPasscode":
    post:
      servers:
        - description: External
          url: "https://[URLIssuer]"
      tags:
        - Tokenization Process
      summary: Send Passcode
      description: |
        NovoPayment to Issuer (external and internal)

        This endpoint allows the issuer to send an OTP or a temporally
        verification code to the cardholder that have requested it through the
        wallet.
      requestBody:
        $ref: "#/components/requestBodies/RQSendPasscode"
      operationId: SendPasscode
      responses:
        "200":
          $ref: "#/components/responses/RS200"
        "400":
          $ref: "#/components/responses/RS400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"

  "/v1/deviceBinding":
    post:
      servers:
        - description: External
          url: "https://[URLIssuer]"
      tags:
        - Tokenization Process
      summary: Device Token Binding
      description: >
        NovoPayment to External Issuer.


        The issuer approves the binding of an e-commerce or Card-On-File token to a device.
      requestBody:
        $ref: "#/components/requestBodies/RQDeviceTokenBinding"
      operationId: DeviceTokenBinding
      responses:
        "200":
          $ref: "#/components/responses/RSDeviceTokenBinding200"
        "400":
          $ref: "#/components/responses/RS400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"

  "/v1/cardinfo":
    post:
      servers:
        - description: External
          url: "https://[URLIssuer]"
      tags:
        - Tokenization Process
      summary: Card Info
      description: >
        Get card and customer information for a list of card ids.
      requestBody:
        $ref: "#/components/requestBodies/RQCardInfo"
      operationId: CardInfo
      responses:
        "200":
          $ref: "#/components/responses/RSCardInfo200"
        "400":
          $ref: "#/components/responses/RSCardInfo400"
        "500":
          $ref: "#/components/responses/RSCardInfo500"

  "/itsp/{clientID}/vtis/v1/pan/lifecycle":
    post:
      tags:
        - Life Cycle Management
      summary: PAN Lifecycle
      description: >
        Issuer to NovoPayment.


        The issuer notifies the I-TSP that an update has been made at the PAN

        level in case of replacement or expiration date so that the I-TSP can

        take the pertinent actions with Visa for the card at the VTS level.


        ### Cardholderinfo Field Contents for Update Operation Type ###


        |Lifecycle 
        operationReasonCode |Old PAN Value (pan)
        Cardholderinfo |Old PAN ExpiryDate |NewPAN (pan2)
        replaceCardholderInfo |NewPAN ExpiryDate
        replaceCardholderInfo |Used by|

        | :- | :- | :- | :- | :- | :- |

        |Replacing a card with another one 
        ACCOUNT\_UPDATE|PAN 1|PAN 1 Expiry|PAN 2|PAN 2 Expiry|Token/VAU|

        |PAN Update (Reversal) ACCOUNT\_UPDATE|PAN 1|N/A|N/A|N/A|Token/VAU|

        |PAN Expiry Date Update EXP\_DATE\_UPDATE|PAN 1|PAN 1 Old Expiry|PAN 1|PAN 1 New Expiry|Token/VAU|

        |Delete Token 
        DELETE\_TOKEN|PAN 1|N/A|N/A|N/A|Token/VAU|

        |Close Account 
        ACCOUNT_CLOSED|PAN 1|N/A|N/A|N/A|VAU|

        |Contact Cardholder 
        CONTACT_CARDHOLDER|PAN 1|N/A|N/A|N/A|VAU|

        |Portfolio Conversion
        PORTFOLIO_CONVERSION|PAN 1|N/A|PAN 2|PAN 2 EXPIRY|VAU|

        |PAN RPIN Enrollment
        UPDATE_ACCOUNT_LEVEL_RECORD|N/A|N/A|PAN 1|N/A|ALM|

        |PAN Link Enrollment
        UPDATE_ACCOUNT_LEVEL_RECORD|N/A|N/A|PAN 1|N/A|ALM|

        |PAN Replace Enrollment
        UPDATE_ACCOUNT_LEVEL_RECORD|PAN 1|N/A|PAN 2|N/A|ALM|

        |Opt into the VAU (Visa Account Updater) resulting 
        in account credentials being shared with the 
        merchant.
        VAU_CARDHOLDER_OPT_IN|PAN 1|N/A|N/A|N/A|VAU|

        |Opt out of the VAU (Visa Account Updater) 
        preventing account credentials from being shared 
        with the merchant.
        VAU_CARDHOLDER_OPT_OUT|PAN 1|N/A|N/A|N/A|VAU|

        ### Validations about the fields:

        - When the reason code is ACCOUNT_UPDATE the old PAN and replacement
          PAN cannot be the same.

        - If the reason code is EXP_DATE_UPDATE (expiry date update only), the
          old PAN and replacement PAN values must be the same.
        
#JR-06122023 - Oculto esta seccioon, genera confusioon.
#        |Contact Cardholder CONTACT\_CARDHOLDER|PAN 1|N/A|N/A|N/A|VAU|
#        |Portfolio Conversion CONVERSION|PAN 1|N/A|PAN 2|PAN 2Expiry|VAU
      parameters:
        - $ref: "#/components/parameters/clientID"
      requestBody:
        $ref: "#/components/requestBodies/RQPanLifecycle"
      operationId: PanLifecycle
      responses:
        "200":
          $ref: "#/components/responses/RSPanLifeCycle200"
        "400":
          $ref: "#/components/responses/RSErrorCode400PanLifeCycle"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  
  "/itsp/{clientID}/vtis/v1/tokens/lifecycle":
    post:
      tags:
        - Life Cycle Management
      summary: Token Lifecycle
      description: |
        Issuer to NovoPayment.

        The issuer notifies the I-TSP that wants to update the token changing
        the state, like activate, resume, suspend or delete the token.
        #### LifeCycle Management ####

        ![Available token status changes](https://dcrpi6aufyoyb.cloudfront.net/uat/images/TokenLifeCycle_StatusChanges.jpg)
      parameters:
        - $ref: "#/components/parameters/clientID"
      requestBody:
        $ref: "#/components/requestBodies/RQTokenLifecycle"
      operationId: TokenLifecycle
      responses:
        "200":
          $ref: "#/components/responses/RS200"
        "400":
          $ref: "#/components/responses/RSErrorCode400TokenLifeCycle"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/itsp/{clientID}/vtis/v1/pan/retrieveTokenInfo":
    post:
      tags:
        - Life Cycle Management
      summary: Token Inquiry by PAN
      description: |
        Issuer to NovoPayment.

        The issuer can request the details on all tokens associated with a card.
      parameters:
        - $ref: "#/components/parameters/clientID"
      requestBody:
        $ref: "#/components/requestBodies/RQTokenInquiryPan"
      operationId: TokenInquiryPan
      responses:
        "200":
          $ref: "#/components/responses/RSTokenInquiryPan200"
        "400":
          $ref: "#/components/responses/RSErrorCode400TokInqbyPAN"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RSErrorCode500TokInqbyPAN"
  "/itsp/{clientID}/vtis/v1/tokens/details":
    post:
      tags:
        - Life Cycle Management
      summary: Token Inquiry
      description: >
        Issuer to NovoPayment.


        This service enables the issuer to request details about a specific token.
      parameters:
        - $ref: "#/components/parameters/clientID"
      requestBody:
        $ref: "#/components/requestBodies/RQTokenInquiry"
      operationId: TokenInquiry
      responses:
        "200":
          $ref: "#/components/responses/RSTokenInquiry200"
        "400":
          $ref: "#/components/responses/RS400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"

  "/itsp/{clientID}/vtis/v1/updateCardMetadata":
    post:
      tags:
        - Life Cycle Management
      summary: Update card Metadata
      description: |
        Issuer to NovoPayment.

        This service allows the issuer to update the card metadata attributes
        associated with the card after the card has been provisioned in the
        digital wallet.

        Note: When submitting updates for a card, the full send of metadata
        attributes must be submitted and not just the ones that were changed.
      parameters:
        - $ref: "#/components/parameters/clientID"
      requestBody:
        $ref: "#/components/requestBodies/RQUpdateCardMetadata"
      operationId: UpdateCardMetadata
      responses:
        "200":
          $ref: "#/components/responses/RSUpdateCardMetadata200"
        "400":
          $ref: "#/components/responses/RSError400UpdateCardMetadata"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
components:
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      description: >
        See [Oauth2
        API](https://developer.novopayment.com/api/authentication-method-and-encryption/oauth2-api)
      flows:
        clientCredentials:
          tokenUrl: https://sandbox-api.novopayment.com/oauth2/token
          scopes: {}
  examples:

    RSErrorCode400-ISE40000:
      description: ISS_ERROR_REQUIRED_DATA_MISSING
      value:
        errorCode: ISE40000
    RSErrorCode400-ISE40001:
      description: ISS_ERROR_PAN_INELIGIBLE
      value:
        errorCode: ISE40001
    RSErrorCode400-ISE40003:
      description: SS_ERROR_INVALID_CARD_TYPE
      value:
        errorCode: ISE40003
    RSErrorCode400-ISE40005:
      description: ISS_ERROR_INVALID_FIELD_LENGTH
      value:
        errorCode: ISE40005
    RSErrorCode400-ISE40006:
      description: ISS_ERROR_INVALID_FIELD_TYPE
      value:
        errorCode: ISE40006
    RSErrorCode400-ISE40010:
      description: ISS_ERROR_CRYPTOGRAPHY_ERROR
      value:
        errorCode: ISE40010
    RSErrorCode400-ISE40013:
      description: ISS_ERROR_INVALID_EXP_DATE
      value:
        errorCode: ISE40013

    RSErrorCode400-VSE40000:
      description: VSE_ERROR_INVALID_DATA
      value:
        errorCode: VSE40000
    RSErrorCode400-VSE40001:
      description: VSE_ERROR_REQUIRED_DATA_MISSING
      value:
        errorCode: VSE40001
    RSErrorCode400-VSE40002:
      description: VSE_ERROR_TOKEN_STATE_EXIST
      value:
        errorCode: VSE40002
    RSErrorCode400-VSE40003:
      description: VSE_ERROR_TOKEN_NOT_FOUND
      value:
        errorCode: VSE40003
    RSErrorCode400-VSE40004:
      description: VSE_ERROR_INVALID_PROFILE_ID
      value:
        errorCode: VSE40004
    RSErrorCode400-VSE40006:
      description: VSE_ERROR_INVALID_REPLACEMENT_PAN
      value:
        errorCode: VSE40006    
    RSErrorCode400-VSE40007:
      description: VSE_ERROR_INVALID_TOKEN_STATE
      value:
        errorCode: VSE40007
    
    RSErrorCode500-VSE40009:
      description: VSE_INTERNAL_SYSTEM_ERROR
      value:
        errorCode: VSE40009
    RSErrorCode400-VSE40010:
      description: VSE_ERROR_CRYPTOGRAPHY_ERROR
      value:
        errorCode: VSE40010
    RSErrorCode400-VSE40011:
      description: VSE_INTERNAL_SYSTEM_ERROR
      value:
        errorCode: VSE40011
    
    RSErrorCodeNotFound:
      description: Not Found
      value:
        errorCode: NP400900

    RSErrorCode500-ISE40009:
      description: INTERNAL SERVER ERROR
      value:
        errorCode: ISE40009

    RQNotificationTokenCreated:
      value:
        eventType: TOKEN_CREATED
        panReferenceID: V-3021084701796922123456
        tokenReferenceID: DNITHE30161617843905731102000000
        tokenRequestorID: 40000000055
        messageReason: Token created successfully
        messageReasonCode: TOKEN_CREATED
        dateTimeOfEvent: 2022-04-25T23:19:12.000Z
        deviceInfo: 
          deviceID: OTc0MzJhMmEtYWUxOC0zMGUy
          deviceLanguageCode: eng
          deviceType: MOBILE_PHONE
          deviceName: TTIxMDJKMjBTRw..
          osType: ANDROID
          osVersion: 11
          osBuildID: RKQ1.200826.002
          deviceIDType: Derived
          deviceManufacturer: Xiaomi
          deviceBrand: POCO
          deviceModel: M2102J20SG
          tokenProtectionMethod: SOFTWARE
          encryptedData: ZXlKMGVYQWlPaUpLV...qdHgzd2dod1pJbkN2d3Qtdy1jRTJ1cGVDekZnN3o0Zk5wRFRFOV...enUxME1nWkJTQXVEQ3ZfVzlZaVZUdEx1TGli...NOWFphSWxtN1ZfY0pZOUpEdFZFTWROWjNy...WaGdGT3ZRQWx5O
          actionCode: 00
          lifeCycleTraceID: 302291744095994
          clientWalletAccountID: 7f7e9cef-1234
          panSource: KEY_ENTERED
          cvv2ResultsCode: M
          consumerEntryMode: UNKNOWN
          locale: en_US
          termsAndConditions: 
            id: 3f7f87ae2ff0439f80f322ec3dfa8777
            date: 1970-01-03T10:45:18.000+0000
          tokenRequestorTspID: 40000000055
          walletAccountEmailAddressHash: A9C49C43A63249115F6DD9CD72C6A8AC58F5D44E35EDC6D36CFF999BAC3B228E
          addressVerificationResultCode: A

    
    RQNotificationTokenActivationSTIP:
      value:
        eventType: TOKEN_ACTIVATION_STIP
        panReferenceID: V-3021084701796922123456
        tokenReferenceID: DNITHE30161617843905731102000000
        tokenRequestorID: 40000000055
        messageReasonCode: TOKEN_ACTIVATION_STIP
        dateTimeOfEvent: 2021-03-30T19:50:15.000Z
        deviceInfo: 
          deviceID: WIRO202110
          deviceLanguageCode: eng
          deviceType: MOBILE_PHONE
          deviceName: MyXvv73vv73vv70.
          deviceNumber: 7868671470
          osType: ANDROID
          osVersion: 4.4.4
          osBuildID: KTU84M
          deviceIDType: TEE
          deviceManufacturer: Samsung
          deviceBrand: Android Brand
          deviceModel: ANDROID-999
          tokenProtectionMethod: SOFTWARE
        encryptedData: ZXlKMGVYQWlPaUpLV...qdHgzd2dod1pJbkN2d3Qtdy1jRTJ1cGVDekZnN3o0Zk5wRFRFOV...enUxME1nWkJTQXVEQ3ZfVzlZaVZUdEx1TGli...NOWFphSWxtN1ZfY0pZOUpEdFZFTWROWjNy...WaGdGT3ZRQWx5O
        actionCode: N7
        lifeCycleTraceID: 302291744095994
        clientWalletAccountID: 7f7e9cef-1234
        panSource: KEY_ENTERED
        cvv2ResultsCode: N
        consumerEntryMode: UNKNOWN
        locale: en_US
        stipReasonCode: 9020
        tokenRequestorTspID: 40000000055
        walletAccountEmailAddressHash: A9C49C43A63249115F6DD9CD72C6A8AC58F5D44E35EDC6D36CFF999BAC3B228E
        addressVerificationResultCode: X  

    RQNotificationTokenStatusUpdate:
      value:
        eventType: TOKEN_STATUS_UPDATED
        panReferenceID: V-3021084701796922123456
        tokenReferenceID: DNITHE30161617843905731102000000
        tokenRequestorID: 40000000055
        messageReason: Test status update
        messageReasonCode: TOKEN_DEVICE_BINDING_RESULT
        dateTimeOfEvent: "2022-04-25T23:19:12.000Z"
        deviceInfo:
          deviceID: OTc0MzJhMmEtYWUxOC0zMGUy
          deviceLanguageCode: eng
          deviceType: MOBILE_PHONE
          deviceName: TTIxMDJKMjBTRw..
          osType: ANDROID
          osVersion: 11
          osBuildID: RKQ1.200826.002
          deviceIDType: Derived
          deviceManufacturer: Xiaomi
          deviceBrand: POCO
          deviceModel: M2102J20SG
          tokenProtectionMethod: SOFTWARE
        encryptedData:
          panReferenceID: V-3019231458906209630635
          tokenReferenceID: DNITHE30194726875288888
          tokenRequestorID: 40022358888
          messageReason: TOKEN_CREATED
          dateTimeOfEvent: 2019-11-04T20:32:50.000z
          deviceInfo:
            deviceID: CTF0000000001
            deviceType: MOBILE_PHONE
            deviceName: MyCTFDeviceTEst
            deviceNumber: 6506198963
            deviceIndex: 1
          termsAndConditions:
            id: 13c5e2ba-eb5c-432d-a027-97ddaf109af1
            date: 111115
        actionCode: 0
        lifeCycleTraceID: 302291744095994
        tokenRequestorTspID: 40000000055
        deviceID: OTc0MzJhMmEtYWUxOC0zMGUy
        activationVerificationResult: VERIFICATION_SUCCESS
        cardHolderStepupResult: CARDHOLDER_STEPUP_OTP
        deviceBindingResult: DEVICE_BINDING_CALL_CENTER
        trustedListingResult: TRUSTED_LISTING_ADDED
        merchantInfo:
          merchantID: 421
          merchantName: Mi comercio
        tokenUserInfo: null

    RQNotificationPanUpdate:
      value:
        eventType: PAN_UPDATED
        panReferenceID: V-3021084701796922123456
        messageReason: Account updated OK
        messageReasonCode: ACCOUNT_UPDATE
        dateTimeOfEvent: "2022-04-25T23:19:12.000Z"
        accountLevelInfoResp: null

    RQNotificationCardMetadataUpdate:
      value:
        eventType: CARD_METADATA_UPDATED
        tokenReferenceID: DNITHE302213059337966526
        tokenRequestorID: 40010021347
        messageReasonCode: CARD_METADATA_UPDATED
        taskID: ed39279e-2fc7-43f6-b89d-756420564c91
        statusCode: FAILURE
        errorCode: VSE40001

    RQPanLifecycleCardHolder:
      value:
        operatorID: operator1
        operationType: UPDATE
        operationReason: This is the Update reason
        operationReasonCode: ACCOUNT_UPDATE
        encryptedData:
          cardholderInfo:
            primaryAccountNumber: 46900015240008
            expirationDate:
              month: 04
              year: 2023
          replaceCardholderInfo:
            primaryAccountNumber: 46900015240077
            expirationDate:
              month: 07
              year: 2028
    
    RQPanLifecycleCardId:
      value:
        operatorID: operator1
        operationType: UPDATE
        operationReason: This is the Update reason
        operationReasonCode: ACCOUNT_UPDATE
        cardId: 43673138-8214-4958-999f-b3d54c8c64c5
        cardIdReplace: 43673138-8214-4958-999f-b3d54c0c90c9

    RQPanLifecycleCardHolder_AC:
      value:
        operatorID: operator1
        operationType: UPDATE
        operationReason: Client request cancelation
        operationReasonCode: ACCOUNT_CLOSED
        encryptedData:
          cardholderInfo:
            primaryAccountNumber: 46900015240008
    
    RQPanLifecycleCardId_EDU:
      value:
        operatorID: operator1
        operationType: UPDATE
        operationReason: Card Renovation
        operationReasonCode: EXP_DATE_UPDATE
        cardId: 43673138-8214-4958-999f-b3d54c8c64c5
        newExpirationDate:
              month: 04
              year: 2028

    RQPanLifecycleCardHolder_EDU:
      value:
        operatorID: operator1
        operationType: UPDATE
        operationReason: Card Renovation
        operationReasonCode: EXP_DATE_UPDATE
        encryptedData:
          cardholderInfo:
            primaryAccountNumber: 46900015240008
            expirationDate:
              month: 04
              year: 2023
          replaceCardholderInfo:
            primaryAccountNumber: 46900015240008
            expirationDate:
              month: 07
              year: 2028
    
    RQPanLifecycleCardId_AC:
      value:
        operatorID: operator1
        operationType: UPDATE
        operationReason: Client request cancelation
        operationReasonCode: ACCOUNT_CLOSED
        cardId: 43673138-8214-4958-999f-b3d54c8c64c5
    
    RQPanLifecycleCardHolder_DT:
      value:
        operatorID: operator1
        operationType: DELETE
        operationReason: This is the delete reason
        operationReasonCode: DELETE_TOKEN
        encryptedData:
          cardholderInfo:
            primaryAccountNumber: 46900015240008
    
    RQPanLifecycleCardId_DT:
      value:
        operatorID: operator1
        operationType: DELETE
        operationReason: This is the delete reason
        operationReasonCode: DELETE_TOKEN
        cardId: 43673138-8214-4958-999f-b3d54c8c64c5

    RQPanLifecycleVauCardholderOptIn:
      value:
        operatorID: "219951"
        operationType: UPDATE
        operationReason: Opt back into the VAU
        operationReasonCode: VAU_CARDHOLDER_OPT_IN
        encryptedData: 
          cardholderInfo:
            primaryAccountNumber: "4830396000000760"
            expirationDate: 
              month: "04"
              year: "2024"

    RQPanLifecycleVauCardholderOptOut:
      value:
        operatorID: "219951"
        operationType: UPDATE
        operationReason: Opt back into the VAU
        operationReasonCode: VAU_CARDHOLDER_OPT_IN
        encryptedData: 
          cardholderInfo:
            primaryAccountNumber: "4830396000000760"
            expirationDate: 
              month: "04"
              year: "2024"
    
    RQUpdateCardMTPanReference:
      value:
        operatorID: Agent808
        operationReason: Card Art vgold Christmas
        panReferenceID: V-3021084701796922123456
        cardMetadataInfo: 
          cardIssuer: string
          foregroundColor: 255122235
          backgroundColor: 255122235
          labelColor: 255122235
          shortDescription: The Bank Card
          longDescription: The Bank Card
          profileID: The Bank Card
          cardArtData: 
            cardArtRefID: string
          
          termsAndConditionsID: The Bank Card
          privacyPolicyURL: The Bank Card
          termsAndConditionsURL: The Bank Card
          contactInfo: 
            contactWebsite: https://issuer.com
            contactEmail: user@issuer.com
            contactNumber: 800-000-0000
            contactName: Issuer
          
          CMapplicationInfo: 
            supportsTokenNotifications: true
            supportsFPANNotifications: true
            transactionServiceURL: string
            messageServiceURL: string
            transactionPushTopic: string
            messagePushTopic: string
            appLaunchURL: string
            appLaunchURLScheme: string
            associatedStoreIdentifiers: [
              string
            ]
            associatedApplicationIdentifiers: [
              0
            ]
    RQUpdateCardMTTokenReference:
      value:
        operatorID: Agent808
        operationReason: Card Art vgold Christmas
        tokenReferenceID: DNITHE30161617843905731102000000
        tokenRequestorID: 40000000055
        cardMetadataInfo: 
          cardIssuer: string
          foregroundColor: 255122235
          backgroundColor: 255122235
          labelColor: 255122235
          shortDescription: The Bank Card
          longDescription: The Bank Card
          profileID: The Bank Card
          cardArtData: 
            cardArtRefID: string
          
          termsAndConditionsID: The Bank Card
          privacyPolicyURL: The Bank Card
          termsAndConditionsURL: The Bank Card
          contactInfo: 
            contactWebsite: https://issuer.com
            contactEmail: user@issuer.com
            contactNumber: 800-000-0000
            contactName: Issuer
          
          CMapplicationInfo: 
            supportsTokenNot

# --- truncated at 32 KB (184 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/novopayment/refs/heads/main/openapi/novopayment-issuer-tokenization-openapi.yml