openapi: 3.2.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. version: v1.0 title: Issuer Tokenization Life Cycle Management API servers: - description: UAT url: https://cert-api.novopayment.com tags: - name: Life Cycle Management paths: /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.' 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' 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: schemas: ObjDeviceInformation: type: object description: 'Object that contain the Device Information, the values that coould be present depends on the Token Type and the Device Type. ' properties: deviceID: type: string description: 'This field represents the device ID. - For SECURE_ELEMENT this value will be the SE ID in hex binary characters transformed to a 48-character string. - For ECOMMERCE or CARD_ON_FILE this value may not be available. - For Host Card Emulation HCE his value is determined by the wallet. Format: Alphanumeric characters ' maxLength: 48 example: CTF0000000001 deviceIndex: type: number description: 'Visa’s index number where the device ID is stored. Number between 1 and 99. This is required for TOKEN DEVICE BINDING ' maxLength: 2 example: 99 deviceLanguageCode: type: string description: ISO 639 Version 3 maxLength: 3 example: eng deviceType: type: string description: 'This field represents the device type. Allowed values: - MOBILE_PHONE - TABLET - MOBILEPHONE_OR_TABLET - PC - WATCH - TV - HOME_DEVICE - WEARABLE_DEVICE - AUTOMOBILE_DEVICE ' enum: - MOBILE_PHONE - TABLET - MOBILEPHONE_OR_TABLET - PC - WATCH - TV - HOME_DEVICE - WEARABLE_DEVICE - AUTOMOBILE_DEVICE maxLength: 32 example: PHONE deviceName: type: string description: 'Device index. Format: Number between 1 and 99, included. ' maxLength: 128 example: Novo_Phone deviceNumber: type: string description: Device number maxLength: 13 example: 6506198963 osType: type: string description: 'Operating System from which the request is sent. Allowed values - ANDROID - IOS - WINDOWS - BLACKBERRY - TIZEN - OTHER ' maxLength: 32 enum: - ANDROID - IOS - WINDOWS - BLACKBERRY - TIZEN - OTHER example: ANDROID osVersion: type: string description: 'Operating system version Sample: 13.1.8 ' maxLength: 256 example: 4.4.4 osBuildID: type: string description: OS Compilation version maxLength: 32 example: 13.1 deviceIDType: type: string description: 'Attribute indicating the source of the Device ID value. Example: The source for Device ID (deviceID)could be SecureElement, TEE, or Derived, ' maxLength: 32 example: TEE deviceManufacturer: type: string description: 'Manufacturer of the decive. Sample: Samsung ' maxLength: 32 example: Samsung deviceBrand: type: string description: 'Device Brand. Sample: Galaxy ' maxLength: 32 example: Galaxy deviceModel: type: string description: Device model maxLength: 32 example: M05 deviceLocation: type: string description: 'Obfuscated geographic location of the device. Example: +37/-121 ' maxLength: 26 deviceIPAddressV4: type: string description: 'The IP address of the device at the time of the provisioning request, with the value represented in 255.255.255.255 format. Restriction: Cannot contain any leading zeros ' maxLength: 15 example: 127.0.0.1 locationSource: type: string description: 'Source used to identify consumer location. Available values: - WIFI - CELLULAR - GPS - OTHER ' enum: - WIFI - CELLULAR - GPS - OTHER maxLength: 32 example: WIFI tokenProtectionMethod: type: string description: 'Method of token protection. Available values: - SOFTWARE - TRUSTED_EXECUTION_ENVIRONMENT - SECURE_ELEMENT - CLOUD ' enum: - SOFTWARE - TRUSTED_EXECUTION_ENVIRONMENT - SECURE_ELEMENT - CLOUD maxLength: 40 example: CLOUD originalDeviceID: type: string description: "Device ID from the original provision. \nThis field is populated only when performing token-for-token provisioning and can be used only in the following APIs: \n- Approve Provisioning\n- Approve Provisioning Stand-In Notification\n- Token Create Notification.\n" maxLength: 48 example: '...' originalDeviceType: type: string description: "Device type from the original provision. \nThis field is populated only when performing token-for-token provisioning and can be used only in the following APIs: \n- Approve Provisioning\n- Approve Provisioning Stand-In Notification\n- Token Create Notification.\n" maxLength: 48 example: '...' RQUpdateCardMetadata: type: object anyOf: - required: - operatorID - operationReason - panReferenceID - cardMetadataInfo - required: - operatorID - operationReason - encryptedData - required: - operatorID - operationReason - tokenReferenceID - tokenRequestorID - cardMetadataInfo - required: - operatorID - operationReason - cardId - cardMetadataInfo properties: operatorID: type: string maxLength: 16 description: 'Id representing the operator who made the last change. ' example: Agent808 operationReason: type: string maxLength: 254 description: 'Specific reason for the operation. Sample:Changing art color. ' example: Card Art vgold Christmas. tokenReferenceID: type: string description: 'Unique ID associating a token with a card. This ID can be used in future calls to make operations related to the token in the I-TSP. ' example: DNITHE30194726875288888 tokenRequestorID: type: integer description: 'Unique ID assigned to the client requesting the token. This value is assigned by Visa when creating the VTS project. ' example: 40022358888 panReferenceID: type: string description: 'Unique ID representing a card. This ID can be used in future calls referred to the card in the Tokenization flow. ' example: V-3019231458906209630635 encryptedData: $ref: '#/components/schemas/ObjTokenInquiryPanEncryptedData' cardId: type: string description: 'Unique Card Identifier at NovoPayment’s Issuance Service, of Original Card. ' maxLength: 40 example: 5DA...27 cardMetadataInfo: $ref: '#/components/schemas/ObjUpdateCardMetadataInfo' RQTokenInquiry: type: object required: - tokenRequestorID - tokenReferenceID properties: tokenRequestorID: type: integer description: 'Unique ID assigned to the client requesting the token. This value is assigned by Visa when creating the VTS project. ' example: 40022358888 tokenReferenceID: type: string description: 'Unique ID associating a token with a card. This ID can be used in future calls to make operations related to the token in the I-TSP. ' example: DNITHE30194726875288888 cardHolderVerificationRetrieve: type: boolean description: 'If cardholderVerificationList is provided in the response, it allows the issuers to query the status of cardholder verification requests initiated by the token requester for this token. Allowed values: - True - false (default) ' enum: - true - false example: false ObjDeviceBindingInfo: type: boolean description: 'If it is required to provide a deviceBindingInfoList in the response. Allowed values true false (default) ' example: false ObjCheckEligibilityContactInfo: type: object properties: contactWebsite: type: string description: Customer Service website of the issuing bank maxLength: 128 example: https://issuer.com contactEmail: type: string description: Customer Service email address of the issuing bank maxLength: 32 example: user@issuer.com contactNumber: type: string description: Customer service phone number of the issuing bank maxLength: 32 example: 800-000-0000 contactName: type: string description: Name of the issuing bank maxLength: 32 example: Issuer RSTokenInquiry200: type: object required: - stepUpMethods properties: encryptedData: $ref: '#/components/schemas/ObjTokenInquiryEncryptedData' panReferenceID: type: string description: 'Unique ID representing a card. This ID can be used in future calls referred to the card in the Tokenization flow. ' example: V-3019231458906209630635 operatorID: type: string maxLength: 16 description: 'Id representing the operator who made the last change. ' example: 40022358888 entityOfLastAction: type: string maxLength: 16 description: 'Entity that carried out the last action. Allowed values: - TOKEN_REQUESTOR - ISSUER ' enum: - TOKEN_REQUESTOR - ISSUER example: TOKEN_REQUESTOR walletAccountEmailAddressHash: type: string description: 'Hash of the email from which the account is opened in the wallet that sends the request. ' maxLength: 64 clientWalletAccountID: type: string description: 'Identifier of the wallet that sends the request. Client provided consumer ID that identifies the wallet account holder entity ' maxLength: 32 panSource: type: string description: 'Origin of the information of the PAN. Allowed values: - KEY_ENTERED - ON_FILE - MOBILE_BANKING_APP - TOKEN - CHIP_DIP - CONTACTLESS_TAP ' enum: - KEY_ENTERED - ON_FILE - MOBILE_BANKING_APP - TOKEN - CHIP_DIP - CONTACTLESS_TAP example: MOBILE_BANKING_APP consumerEntryMode: type: string description: 'Method of consumer entry. Available values: - KEY_ENTERED - CAMERA_CAPTURED - UNKNOWN Could be present when eventType is TOKEN_CREATED or TOKEN_ACTIVATION_STIP. ' enum: - KEY_ENTERED - CAMERA_CAPTURED - UNKNOWN cardMetadataProfileID: type: string maxLength: 32 description: 'Profile associated to the card. ' example: 98657845 lastFourOfPAN: type: string maxLength: 4 description: 'Last four digits of the card associated to the token. ' example: 1234 lastFourOfPreviousPAN: type: string maxLength: 4 description: 'Last four digits of the card thar was previously associated to the token. ' example: 4321 otpInfo: $ref: '#/components/schemas/ObjTokenInquiryOptInfo' issuerDiscretionaryData: $ref: '#/components/schemas/ObjTokenInquiryIssuerDiscretionaryData' cardholderVerificationList: type: array $ref: '#/components/schemas/ObjCardholderVerification' deviceBindingInfoList: type: array $ref: '#/components/schemas/ObjDeviceBindingInfo' RSErrorCode400TokenLifeCycle: type: object description: 'Error message code only if the HTTP status is different from 200. This field shows the I-TSP if an error was generated in the request. ' properties: errorCode: type: string description: 'Error response Codes: - VSE40000: ISS_ERROR_REQUIRED_DATA_MISSING - VSE40001: VSE_ERROR_REQUIRED_DATA_MISSING - VSE40002: VSE_ERROR_TOKEN_STATE_EXIST - VSE40003: VSE_ERROR_TOKEN_NOT_FOUND - VSE40009: VSE_INTERNAL_SYSTEM_ERROR - VSE40010: VSE_ERROR_CRYPTOGRAPHY_ERROR - VSE40011: VSE_TOKEN_NOT_ACTIVE ' enum: - VSE40000 - VSE40001 - VSE40002 - VSE40003 - VSE40010 - VSE40011 - VSE40009 RSErrorCode400PanLifeCycle: type: object description: 'Error message code only if the HTTP status is different from 200. This field shows the I-TSP if an error was generated in the request. ' properties: errorCode: type: string description: 'Error response Codes: - VSE40001: VSE_ERROR_REQUIRED_DATA_MISSING - VSE40000: VSE_ERROR_INVALID_DATA - VSE40006: VSE_ERROR_INVALID_REPLACEMENT_PAN - VSE40010: VSE_ERROR_CRYPTOGRAPHY_ERROR - VSE40009: VSE_INTERNAL_SYSTEM_ERROR ' enum: - VSE40001 - VSE40000 - VSE40006 - VSE40010 - VSE40009 RSTokenInquiryPan200: type: object required: - tokenDetails properties: tokenDetails: type: array $ref: '#/components/schemas/ObjTokenInquiryPanTokenDetails' RSUpdateCardMetadata200: type: object properties: responseDetails: type: array $ref: '#/components/schemas/ObjUpdateCardMetadataResponseDetails' ObjCardHolderInfo_OnlyPAN: type: object description: 'Object that contains the PAN information. ' required: - primaryAccountNumber properties: primaryAccountNumber: type: string description: 'Card number. ' maxLength: 19 example: XX25XX25XX25XX25 ObjCardHolderInfo_LifeCycle: type: object description: 'Object that contains the related information to the customer cards. ' required: - primaryAccountNumber properties: primaryAccountNumber: type: string description: 'Card number. ' maxLength: 19 example: XX25XX25XX25XX25 expirationDate: type: object description: 'Conditional, see the uses cases in what this value is required. ' properties: month: type: string example: 08 year: type: string example: '2028' ObjTokenInfo: type: object description: 'Structure with token information, the content available could be different in each API service. ' properties: token: type: string maxLength: 19 description: The token associated with the PAN. example: '...' tokenType: type: string maxLength: 32 description: 'Token type. Available values. - ECOMMERCE - SECURE_ELEMENT - CARD_ON_FILE - HCE - QRC ' enum: - ECOMMERCE - SECURE_ELEMENT - CARD_ON_FILE - HCE - QRC example: ECOMMERCE tokenStatus: type: string description: 'Token status. Available values: - INACTIVE : The token was created but the activation process is pending. - ACTIVE : The token was Activated successfully. - SUSPENDED : The token was suspended. - DEACTIVATED : The token was eliminated. ' enum: - INACTIVE - ACTIVE - SUSPENDED - DEACTIVATED example: ACTIVE tokenExpirationDate: $ref: '#/components/schemas/ObjExpirationDate' tokenRequestorName: type: string maxLength: 100 description: 'Token requestor name. ' example: NovoPayment Wallet tokenAssuranceMethod: type: string maxLength: 19 description: "Method of Issuer ID&V that has taken place at time of provisioning,\ndevice binding.\n- 00 Cardholder Verification was Not Performed\n- 10 Card Issuer Account Verification\n- 11 Card Issuer Interactive Cardholder Verification - 1 Factor\n- 12 Card Issuer Interactive Cardholder Verification - 2 Factor\n- 13 Card Issuer Risk Oriented Non-Interactive Cardholder\n Authentication\n- 14 Card Issuer Asserted Authentication\n" example: '00' numberOfActiveTokensForPAN: type: number maxLength: 4 description: 'Number of device tokens that are currently active for this PAN. ' example: 2 numberOfInactiveTokensForPAN: type: number maxLength: 4 description: 'Number of device tokens that are currently inactive. (device tokens have not been activated) for this PAN ' example: 2 numberOfSuspendedTokensForPAN: type: number maxLength: 4 description: 'Number of device tokens that were activated but are suspended for payments for this PAN. ' example: 0 tokenActivationDate: type: string format: date-time description: 'System date/timestamp, in GMT, of token activation into an active state. For an inactive state, this field is left empty and populated only when a token transitions to an active state. If a token is suspended, this field is populated with the new date/timestamp of when an active state resumes. Format: yyy-MM-ddTHH:mm:ss.SSSZ ' example: '2022-04-25T23:19:12.000Z' tokenDeactivationDate: type: string description: 'Date of token deactivation. This field is left empty and populated only when a token transitions to an Inactive state. ' example: '...' lastTokenStatusUpdatedTime: type: string maxLength: 19 description: 'Original Token account number. This field is populated only when performing token for token provisioning, this mean the panSource is equal to TOKEN. ' example: '...' originalToken: type: string maxLength: 19 description: 'Original Token account number. This field is populated only when performing token for token provisioning, this mean the panSource is equal to TOKEN. ' example: '...' originalTokenRequestorID: type: number maxLength: 4 description: 'Unique ID assigned to the initiator of the OriginalToken request. This field is populated only when performing token for token provisioning, this mean the panSource is equal to TOKEN. ' example: '...' originalTokenReferenceID: type: string maxLength: 32 description: 'Unique ID for the OriginalToken associated with the PAN. This field is populated only when performing token for token provisioning, this mean the panSource is equal to TOKEN. ' example: '...' originalTokenType: type: string description: 'Token type of the original token. This field is populated only when performing token for token provisioning, this mean the panSource is equal to TOKEN. Format: It is one of the following values: - SECURE_ELEMENT - HCE - CARD_ON_FILE - ECOMMERCE - QRC ' enum: - SECURE_ELEMENT - HCE - CARD_ON_FILE - ECOMMERCE - QRC example: SECURE_ELEMENT originaltokenAssuranceMethod: type: string description: 'Original token assurance method. This field is populated only when performing token for token provisioning, this mean the panSource is equal to TOKEN. - 00 ID&V Not Performed - 10 Card Issuer Account Verification - 11 Card Issuer Interactive Cardholder Verification - 1 Factor - 12 Card Issuer Interactive Cardholder Verification - 2 Factor - 13 Card Issuer Risk Oriented Non-Interactive Cardholder Authentication - 14 Card Issuer Asserted Authentication ' enum: - '00' - '10' - '11' - '12' - '13' - '14' example: '00' autoFillIndicator: type: boolean description: 'Indicates whether the token is for an autofill use case. This value is populated when eventType is equal to TOKEN_CREATED. ' example: false RQPanLifecycle: type: object anyOf: - required: - operatorID - operationType - operationReason - operationReasonCode - panReferenceID - required: - operatorID - operationType - operationReason - operationReasonCode - encryptedData - required: - operatorID - operationType - operationReason - operationReasonCode - cardId properties: operatorID: type: string maxLength: 16 description: 'Id representing the operator who request the change. Only for record. ' example: call808 operationType: type: string description: 'Allowed values: - UPDATE - DELETE ' enum: - UPDATE - DELETE example: UPDATE operationReason: type: string maxLength: 254 description: 'Specific reason for the operation. Sample:Card replacement due to a lost. ' example: Card replacement due to a lost. operationReasonCode: type: string description: "A reason code for the operation.\n\nAllowed values:\n- ACCOUNT_UPDATE - Change the PAN and the expiration date OR reverse\n the latest change\n- EXP_DATE_UPDATE - Only to change of the expiration date.\n- DELETE_TOKEN - Token cancelation\n- CONTACT_CARDHOLDER - Account inquiry. Contact the account holder\n- PORTFOLIO_CONVERSION\n- ACCOUNT_CLOSED - Closed account advice\n- UPDATE_ACCOUNT_LEVEL_RECORD\n- VAU_CARDHOLDER_OPT_OUT - Opt out of the VAU (Visa Account \nUpdater) product, preventing account updates from being \nshared with the merchant\n- VAU_CARDHOLDER_OPT_IN - Opt back into the VAU (Visa \nAccount Updater) product, resulting in account updates being \nshared with the merchant\n" enum: - ACCOUNT_UPDATE - EXP_DATE_UPDATE - DELETE_TOKEN - CONTACT_CARDHOLDER - PORTFOLIO_CONVERSION - ACCOUNT_CLOSED - UPDATE_ACCOUNT_LEVEL_RECORD - VAU_CARDHOLDER_OPT_OUT - VAU_CARDHOLDER_OPT_IN example: ACCOUNT_UPDATE encryptedData: $ref: '#/components/schemas/ObjPanLifecycleEncryptedData' cardId: type: string description: 'Unique Card Identifier at NovoPayment’s Issuance Service, of Original Card. ' maxLength: 40 example: 5DA...27 cardIdReplace: type: string description: 'Unique Card Identifier at NovoPayment’s Issuance Service, of the new card. ' maxLength: 40 example: 5DA...D8 newExpirationDate: description: "This field is only for Internal Issuers, the new expiration date when reason code is equal \nto EXP_DATE_UPDATE\n" type: object properties: month: type: string example: 08 year: type: string example: '2028' ObjMerchantInfo: type: object properties: merchantID: type: number description: 'Unique merchant identifiers. Required for trusted listing enrollment. ' maxLength: 8 example: Novo InApp merchantName: type: string description: 'Merchant’s name ' maxLength: 256 example: 10808 Research Boulevard RSError400UpdateCardMt: type: object description: 'Error message code only if the HTTP status is different from 200. This field shows the I-TSP if an error was generated in the request. ' properties: errorCode: type: string description: 'Error response Codes: - NP400900: Not Found - VSE40001: VSE_ERROR_REQUIRED_DATA_MISSING - VSE40003: VSE_ERROR_TOKEN_NOT_FOUND - VSE40004: VSE_ERROR_INVALID_PROFILE_ID - VSE40010: VSE_ERROR_CRYPTOGRAPHY_ERROR - VSE40009: VSE_INTERNAL_SYSTEM_ERROR (500) - VSE40007: VSE_ERROR_INVALID_TOKEN_STATE (200) - VSE40000: VSE_ERROR_INVALID_DATA (200) ' enum: - NP400900 - VSE40001 - VSE40003 - VSE40004 - VSE40010 - VSE40009 - VSE40007 - VSE40000 ObjExpirationDate: type: object required: - month - year properties: month: type: string description: Month of expiration date maxLength: 2 example: 7 year: type: string description: Year of expiration date maxLength: 4 example: 2016 ObjTokenInquiryPanTokenDetails: type: object properties: tokenRequestorID: type: integer description: 'Unique ID assigned to the client requesting the token. This value is assigned by Visa when creating the VTS project. ' example: 40022358888 tokenReferenceID: type: string description: 'Unique ID associating a token with a card. This ID can be used in future calls to make operations related to the token in the I-TSP. ' example: DNITHE30194726875288888 panReferenceID: type: string description: 'Unique ID representing a card. This ID can be used in future calls referred to the card in the Tokenization flow. ' example: V-3019231458906209630635 entityOfLastAction: type: string maxLength: 16 description: 'Entity that carried out the last action. Allowed values: - TOKEN_REQUESTOR ' enum: - TOKEN_REQUESTOR example: TOKEN_REQUESTOR walletAccountEmailAddressHash: type: string description: 'Hash of the email from which the account is opened in the wallet that sends the request. ' maxLength: 64 clientWalletAccountID: type: string description: 'Identifier of the wallet that sends the request. Client provided consumer ID that identifies the wallet account holder entity ' maxLength: 32 panSource: type: string description: 'Origin of the information of the PAN. Allowed values: - KEY_ENTERED - ON_FILE - MOBILE_BANKING_APP - TOKEN - CHIP_DIP - CONTACTLESS_TAP ' enum: - KEY_ENTERED - ON_FILE - MOBILE_BANKING_APP - TOKEN - CHIP_DIP - CONTACTLESS_TAP example: MOBILE_BANKING_APP tokenType: type: string description: 'Token type of the source token used for provisioning a new token. Available values: - ECOMMERCE - SECURE_ELEMENT - CLOUD_BASE_PAYMENT - ECOMMERCE_ENABLER - CARD_ON_FILE - HCE - QRC ' enum: - ECOMMERCE - SECURE_ELEMENT - CLOUD_BASE_PAYMENT - ECOMMERCE_ENABLER - CARD_ON_FILE - HCE - QRC example: ECOMMERCE tokenStatus: type: string description: 'Required to: - Token Create Notification - Token Notification Allowed values: - ACTIVE - INACTIVE - SUSPENDED - DEACTIVATED ' enum: - ACTIVE - INACTIVE - SUSPENDED - DEACTIVATED example: ACTIVE lastFourOfPAN: type: string maxLength: 4 description: 'Last four digits of the card associated to the token. ' example: 1234 operatorID: type: string maxLength: 16 description: 'Id representing the operator who made the last change. ' example: 219951 RQTokenLifecycle: type: object required: - operatorID - operationType - operationReason - tokenReferenceID - tokenRequestorID properties: operatorID: type: string maxLength: 16 description: 'Id representing the operator who made the last change. ' example: 40022358888 operationType: type: string description: 'Allowed values: - DELETE - SUSPEND - RESUME - CALL_CENTER_ACTIVATION - TOKEN_DEVICE_BINDING_APPROVE : When the Issuer approve the binding process. - TOKEN_DEVICE_BINDING_APPROVE_CALL_CENTER : When the Issuer approve the binding process after a call with the cardholder. - TOKEN_DEVICE_BINDING_APPROVE_BANK_APP : When the Issuer approve the binding process using the application. - TOKEN_DEVICE_BINDING_REMOVE - CARDHOLDER_STEPUP_CALL_CENTER - CARDHOLDER_STEPUP_APP_TO_APP - TOKEN_TRUSTED_LISTING_ADD - TOKEN_TRUSTED_LISTING_REMOVE ' enum: - DELETE - SUSPEND - RESUME - CALL_CENTER_ACTIVATION - TOKEN_DEVICE_BINDING_APPROVE - TOKEN_DEVICE_BINDING_REMOVE - TOKEN_DEVICE_BINDING_APPROVE_CALL_CENTER - TOKEN_DEVICE_BINDING_APPROVE_BANK_APP - CARDHOLDER_STEPUP_CALL_CENTER - CARDHOLDER_STEPUP_APP_TO_APP - TOKEN_TRUSTED_LISTING_ADD - TOKEN_TRUSTED_LISTING_REMOVE example: RESUME operationReason: type: string maxLength: 254 description: 'Description about the action, or specific reason for the operation. This param is only informative. ' example: Card replacement due to a lost by Agent88. tokenReferenceID: type: string description: 'Unique ID associating a token with a card. This ID can be used in future calls to make operations related to the token in the I-TSP. ' example: DNITHE30194726875288888 tokenRequestorID: type: integer description: 'Unique ID assigned to the client requesting the token. This value is assigned by Visa when creating the VTS project. ' example: 40022358888 deviceInfo: description: "Device Information only required for actions related to DEVICE BINDING; \ndeviceID and deviceIndex must be populated.\n" $ref: '#/components/schemas/ObjDeviceInformation' activationCode: type: string description: 'Field for audit processes. Only required when using operationType equals CALL_CENTER_ACTIVATION ' maxLength: 8 example: 5DA...27 merchantInfo: $ref: '#/components/schemas/ObjMerchantInfo' ObjUpdateCardMetadataInfo: type: object required: - cardIssuer description: Card metadata information structure properties: cardIssuer: type: string maxLength: 128 description: 'Card issuer name. ' foregroundColor: type: string maxLength: 32 description: 'Foreground color of the digital wallet home. Format: rgb. Sample: 255,122,235 This value is optional because the issuer can configure it through the Visa Card Art Management (VCMM). ' example: 255,122,235 backgroundColor: type: string maxLength: 32 description: 'Background color of the digital wallet home, for displaying the card. Format: rgb. Sample: 255,122,235 This value is optional because the issuer can configure it through the Visa Card Art Management (VCMM). ' example: 255,122,235 labelColor: type: string maxLength: 32 description: 'Label color of the digital wallet home, for displaying the card. Format: rgb. This value is optional because the issuer can configure it through the Visa Card Art Management (VCMM). ' example: 255,122,235 shortDescription: type: string maxLength: 32 description: 'Short card description. It can be used with block screen notification ' example: The Bank Card longDescription: type: string maxLength: 64 description: 'Long card description. It can be used in the digital wallet. ' example: The Bank Card profileID: type: string maxLength: 32 description: 'Profile ID associated to a card. It is only available to issuers that consume the API Check eligibility. During the the preload of the card metadata into the Visa system, either through the Visa Card Art Management (VCMM) user interface or the batch files, issuers have the option to assign their own unique profile ID (GUID) to a send of card metadata. Format: Lowercase, hexadecimal. Hyphens (-) are not allowed. ' example: The Bank Card cardArtData: type: array $ref: '#/components/schemas/ObjCheckEligibilityCardArtRefID' termsAndConditionsID: type: string maxLength: 64 description: 'Name of the file based on GUID for terms and conditions text. File used by the issuer when uploading the image in VCMM. This is a required DWP field. However, it is Optional in this API because the issuer can configure it through VCM. ' example: The Bank Card privacyPolicyURL: type: string maxLength: 128 description: 'URL targeting issuer privacy policy. ' example: The Bank Card termsAndConditionsURL: type: string maxLength: 128 description: 'URL targeting issuer terms and conditions. ' example: The Bank Card contactInfo: $ref: '#/components/schemas/ObjCheckEligibilityContactInfo' CMapplicationInfo: $ref: '#/components/schemas/ObjCheckEligibilityApplicationInfo' ObjTokenInquiryPanEncryptedData: type: object required: - cardholderInfo description: 'Object containing only the field “primaryAccountNumber”. ' maxLength: 7000 properties: cardholderInfo: $ref: '#/components/schemas/ObjCardHolderInfo_OnlyPAN' ObjRiskInfo: type: object description: 'Structure with risk information. This object can be sent when messageReasonCode is equal to TOKEN_CREATED ' properties: walletProviderRiskAssessment: type: string maxLength: 1 description: 'Risk rating of the wallet, it can be one of the following values: - 0: Unconditionally approved. - 1: Conditionally approved with further consumer verification. - 2: Not approved ' enum: - 0 - 1 - 2 walletProviderRiskAssessmentVersion: type: string maxLength: 10 description: 'Information for the Issuer related to the security level of the wallet ' walletProviderAccountScore: type: string maxLength: 2 description: 'The wallet provider account score. Score value is between 1 and 5, indicating the confidence level of the account, where 5 indicates the most confidence on the account. ' enum: - 1 - 2 - 3 - 4 - 5 walletProviderDeviceScore: type: string maxLength: 2 description: The wallet provider device score. Score value is between 1 and 5, indicating the confidence level of the device, where 5 indicates the most confidence. enum: - 1 - 2 - 3 - 4 - 5 walletProviderReasonCodes: type: string maxLength: 100 description: Wallet provider reason codes, in a comma-separated format. deviceBluetoothMac: type: string maxLength: 24 description: MAC address for Bluetooth. deviceIMEI: type: string maxLength: 24 description: Hardware ID of the device. deviceSerialNumber: type: string maxLength: 24 description: Serial number of the mobile device. deviceTimeZone: type: string maxLength: 5 description: Time-zone abbreviation. deviceTimeZoneSetting: type: string description: 'Device time-zone setting. Available Values: - NETWORK_SET - CONSUMER_SET ' enum: - NETWORK_SET - CONSUMER_SET osID: type: string maxLength: 24 description: OS ID to allow building velocity and risk rules. simSerialNumber: type: string maxLength: 24 description: SIM serial number of the mobile device deviceLostMode: type: string maxLength: 4 description: Number of days. Values are up to 9999 number of days. daysSinceConsumerDataLastAccountChange: type: string maxLength: 4 description: 'Number of days since account settings were changed (in case of a password update). If the number of days exceeds 9999, it will stay at 9999. ' accountHolderName: type: string maxLength: 64 description: Account-holder’s name. walletProviderPANAge: type: string maxLength: 4 description: 'Length of time (in days) that a PAN has been on file for a user. ' walletAccountHolderCardNameMatch: type: string maxLength: 4 description: 'Name of the accountholder and name of cardholder matched. Available Values: - Y: Indicates the two names match. - N: Indicates the two names do not match. ' enum: - Y - N accountToDeviceBindingAge: type: string maxLength: 4 description: 'Number of days this device has been used by this account. If the number of days exceeds 9999, it will stay at 9999. Example: 9999 ' userAccountAge: type: string maxLength: 4 description: 'Number of days since an account for this user has existed. Values are 0 through 9999. Example: 9999 ' walletAccountAge: type: string description: 'Number of days since the user created a wallet account or started using a wallet. If the number of days exceeds 256, it will stay at 256. ' provisioningAttemptsOnDeviceIn24Hours: type: string maxLength: 2 description: 'Number of provisioning attempts on this device in the past 24 hours. If the number of attempts exceeds 99, it will stay at 99. ' example: 99 distinctCardholderNames: type: string maxLength: 2 description: 'Number of distinct cardholder names used in provisioning from this device. ' example: 99 deviceCountry: type: string maxLength: 2 description: 'Country of device at time of provisioning. ISO 3166-1, alpha-2 ' example: US walletAccountCountry: type: string maxLength: 2 description: Country of accountholder. ISO 3166-1, alpha-2 example: US suspendedCardsInAccount: type: string maxLength: 2 description: 'Number of cards suspended in the account. If the number of days exceeds 99, it will stay at 99. ' example: 99 daysSinceLastAccountActivity: type: string maxLength: 4 description: 'Number of days since the last activity on account. If the number of days exceeds 9999, it will stay at 9999. ' example: 9999 numberOfTransactionsInLast12months: type: string maxLength: 4 description: 'Number of transactions on this account in the last 12 months. If the number of transactions exceeds 9999, it will stay at 9999. ' example: 9999 numberOfActiveTokens: type: string maxLength: 2 description: 'Number of active tokens on this account. If the number of tokens exceeds 99, it will stay at 99. ' example: 99 deviceWithActiveTokens: type: string maxLength: 2 description: 'Number of devices for this user with the same token. If the number of tokens exceeds 99, it will stay at 99. ' example: 99 activeTokensOnAllDeviceForAccount: type: string maxLength: 4 description: 'Number of active tokens for this user, across all devices. If the number of tokens exceeds 9999, it will stay at 9999. ' example: 9999 visaTokenScore: type: string maxLength: 2 description: 'Value indicating the degree of risk associated with the token. Numeric value is 01 through 99. ' visaTokenDecisioning: type: number maxLength: 2 description: "Results from the token provisioning service.\n\nAvailable values:\n- 00: Provision and activate\n- 05: Do not provision\n- 85: Provision in inactive state (requires further consumer\n authentication prior to activation - Yellow Flow)\n" enum: - '00' - '05' - '85' riskAssessmentScore: type: string maxLength: 2 description: 'Values are 0 through 99. A higher value indicates a higher risk. This is calculated by the AA Risk Engine, based on the PAN’s transaction pattern (long term and short term). ' issuerSpecialConditionCodes: type: string maxLength: 100 description: 'Supported for issuers participating in 0100 TAR. The issuer can send values for this element in the 0100 TAR response. If the issuer sends a value in the 0100 TAR, it will be sent in this element of the Get CVM. If no value is sent in 0100 TAR or if the issuer does not participate in TAR, this element will not be present. ' ObjTokenInquiryOptInfo: type: object description: 'Encrypted payload data. ' properties: otpCodeIndicator: type: string maxLength: 32 description: 'Allowed values: - PRESENT - NOT_PRESENT - EXPIRED ' enum: - PRESENT - NOT_PRESENT - EXPIRED example: PRESENT otpCodeExpiration: type: string format: date-time description: 'Expiration date Format: yyyy-MM-ddTHH:mm:ss.SSSZ ' otpVerificationAttempts: type: number maxLength: 3 description: 'Verification attempts. ' otpVerificationRetryCounts: type: number maxLength: 3 description: 'Attempt counter. ' ObjPanLifecycleEncryptedData: type: object description: 'This field represents the encrypted payload, it will be containing the next objects according to the action to perform: cardholderInfo - Current PAN - Current Expiration Date replaceCardholderInfo - New PAN - New Expiration Date This param is mandatory for External Issuers. ' maxLength: 7000 properties: cardholderInfo: $ref: '#/components/schemas/ObjCardHolderInfo_LifeCycle' replaceCardholderInfo: $ref: '#/components/schemas/ObjCardHolderInfo_LifeCycle' ObjUpdateCardMetadataResponseDetails: type: object properties: tokenRequestorID: type: integer description: 'Unique ID assigned to the client requesting the token. This value is assigned by Visa when creating the VTS project. Not present when eventType is PAN_UPDATED or CARD_METADATA_UPDATED OR ACCOUNT_LEVEL_RECORD ' example: 40022358888 tokenReferenceID: type: string description: 'Unique ID associating a token with a card. This ID can be used in future calls to make operations related to the token in the I-TSP for example events related to the management of the life cycle. Not present when eventType is PAN_UPDATED or CARD_METADATA_UPDATED OR ACCOUNT_LEVEL_RECORD. ' maxLength: 32 example: DNITHE30194726875288888 panReferenceID: type: string description: 'Unique ID representing a card. This ID can be used instead of the PAN number for subsequent calls such as notifications or life cycle management. Not present when evenType is CARD_METADATA_UPDATED. ' maxLength: 32 example: V-3019231458906209630635 statusCode: type: string description: 'Allowed values: - PENDING - FAILURE - NOT_ALLOWED ' enum: - PENDING - FAILURE - NOT_ALLOWED maxLength: 10 example: PENDING errorCode: type: string description: 'Presented when error codes in business logic. Format: VSEXXXXX. - VSE40000 VSE_ERROR_INVALID_DATA - VSE40003 VSE_ERROR_TOKEN_NOT_FOUND - VSE40007 VSE_ERROR_INVALID_TOKEN_STATE ' enum: - VSE40000 - VSE40003 - VSE40007 maxLength: 10 example: VSE40007 ObjCheckEligibilityApplicationInfo: type: object properties: supportsTokenNotifications: type: boolean description: 'Indicates whether the card supports token claims for transactions originated from the device. ' enum: - true - false supportsFPANNotifications: type: boolean description: 'Indicates if the card supports FPAN Notifications for all transactions that point to the FPAN. ' enum: - true - false transactionServiceURL: type: string description: 'Transaction history URL (TransactionDetails) of the issuer''s web service. ' maxLength: 128 messageServiceURL: type: string description: 'URL of the message/web service offer. It conforms to the API as described in the SOPs and Issuers in the Card Notification Services API Specification. ' maxLength: 32 transactionPushTopic: type: string description: The issuer notifies the device of new available transactions. maxLength: 128 messagePushTopic: type: string description: 'The notification push provider notifies the device of new available messages. ' maxLength: 128 appLaunchURL: type: string description: 'URL given to the issuer associated with the mobile application upon launch. If this key is present, the AssociatedStoreIdentifiers key must also be present. ' maxLength: 128 appLaunchURLScheme: type: string description: 'Registered app URL scheme, in order to deep link from transaction notifications and display all transaction notifications. App ID must be included in the associated ApplicationIdentifiers matrix and the application itself must register for the URL scheme specified in this key. ' maxLength: 32 associatedStoreIdentifiers: type: array description: 'A list of mobile app store items identifiers for the partner issuer''s mobile banking app. The format is specific to a mobile store/phone platform. Only one item from the list is used. ' items: type: string maxLength: 20 associatedApplicationIdentifiers: type: array description: 'An array of associated application identifiers. Similar to AssociatedStoreIdentifiers, but with explicit application IDs (only applicable to SE DWP). ' items: type: integer RSErrorCode400TokenInqByPAN: type: object description: 'Error message code only if the HTTP status is different from 200. This field shows the I-TSP if an error was generated in the request. ' properties: errorCode: type: string description: 'Error response Codes: - VSE40000: VSE_ERROR_INVALID_DATA - VSE40001: VSE_ERROR_REQUIRED_DATA_MISSING - VSE40003: SE_ERROR_TOKEN_NOT_FOUND - VSE40010: VSE_ERROR_CRYPTOGRAPHY_ERROR - VSE40009: VSE_INTERNAL_SYSTEM_ERROR - NP400900: Not Found ' enum: - VSE40000 - VSE40001 - VSE40003 - VSE40010 - VSE40009 - NP400900 RQTokenInquiryPan: type: object anyOf: - required: - panReferenceID - required: - encryptedData - required: - cardId properties: panReferenceID: type: string description: 'Unique ID representing a card. This ID can be used instead of the PAN number for tokenization calls ' example: V-3019231458906209630635 encryptedData: $ref: '#/components/schemas/ObjTokenInquiryPanEncryptedData' cardId: type: string description: 'Unique Card Identifier at NovoPayment’s Issuance Service. ' example: 5DA...27 ObjTokenInquiryIssuerDiscretionaryData: type: object description: 'Encrypted payload data. ' properties: fileControlInformation: type: string maxLength: 128 description: 'File Control information ' example: PRESENT issuerApplicationDiscretionaryData: type: string maxLength: 32 description: 'Issuer discretionary information ' ObjTokenInquiryEncryptedData: type: object required: - tokenInfo - deviceInfo - riskInfo description: 'Encrypted payload data. ' maxLength: 7000 properties: tokenInfo: $ref: '#/components/schemas/ObjTokenInfo' deviceInfo: $ref: '#/components/schemas/ObjDeviceInformation' riskInfo: $ref: '#/components/schemas/ObjRiskInfo' ObjDeviceBindingInfo: type: object description: 'Returns a device binding list. ' properties: deviceID: type: string description: 'This field represents the device ID. Format: Alphanumeric characters ' maxLength: 48 deviceIndex: type: number description: 'Visa’s index number where the device ID is stored. Number between 1 and 99. This is required for TOKEN DEVICE BINDING ' maxLength: 2 deviceName: type: string description: 'Device index. Format: Number between 1 and 99, included. ' maxLength: 128 ObjCheckEligibilityCardArtRefID: type: object properties: cardArtRefID: type: string description: "\tGUID-based file names for the Cart Art Image file used by the issuer\n when uploading the image to VCMM. Required by the DWP field.\n It is optional in this API because the issuer can pre-configure this\n value through VCMM.\n" maxLength: 32 ObjCardholderVerification: type: object description: 'Returns a cardholder checklist. ' required: - primaryAccountNumber - expirationDate properties: lifeCycleTraceID: type: number description: 'Identifier of the messages that can used to include the messages related to the provisioning. This must be used by the user in the event log. ' maxLength: 15 status: type: string description: 'Is one of the following values: - APPROVED - PENDING - DECLINED ' enum: - APPROVED - PENDING - DECLINED timestamp: type: string description: 'Timestamp. Format: UNIX Epoch Timestamp, in seconds. ' examples: RQPanLifecycleCardId_EDU: value: operatorID: operator1 operationType: UPDATE operationReason: Card Renovation operationReasonCode: EXP_DATE_UPDATE cardId: 43673138-8214-4958-999f-b3d54c8c64c5 newExpirationDate: month: 4 year: 2028 RQNotificationTokenCreated: value: eventType: TOKEN_CREATED panReferenceID: V-3021084701796922123456 tokenReferenceID: DNITHE30161617843905731102000000 tokenRequestorID: 40000000055 messageReason: Token created successfully messageReasonCode: TOKEN_CREATED dateTimeOfEvent: 2022-04-25 23:19:12+00:00 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: 0 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 RQTokenInquiryByPANcardId: value: cardId: 5DA...27 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' RSErrorCode500-ISE40009: description: INTERNAL SERVER ERROR value: errorCode: ISE40009 RSErrorCode400-VSE40006: description: VSE_ERROR_INVALID_REPLACEMENT_PAN value: errorCode: VSE40006 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' RSErrorCode400-VSE40002: description: VSE_ERROR_TOKEN_STATE_EXIST value: errorCode: VSE40002 RQTokenInquiryByPANEncryptedData: value: encryptedData: JWE RSErrorCode400-VSE40000: description: VSE_ERROR_INVALID_DATA value: errorCode: VSE40000 RSErrorCode400-VSE40010: description: VSE_ERROR_CRYPTOGRAPHY_ERROR value: errorCode: VSE40010 RSErrorCode400-VSE40001: description: VSE_ERROR_REQUIRED_DATA_MISSING value: errorCode: VSE40001 RSErrorCodeNotFound: description: Not Found value: errorCode: NP400900 RSErrorCode400-VSE40003: description: VSE_ERROR_TOKEN_NOT_FOUND value: errorCode: VSE40003 RQPanLifecycleCardId_DT: value: operatorID: operator1 operationType: DELETE operationReason: This is the delete reason operationReasonCode: DELETE_TOKEN cardId: 43673138-8214-4958-999f-b3d54c8c64c5 RQPanLifecycleCardHolder: value: operatorID: operator1 operationType: UPDATE operationReason: This is the Update reason operationReasonCode: ACCOUNT_UPDATE encryptedData: cardholderInfo: primaryAccountNumber: 46900015240008 expirationDate: month: 4 year: 2023 replaceCardholderInfo: primaryAccountNumber: 46900015240077 expirationDate: month: 7 year: 2028 RSErrorCode400-VSE40011: description: VSE_INTERNAL_SYSTEM_ERROR value: errorCode: VSE40011 RQPanLifecycleCardHolder_DT: value: operatorID: operator1 operationType: DELETE operationReason: This is the delete reason operationReasonCode: DELETE_TOKEN encryptedData: cardholderInfo: primaryAccountNumber: 46900015240008 RQTokenInquiryByPANPanReferenceId: value: panReferenceID: V-3019231458906209630635 RQPanLifecycleCardHolder_EDU: value: operatorID: operator1 operationType: UPDATE operationReason: Card Renovation operationReasonCode: EXP_DATE_UPDATE encryptedData: cardholderInfo: primaryAccountNumber: 46900015240008 expirationDate: month: 4 year: 2023 replaceCardholderInfo: primaryAccountNumber: 46900015240008 expirationDate: month: 7 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 RQNotificationTokenActivationSTIP: value: eventType: TOKEN_ACTIVATION_STIP panReferenceID: V-3021084701796922123456 tokenReferenceID: DNITHE30161617843905731102000000 tokenRequestorID: 40000000055 messageReasonCode: TOKEN_ACTIVATION_STIP dateTimeOfEvent: 2021-03-30 19:50:15+00:00 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 RSErrorCode500-VSE40009: description: VSE_INTERNAL_SYSTEM_ERROR value: errorCode: VSE40009 responses: RSErrorCode400PanLifeCycle: description: Error Codes content: application/json: schema: $ref: '#/components/schemas/RSErrorCode400PanLifeCycle' examples: VSE40001: $ref: '#/components/examples/RSErrorCode400-VSE40001' VSE40000: $ref: '#/components/examples/RSErrorCode400-VSE40000' VSE40006: $ref: '#/components/examples/RSErrorCode400-VSE40006' VSE40010: $ref: '#/components/examples/RSErrorCode400-VSE40010' VSE40009: $ref: '#/components/examples/RSErrorCode500-VSE40009' RSError400UpdateCardMetadata: description: 400 Response Code content: application/json: schema: $ref: '#/components/schemas/RSError400UpdateCardMt' examples: NotFound: $ref: '#/components/examples/RSErrorCodeNotFound' VSE40001: $ref: '#/components/examples/RSErrorCode400-VSE40001' RS401: description: 'Unauthorized: Invalid or missing authentication credentials. ' RSTokenInquiry200: description: Successful Operation response code content: application/json: schema: $ref: '#/components/schemas/RSTokenInquiry200' examples: Default: value: encryptedData: tokenInfo: token: '...' tokenType: ECOMMERCE tokenStatus: ACTIVE tokenExpirationDate: month: '7' year: '2016' tokenAssuranceMethod: '00' numberOfActiveTokensForPAN: 2 numberOfInactiveTokensForPAN: 2 numberOfSuspendedTokensForPAN: 0 tokenActivationDate: '2022-04-25T23:19:12.000Z' tokenDeactivationDate: '...' lastTokenStatusUpdatedTime: '...' originalToken: '...' originalTokenRequestorID: '...' originalTokenReferenceID: '...' originalTokenType: SECURE_ELEMENT originaltokenAssuranceMethod: '00' deviceInfo: deviceID: CTF0000000001 deviceIndex: 99 deviceLanguageCode: eng deviceType: MOBILE_PHONE deviceName: MyCTFDeviceTEst deviceNumber: '6506198963' osType: IOS osVersion: 4.4.4 osBuildID: '1.6' deviceIDType: '630635' deviceManufacturer: Samsung deviceBrand: Galaxy deviceModel: M05 deviceLocation: string deviceIPAddressV4: 127.0.0.1 locationSource: WIFI tokenProtectionMethod: SOFTWARE riskInfo: walletProviderRiskAssessment: 0 walletProviderRiskAssessmentVersion: string walletProviderAccountScore: 1 walletProviderDeviceScore: 1 walletProviderReasonCodes: string deviceBluetoothMac: string deviceIMEI: string deviceSerialNumber: string deviceTimeZone: strin deviceTimeZoneSetting: NETWORK_SET osID: string simSerialNumber: string deviceLostMode: stri daysSinceConsumerDataLastAccountChange: stri accountHolderName: string walletProviderPANAge: stri walletAccountHolderCardNameMatch: Y accountToDeviceBindingAge: stri userAccountAge: stri walletAccountAge: string provisioningAttemptsOnDeviceIn24Hours: '99' distinctCardholderNames: '99' deviceCountry: US walletAccountCountry: US suspendedCardsInAccount: '99' daysSinceLastAccountActivity: '9999' numberOfTransactionsInLast12months: '9999' numberOfActiveTokens: '99' deviceWithActiveTokens: '99' activeTokensOnAllDeviceForAccount: '9999' visaTokenScore: st visaTokenDecisioning: '00' riskAssessmentScore: st issuerSpecialConditionCodes: string panReferenceID: V-3019231458906209630635 operatorID: '40022358888' entityOfLastAction: TOKEN_REQUESTOR walletAccountEmailAddressHash: string clientWalletAccountID: string panSource: MOBILE_BANKING_APP consumerEntryMode: KEY_ENTERED cardMetadataProfileID: '98657845' lastFourOfPAN: '1234' lastFourOfPreviousPAN: '4321' otpInfo: otpCodeIndicator: PRESENT otpCodeExpiration: '2023-06-27T14:49:34.118Z' otpVerificationAttempts: 0 otpVerificationRetryCounts: 0 issuerDiscretionaryData: fileControlInformation: PRESENT issuerApplicationDiscretionaryData: string cardholderVerificationList: lifeCycleTraceID: 0 status: APPROVED timestamp: string deviceBindingInfoList: deviceID: string deviceIndex: 0 deviceName: string RS400: description: 'Bad Request: The request could not be understood by the server due to malformed syntax. The client should not complete the request until it is corrected. ' RSErrorCode500TokInqbyPAN: description: Error Codes content: application/json: schema: $ref: '#/components/schemas/RSErrorCode400TokenInqByPAN' examples: VSE40009: $ref: '#/components/examples/RSErrorCode500-VSE40009' ISE40009: $ref: '#/components/examples/RSErrorCode500-ISE40009' RSErrorCode400TokInqbyPAN: description: Error Codes content: application/json: schema: $ref: '#/components/schemas/RSErrorCode400TokenInqByPAN' examples: VSE40001: $ref: '#/components/examples/RSErrorCode400-VSE40001' VSE40000: $ref: '#/components/examples/RSErrorCode400-VSE40000' VSE40003: $ref: '#/components/examples/RSErrorCode400-VSE40003' VSE40010: $ref: '#/components/examples/RSErrorCode400-VSE40010' NP400900: $ref: '#/components/examples/RSErrorCodeNotFound' RS500: description: 'Internal Server Error. Visa must send request again or contact the issuer support.--- ' RSUpdateCardMetadata200: description: Successful Operation response code content: application/json: schema: $ref: '#/components/schemas/RSUpdateCardMetadata200' examples: Default: value: responseDetails: tokenRequestorID: 40022358888 tokenReferenceID: DNITHE30194726875288888 panReferenceID: V-3019231458906209630635 statusCode: PENDING FAILURE: value: responseDetails: tokenRequestorID: 40022358888 tokenReferenceID: DNITHE30194726875288888 panReferenceID: V-3019231458906209630635 statusCode: FAILURE errorCode: VSE_ERROR_INVALID_DATA NOT_ALLOWED: value: responseDetails: tokenRequestorID: 40022358888 tokenReferenceID: DNITHE30194726875288888 panReferenceID: V-3019231458906209630635 statusCode: NOT_ALLOWED errorCode: VSE_ERROR_INVALID_TOKEN_STATE RSTokenInquiryPan200: description: Successful Operation response code content: application/json: schema: $ref: '#/components/schemas/RSTokenInquiryPan200' examples: Default: value: tokenDetails: tokenRequestorID: 40022358888 tokenReferenceID: DNITHE30194726875288888 panReferenceID: V-3019231458906209630635 entityOfLastAction: TOKEN_REQUESTOR walletAccountEmailAddressHash: string clientWalletAccountID: string panSource: MOBILE_BANKING_APP tokenType: ECOMMERCE tokenStatus: ACTIVE lastFourOfPAN: '1234' operatorId: '219951' RSErrorCode400TokenLifeCycle: description: Error Codes content: application/json: schema: $ref: '#/components/schemas/RSErrorCode400TokenLifeCycle' examples: VSE40000: $ref: '#/components/examples/RSErrorCode400-VSE40000' VSE40001: $ref: '#/components/examples/RSErrorCode400-VSE40001' VSE40002: $ref: '#/components/examples/RSErrorCode400-VSE40002' VSE40003: $ref: '#/components/examples/RSErrorCode400-VSE40003' VSE40010: $ref: '#/components/examples/RSErrorCode400-VSE40010' VSE40011: $ref: '#/components/examples/RSErrorCode400-VSE40011' VSE40009: $ref: '#/components/examples/RSErrorCode500-VSE40009' RSPanLifeCycle200: description: OK content: application/json: examples: Delete Token: summary: Delete Token OK value: - tokenRequestorID: '40000000057' tokenReferenceID: DNITHE302322766462398344 tokenStatus: DEACTIVATED resultOperation: OK Delete Token Empty: summary: Delete Token when all tokens to delete are DEACTIVATED value: [] RS200: description: 'Success ' requestBodies: RQTokenInquiryPan: required: true content: application/json: schema: $ref: '#/components/schemas/RQTokenInquiryPan' examples: panReferenceID: $ref: '#/components/examples/RQTokenInquiryByPANPanReferenceId' encryptedData: $ref: '#/components/examples/RQTokenInquiryByPANEncryptedData' cardId: $ref: '#/components/examples/RQTokenInquiryByPANcardId' RQTokenInquiry: required: true content: application/json: schema: $ref: '#/components/schemas/RQTokenInquiry' RQTokenLifecycle: required: true content: application/json: schema: $ref: '#/components/schemas/RQTokenLifecycle' RQUpdateCardMetadata: required: true content: application/json: schema: $ref: '#/components/schemas/RQUpdateCardMetadata' examples: null With encryptedData: $ref: '#/components/examples/RQNotificationTokenCreated' With panReferenceID: $ref: '#/components/examples/RQNotificationTokenActivationSTIP' With cardId: $ref: '#/components/examples/RQNotificationTokenActivationSTIP' RQPanLifecycle: required: true content: application/json: schema: $ref: '#/components/schemas/RQPanLifecycle' examples: ACCOUNT_UPDATE with encryptedData: $ref: '#/components/examples/RQPanLifecycleCardHolder' ACCOUNT_UPDATE with CardId: $ref: '#/components/examples/RQPanLifecycleCardId' EXP_DATE_UPDATE with encryptedData: $ref: '#/components/examples/RQPanLifecycleCardHolder_EDU' EXP_DATE_UPDATE with CardId: $ref: '#/components/examples/RQPanLifecycleCardId_EDU' DELETE_TOKEN with encryptedData: $ref: '#/components/examples/RQPanLifecycleCardHolder_DT' DELETE_TOKEN with CardId: $ref: '#/components/examples/RQPanLifecycleCardId_DT' VAU_CARDHOLDER_OPT_IN: $ref: '#/components/examples/RQPanLifecycleVauCardholderOptIn' VAU_CARDHOLDER_OPT_OUT: $ref: '#/components/examples/RQPanLifecycleVauCardholderOptOut' parameters: clientID: name: clientID in: path description: Unique tenant identifier for tokenization services. | Please contact our team to know it. required: true example: us-novopayment schema: type: string maxLength: 32 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: {}