openapi: 3.0.1 info: title: Foreign Exchange Rates Visa Consent Management API API description: Visa Consent Management API version: '1' servers: - url: https://sandbox.api.visa.com description: Sandbox server security: [] tags: - name: Visa Consent Management API description: Visa Consent Management API paths: /vcms/v1/consents/{consentID}/revoke: post: tags: - Visa Consent Management API summary: Revoke Consent description: 'This API revokes a current consent. A consent may be revoked if it is in either ACTIVE or PAUSED state. Attempting to revoke a consent in any other state results in a 409 error with invalidConsentStateTransition reason.' parameters: - name: X-Correlation-Id in: header description: Unique ID for every API request - an optional header. Generated by the API client. Used for end-to-end tracing/debugging. required: false explode: false schema: maxLength: 36 minLength: 1 type: string - name: consentID in: path description: 'Consent identifier. ' required: true explode: false schema: type: string requestBody: description: Request body for revocation payload. content: application/json: schema: properties: revocationReason: maxLength: 120 minLength: 1 type: string description: 'The reason for the consent revocation. ' example: User-initiated required: true responses: '200': description: 'Updated consent. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: title: Consent object in response for Transaction Events type: object description: "Consent object returned in the responses.\nA consent represents the end-user permission to access its transaction events or historical data.\nThe limits of a consent are represented by:\n 1. What: Type of the consent - what data or events or payments or actions (payments, etc.) are permitted\n 2. Context:\n a. Time-based retrictions/validity for the Consent.\n b. Beneficiaries and the consent requestor information\n 3. Why: Purpose of the consent\n 4. Terms and Conditions applicable for the Consent\nThe consent is typically unique for a combination of the following, but it not enforced by the API implementation: \n 1. Client ID (Partner VDP Project)\n 2. Region (US as default)\n 3. Cardholder Identity (vCardID/PAN)\n 4. Consent Type (as defined in consentType definition)\n" allOf: - properties: status: title: Status of consent type: string description: "Valid status values of consent:\n + INITIATED\n + ACTIVE\n + REVOKED\n + EXPIRED\n + CONSUMED\n + PAUSED\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Consent Status ValueDescription
INITIATED\n
    \n
  • This is the initial status of a consent when created/saved without successful consumer authentication.
  • \n
  • A consent in this status cannot be used to access consent items (data or other resources).
  • \n
\n
ACTIVE\n
    \n
  • The status of the consent is considered active when it can be used to access consent items (data or other resources).
  • \n
  • Only after successful cardholder authentication, a consent is considered in ACTIVE status.
  • \n
\n
REVOKED\n The consent is transitioned to this state only after it is revoked by the cardholder or by a party on behalf of the cardholder.\n
EXPIRED\n When a consent's expiry date is reached, it is transitioned to this state.\n
CONSUMED\n When the consent's applicability/policy is ONE_TIME and when the consent is used for the applicable use case, the consent is transitioned to this state.\n
PAUSED\n In this state, the consent's purpose (e.g. data sharing, opt-in, etc) may not be fulfilled. If not expired or otherwise invalidated, a consent in this status may be transitioned back to ACTIVE.\n
\n" example: REVOKED enum: - INITIATED - ACTIVE - REVOKED - EXPIRED - CONSUMED - PAUSED userID: title: Masked User Identifier maxLength: 320 minLength: 1 type: string description: "The identifier of the user for whom the consent is created. The type of this identifier is defined by the value of the corresponding userIDType attribute. \nUser identifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses.\n" example: con***@visa.com consentID: title: Visa-generated identifier for the consent type: string description: 'UUID generated by Visa for every new consent. The API client can create as many consentIDs as they want and are responsible for managing the lifecycle of consents. A consentID is only accessible and visible to the clients that created it, until we implement the on-behalf-of (OBO) model for consent. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 - title: Consent object used for creation type: object properties: frequency: title: Defines the frequency criteria or policy for consent type: string description: "An enum representing the consent frequency.\n * STREAMING:\n * The consent item types in the consent are made available on a streaming basis, whenever a triggering event occurs.\n * PERIODIC:\n * The consent item types in the consent are available on a periodic basis.\n * ON_DEMAND:\n * The consent item types in the consent are available on demand from the Resource Provider.\n * CONTEXT_BASED:\n * The consent item types in the consent are available subject to additional filtering.\n" default: STREAMING enum: - STREAMING - PERIODIC - ON_DEMAND - CONTEXT_BASED userIDType: title: User Identifier Type type: string description: 'The type of the provided user identifier (userID). ' example: EMAIL_ADDRESS enum: - EMAIL_ADDRESS - PHONE_NUMBER - VCARDID - PAN - CLIENT_DEFINED primaryPurposes: maxItems: 10 minItems: 1 type: array description: 'A list of primary consent purposes. ' items: required: - beneficiaryOrganizationIDs - consentItemTypes - purposeType type: object properties: purposeType: title: Purpose of Consent maxLength: 25 minLength: 0 type: string description: 'Represents the consent purpose. The set of possible values is contained in the data dictionary for Purposes (TBD location). ' example: PERSONAL_FINANCE_MGMT consentItemTypes: maxItems: 10 minItems: 1 type: array description: 'The consent item types. ' items: title: Consent Item Types. type: string description: 'The classes of resources which the user may consent to sharing with a beneficiary. The set of possible values is contained in the data dictionary for Consent Type Items (TBD location). ' example: TRANSACTION_DATA beneficiaryOrganizationIDs: maxItems: 10 minItems: 1 type: array description: 'The beneficiary IDs which are using the resource for the enclosing purpose. ' items: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 externalConsentID: maxLength: 50 minLength: 0 type: string description: A client-provided identifier for the consent being created. Uniqueness of this value should be enforced by the client. example: qwertyK presentedLanguage: maxLength: 100 minLength: 2 type: string description: 'The language of the content presented to the user. ' format: BCP-47 example: en-US previousConsentID: description: This attribute may be used to reference a prior consent for which the new consent is a "renewal". This reference must have been created in the context of the same Consent Directory and for the same user. example: '' allOf: - title: Visa-generated identifier for the consent type: string description: 'UUID generated by Visa for every new consent. The API client can create as many consentIDs as they want and are responsible for managing the lifecycle of consents. A consentID is only accessible and visible to the clients that created it, until we implement the on-behalf-of (OBO) model for consent. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 secondaryPurposes: maxItems: 10 minItems: 1 type: array description: 'A list of secondary consent purposes. ' items: required: - beneficiaryOrganizationIDs - consentItemTypes - isOptedIn - purposeType type: object properties: isOptedIn: type: boolean description: 'Indicator as to whether the secondary consent was opted in or out by the consumer. A value of true indicates the the consumer opted in to the secondary purpose. ' allOf: - required: - beneficiaryOrganizationIDs - consentItemTypes - purposeType type: object properties: purposeType: title: Purpose of Consent maxLength: 25 minLength: 0 type: string description: 'Represents the consent purpose. The set of possible values is contained in the data dictionary for Purposes (TBD location). ' example: PERSONAL_FINANCE_MGMT consentItemTypes: maxItems: 10 minItems: 1 type: array description: 'The consent item types. ' items: title: Consent Item Types. type: string description: 'The classes of resources which the user may consent to sharing with a beneficiary. The set of possible values is contained in the data dictionary for Consent Type Items (TBD location). ' example: TRANSACTION_DATA beneficiaryOrganizationIDs: maxItems: 10 minItems: 1 type: array description: 'The beneficiary IDs which are using the resource for the enclosing purpose. ' items: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 consentCaptureCity: maxLength: 80 minLength: 1 type: string description: 'The city where the user''s consent was captured. ' example: Austin consentDirectoryID: title: The Visa-generated identifier for a Consent Directory entry. type: string description: 'This value refers to a previously-configured Consent Directory entry, in whose context a consent may be created. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 expirationDateTime: title: The datetime until when the consent is valid maxLength: 29 minLength: 20 type: string description: "The consent is invalid after this datetime. After expiry, the consent is not renewable. When provided by the client, this value must be greater than the current date.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places. \n+ All datetimes will be converted to GMT (+00:00) for storage and subsequent retrieval.\n" format: RFC3339 example: '2026-02-05T17:31:00Z' privacyPolicyVersion: maxLength: 10 minLength: 1 type: string description: 'The version of the privacy policy presented to the user. ' example: '4.1' consentCaptureCountry: maxLength: 2 minLength: 2 type: string description: 'The country where the user''s consent was captured. ' format: ISO 3166-1 alpha 2 example: US consentCaptureDateTime: maxLength: 29 minLength: 20 type: string description: "The date and time that the consent was captured from the user, in the user's local time zone.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places.\n+ The time zone provided will be maintained and returned on subsequent retrieval.\n" format: RFC3339 example: '2021-01-12T10:15:20.343-06:00' presentedContentVersion: maxLength: 10 minLength: 1 type: string description: 'The version of the content presented to the user. ' example: '1.0' presenterOrganizationID: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 consentCaptureRegionState: maxLength: 3 minLength: 1 type: string description: 'The region or state where the user''s consent was captured, represented as the subdivision part of ISO 3166-2. ' format: ISO 3166-2 subdivision example: TX resourceProviderOrganizationIDs: type: array description: 'The list of Resource Provider identifiers who are participating in this consent. ' items: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 - properties: constraints: title: Consent Constraints type: object properties: timespan: type: object properties: endDateTime: maxLength: 29 minLength: 20 type: string description: "End datetime.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places.\n+ All datetimes will be converted to GMT (+00:00) for storage and retrieval.\n" format: RFC3339 example: '2022-07-12T16:15:21.672Z' startDateTime: maxLength: 29 minLength: 20 type: string description: "Start datetime.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places.\n+ All datetimes will be converted to GMT (+00:00) for storage and retrieval.\n" format: RFC3339 example: '2022-01-12T16:15:21.672Z' description: 'A timespan constraint applicable for the consent item types captured in the consent. For example, consent for historical transaction data may have a constraint to include only transactions from the last 6 months. That constraint would be captured here. ' maxNumberUses: maximum: 100 minimum: 0 type: integer description: 'The maximum number of uses for the consent item types captured in the consent. ' format: int32 remainingNumberUses: title: Remaining Number of Uses maximum: 100 minimum: 0 type: integer description: 'The remaining number of uses for the consent item types captured in the consent.. ' format: int32 description: 'Additional consent constraints. ' createdDateTime: maxLength: 29 minLength: 20 type: string description: When the consent was created in either an initiated or active state. format: RFC3339 example: '2021-01-12T16:15:21.672Z' updatedDateTime: maxLength: 29 minLength: 20 type: string description: When the consent was last updated. format: RFC3339 example: '2021-01-12T16:15:21.672Z' financialInstruments: type: array description: 'The list of financial instruments applicable for this consent. ' items: title: Masked Financial Instrument type: object properties: instrumentID: maxLength: 36 minLength: 36 type: string description: 'Unique identifier for the instance of financial instrument. ' format: uuid example: f38de9d8-129a-40ea-b149-b8b64a7eda33 accountNumber: maxLength: 50 minLength: 1 type: string description: 'The account number. Account numbers of type PAYMENT_CARD BANK_ACCOUNT and PAYMENT_TOKEN are not retained in the consent system as-is, and will be returned as masked values in subsequent API responses. ' example: 400000******0000 instrumentType: type: string description: 'The type of financial instrument. ' enum: - PAYMENT_CARD - VCARDID - BANK_ACCOUNT - PAYMENT_TOKEN description: 'Financial instrument representation, with masked account number. ' consumerContactInformation: title: Masked Consumer Contact Information type: object properties: phoneNumber: maxLength: 15 minLength: 7 type: string description: 'Phone number, which may include only numerical digits. ' example: '***555' emailAddress: maxLength: 100 minLength: 5 type: string description: 'Email address. ' format: Email Address example: con***@visa.com isPhoneNumberVerified: type: boolean description: 'Indicates whether the phone number has been verified by the caller. ' isEmailAddressVerified: type: boolean description: 'Indicates whether the email address has been verified by the caller. ' description: 'Masked contact information for the end consumer. ' identityVerificationDetails: title: Identity verification details type: object properties: userID: description: "The user identifier used for IDV, if it differs from the root-level userID attribute. \nIdentifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses. \n" allOf: - title: Masked User Identifier maxLength: 320 minLength: 1 type: string description: "The identifier of the user for whom the consent is created. The type of this identifier is defined by the value of the corresponding userIDType attribute. \nUser identifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses.\n" example: con***@visa.com userIDType: title: User Identifier Type type: string description: 'The type of the provided user identifier (userID). ' example: EMAIL_ADDRESS enum: - EMAIL_ADDRESS - PHONE_NUMBER - VCARDID - PAN - CLIENT_DEFINED attestation: maxLength: 2000 minLength: 1 type: string description: 'The attestation contents, format as determined by the attestationType. ' attestationType: type: string description: 'The type of identity verification attestation. ' enum: - ID_TOKEN description: "The Identity verification details represent an attestation of the consumer identity and the details of the authentication performed on the consumer.
\nVisa uses authentication details for various risk purposes. \nThe identity of the consumer is necessary for ensuring proper capture of the consent.
\nIf the attestationType is ID_TOKEN, the attestation is represented by a base64 urlencoded string - a standard JWT format.\n" - required: - consentCaptureCountry - consentCaptureDateTime - consentCaptureRegionState - consentDirectoryID - consentID - createdDateTime - expirationDateTime - frequency - presentedContentVersion - presentedLanguage - presenterOrganizationID - primaryPurposes - privacyPolicyVersion - resourceProviderOrganizationIDs - resourceProviderOrganizationIDs - status - updatedDateTime - userID - userIDType '400': description: "The details part of the error response can provide a list of fields that failed data validation constraints and reason values for this error include:\n \n" headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - required: - status - properties: reason: example: badRequest message: example: Input validation error application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '401': description: 'API authorized error caused due to any of the following reasons: + x-pay-token is not present, blank, or not in a valid format. + Timestamp field not in valid UTC timestamp format. + Version field is invalid. + Token''s timestamp is more than 8 minutes off from the current time. + Token hash mismatch. + APIKey not present in request. + APIKey is not active. + APIKey not valid. + APIKey not active. + Request has more than one authentication token, which is not supported ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Unauthorized message: example: Access to resource is not authorized application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '403': description: "The 403 (Forbidden) HTTP Status code indicates that this Visa Developer Center project does not have permission to access the requested resource.\nThis can happen if you are trying to invoke an API request for a resource that is not part of your project.\n\nCheck for the following:\n + You are using a project and the credential for the project that includes the API being accessed.\n + You created a project and received sandbox credentials for the API’s being called.\n + You added the API being called to the project (if not already present) with the credentials that are being used.\n" headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Forbidden message: example: Forbidden application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '404': description: The specified resource was not found headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - required: - status - properties: reason: example: notFound message: example: Consent not found application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '406': description: 'Not Acceptable - Indicates that the "Accept:" header field is present in a request and none of the available representations for the response have a media type that is listed as acceptable. This can happen when the requested API version is not available or unsupported; for example, when the version requested in the Accept: header is newer than the currently live/supported version. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: NotAcceptable message: example: No acceptable media type application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '409': description: 'The current state of consent is incompatible with the requested mutation. For example, an EXPIRED consent cannot be revoked. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: invalidConsentStateTransition message: example: The current state of consent is incompatible for the requested mutation. For example, an EXPIRED consent cannot be revoked. application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '410': description: 'Gone - Indicates that the resource at this end point is no longer available. This is usually returned for old API versions that are not available anymore - EOL (End-of-Life). The content-type header in the response indicates the latest supported API version. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Gone message: example: Resource no longer available application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '429': description: 'The Visa Developer Center project has clocked too many requests in a given amount of time. Please contact Visa Support at developer@visa.com if you want to increase the time limits. ' headers: Retry-After: description: 'Header field to suggest an appropriate amount of time for the client to wait before retrying the request, typically after a 503 error or after a batch request when the batch job is not completed. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 ' style: simple explode: false schema: maxLength: 30 minLength: 1 type: string X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: rateLimitExceeded message: example: Rate limit exceeded application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '500': description: 'Internal Server Error. Please contact Visa Support at developer@visa.com with a complete error message, full http request and response details. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: serviceError message: example: Internal server error application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '503': description: 'The Visa system is currently unable to handle the request due to a temporary overloading or maintenance of the server. There may be a Retry-After header field to suggest an appropriate amount of time for the client to wait before retrying the request. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 Please contact Visa Support at developer@visa.com if the issue persists. ' headers: Retry-After: description: 'Header field to suggest an appropriate amount of time for the client to wait before retrying the request, typically after a 503 error or after a batch request when the batch job is not completed. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 ' style: simple explode: false schema: maxLength: 30 minLength: 1 type: string X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: notReady message: example: Service is unavailable application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context x-operationVersions: - label: v1 - Latest operationPointer: '#/paths/~1vcms~1v1~1consents~1{consentID}~1revoke/post' default: false x-hideTryIt: true /vcms/v1/consents/{consentID}/constraints/remainingNumberUses: put: tags: - Visa Consent Management API summary: Update Remaining Consent Uses description: 'API for Visa partners (Consent Requestors) to update the remaining number of uses for a multi-use consent. Notes: + This API is idempotent. + For an active consent, this value may be set to less than or equal to the current value, and only if maxNumberUses is set as non-zero on the consent. Any violation of the above conditions will result in a 409 error with invalidConsentModification reason. If set to zero, the status of the consent changes to CONSUMED and is no longer active.' parameters: - name: X-Correlation-Id in: header description: Unique ID for every API request - an optional header. Generated by the API client. Used for end-to-end tracing/debugging. required: false explode: false schema: maxLength: 36 minLength: 1 type: string - name: consentID in: path description: 'Consent identifier. ' required: true explode: false schema: type: string requestBody: description: Consent request body for PUT remaining number of uses. content: application/json: schema: title: Consent update request body for Consent remaining number of uses PUT required: - status type: object properties: remainingNumberUses: title: Remaining Number of Uses maximum: 100 minimum: 0 type: integer description: 'The remaining number of uses for the consent item types captured in the consent.. ' format: int32 required: true responses: '200': description: 'Consent remainingNumberUses updated successfully ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: properties: remainingNumberUses: title: Remaining Number of Uses maximum: 100 minimum: 0 type: integer description: 'The remaining number of uses for the consent item types captured in the consent.. ' format: int32 '400': description: "The details part of the error response can provide a list of fields that failed data validation constraints and reason values for this error include:\n \n" headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - required: - status - properties: reason: example: badRequest message: example: Input validation error application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '401': description: 'API authorized error caused due to any of the following reasons: + x-pay-token is not present, blank, or not in a valid format. + Timestamp field not in valid UTC timestamp format. + Version field is invalid. + Token''s timestamp is more than 8 minutes off from the current time. + Token hash mismatch. + APIKey not present in request. + APIKey is not active. + APIKey not valid. + APIKey not active. + Request has more than one authentication token, which is not supported ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Unauthorized message: example: Access to resource is not authorized application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '403': description: "The 403 (Forbidden) HTTP Status code indicates that this Visa Developer Center project does not have permission to access the requested resource.\nThis can happen if you are trying to invoke an API request for a resource that is not part of your project.\n\nCheck for the following:\n + You are using a project and the credential for the project that includes the API being accessed.\n + You created a project and received sandbox credentials for the API’s being called.\n + You added the API being called to the project (if not already present) with the credentials that are being used.\n" headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Forbidden message: example: Forbidden application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '404': description: The specified resource was not found headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - required: - status - properties: reason: example: notFound message: example: Consent not found application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '406': description: 'Not Acceptable - Indicates that the "Accept:" header field is present in a request and none of the available representations for the response have a media type that is listed as acceptable. This can happen when the requested API version is not available or unsupported; for example, when the version requested in the Accept: header is newer than the currently live/supported version. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: NotAcceptable message: example: No acceptable media type application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '409': description: 'The current state of consent is incompatible with the requested mutation. For example, an EXPIRED consent cannot be revoked. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: invalidConsentStateTransition message: example: The current state of consent is incompatible for the requested mutation. For example, an EXPIRED consent cannot be revoked. application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '410': description: 'Gone - Indicates that the resource at this end point is no longer available. This is usually returned for old API versions that are not available anymore - EOL (End-of-Life). The content-type header in the response indicates the latest supported API version. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Gone message: example: Resource no longer available application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '429': description: 'The Visa Developer Center project has clocked too many requests in a given amount of time. Please contact Visa Support at developer@visa.com if you want to increase the time limits. ' headers: Retry-After: description: 'Header field to suggest an appropriate amount of time for the client to wait before retrying the request, typically after a 503 error or after a batch request when the batch job is not completed. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 ' style: simple explode: false schema: maxLength: 30 minLength: 1 type: string X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: rateLimitExceeded message: example: Rate limit exceeded application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '500': description: 'Internal Server Error. Please contact Visa Support at developer@visa.com with a complete error message, full http request and response details. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: serviceError message: example: Internal server error application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '503': description: 'The Visa system is currently unable to handle the request due to a temporary overloading or maintenance of the server. There may be a Retry-After header field to suggest an appropriate amount of time for the client to wait before retrying the request. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 Please contact Visa Support at developer@visa.com if the issue persists. ' headers: Retry-After: description: 'Header field to suggest an appropriate amount of time for the client to wait before retrying the request, typically after a 503 error or after a batch request when the batch job is not completed. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 ' style: simple explode: false schema: maxLength: 30 minLength: 1 type: string X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: notReady message: example: Service is unavailable application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context x-operationVersions: - label: v1 - Latest operationPointer: '#/paths/~1vcms~1v1~1consents~1{consentID}~1constraints~1remainingNumberUses/put' default: false x-hideTryIt: true /vcms/v1/consents: post: tags: - Visa Consent Management API summary: Save Consent description: 'API for Visa partners (Consent Requestors) to save a consumer-granted consent. Notes: + This API is not idempotent, and there is no duplicate check to prevent clients from creating multiple consents with the same values. + The associated Consent Directory entry determines which, if any, identity verification attestation is required.' parameters: - name: X-Correlation-Id in: header description: Unique ID for every API request - an optional header. Generated by the API client. Used for end-to-end tracing/debugging. required: false explode: false schema: maxLength: 36 minLength: 1 type: string requestBody: description: Consent request body for transaction data. content: application/json: schema: title: Transaction Data Consent object as it is used in the HTTP request for creation type: object example: userID: abcdef frequency: PERIODIC userIDType: CLIENT_DEFINED constraints: timespan: endDateTime: '2024-09-07T00:00:00Z' startDateTime: '2023-09-07T00:00:00Z' maxNumberUses: '10' primaryPurposes: - purposeType: LOYALTYTPA consentItemTypes: - PAYMENTS_BILLPAY beneficiaryOrganizationIDs: - 332d32d4-df93-4133-bf5e-b269111bf7b3 externalConsentID: Queryrb presentedLanguage: en-US previousConsentID: '' consentCaptureCity: Austin consentDirectoryID: 189ab0a9-9ba9-4c1c-a750-06c68b33f5d3 expirationDateTime: '2024-09-07T00:00:00Z' financialInstruments: - accountNumber: '4000000000000001' instrumentType: PAYMENT_CARD privacyPolicyVersion: '1.0' consentCaptureCountry: US consentCaptureDateTime: '2023-09-07T00:00:00Z' presentedContentVersion: '1.0' presenterOrganizationID: 332d32d4-df93-4133-bf5e-b269111bf7b1 consentCaptureRegionState: AU consumerContactInformation: phoneNumber: '+919709193274' emailAddress: bhawesh@visa.com isPhoneNumberVerified: 'true' isEmailAddressVerified: 'true' identityVerificationDetails: userID: consumer@visa.com userIDType: EMAIL_ADDRESS attestation: abc attestationType: ID_TOKEN resourceProviderOrganizationIDs: - 332d32d4-df93-4133-bf5e-b269111bf7b4 allOf: - properties: userID: title: User Identifier maxLength: 320 minLength: 1 type: string description: "The identifier of the user for whom the consent is created. The type of this identifier is defined by the value of the corresponding userIDType attribute. \nUser identifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses.\n" example: consumer@visa.com - title: Consent object used for creation type: object properties: frequency: title: Defines the frequency criteria or policy for consent type: string description: "An enum representing the consent frequency.\n * STREAMING:\n * The consent item types in the consent are made available on a streaming basis, whenever a triggering event occurs.\n * PERIODIC:\n * The consent item types in the consent are available on a periodic basis.\n * ON_DEMAND:\n * The consent item types in the consent are available on demand from the Resource Provider.\n * CONTEXT_BASED:\n * The consent item types in the consent are available subject to additional filtering.\n" default: STREAMING enum: - STREAMING - PERIODIC - ON_DEMAND - CONTEXT_BASED userIDType: title: User Identifier Type type: string description: 'The type of the provided user identifier (userID). ' example: EMAIL_ADDRESS enum: - EMAIL_ADDRESS - PHONE_NUMBER - VCARDID - PAN - CLIENT_DEFINED primaryPurposes: maxItems: 10 minItems: 1 type: array description: 'A list of primary consent purposes. ' items: required: - beneficiaryOrganizationIDs - consentItemTypes - purposeType type: object properties: purposeType: title: Purpose of Consent maxLength: 25 minLength: 0 type: string description: 'Represents the consent purpose. The set of possible values is contained in the data dictionary for Purposes (TBD location). ' example: PERSONAL_FINANCE_MGMT consentItemTypes: maxItems: 10 minItems: 1 type: array description: 'The consent item types. ' items: title: Consent Item Types. type: string description: 'The classes of resources which the user may consent to sharing with a beneficiary. The set of possible values is contained in the data dictionary for Consent Type Items (TBD location). ' example: TRANSACTION_DATA beneficiaryOrganizationIDs: maxItems: 10 minItems: 1 type: array description: 'The beneficiary IDs which are using the resource for the enclosing purpose. ' items: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 externalConsentID: maxLength: 50 minLength: 0 type: string description: A client-provided identifier for the consent being created. Uniqueness of this value should be enforced by the client. example: qwertyK presentedLanguage: maxLength: 100 minLength: 2 type: string description: 'The language of the content presented to the user. ' format: BCP-47 example: en-US previousConsentID: description: This attribute may be used to reference a prior consent for which the new consent is a "renewal". This reference must have been created in the context of the same Consent Directory and for the same user. example: '' allOf: - title: Visa-generated identifier for the consent type: string description: 'UUID generated by Visa for every new consent. The API client can create as many consentIDs as they want and are responsible for managing the lifecycle of consents. A consentID is only accessible and visible to the clients that created it, until we implement the on-behalf-of (OBO) model for consent. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 secondaryPurposes: maxItems: 10 minItems: 1 type: array description: 'A list of secondary consent purposes. ' items: required: - beneficiaryOrganizationIDs - consentItemTypes - isOptedIn - purposeType type: object properties: isOptedIn: type: boolean description: 'Indicator as to whether the secondary consent was opted in or out by the consumer. A value of true indicates the the consumer opted in to the secondary purpose. ' allOf: - required: - beneficiaryOrganizationIDs - consentItemTypes - purposeType type: object properties: purposeType: title: Purpose of Consent maxLength: 25 minLength: 0 type: string description: 'Represents the consent purpose. The set of possible values is contained in the data dictionary for Purposes (TBD location). ' example: PERSONAL_FINANCE_MGMT consentItemTypes: maxItems: 10 minItems: 1 type: array description: 'The consent item types. ' items: title: Consent Item Types. type: string description: 'The classes of resources which the user may consent to sharing with a beneficiary. The set of possible values is contained in the data dictionary for Consent Type Items (TBD location). ' example: TRANSACTION_DATA beneficiaryOrganizationIDs: maxItems: 10 minItems: 1 type: array description: 'The beneficiary IDs which are using the resource for the enclosing purpose. ' items: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 consentCaptureCity: maxLength: 80 minLength: 1 type: string description: 'The city where the user''s consent was captured. ' example: Austin consentDirectoryID: title: The Visa-generated identifier for a Consent Directory entry. type: string description: 'This value refers to a previously-configured Consent Directory entry, in whose context a consent may be created. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 expirationDateTime: title: The datetime until when the consent is valid maxLength: 29 minLength: 20 type: string description: "The consent is invalid after this datetime. After expiry, the consent is not renewable. When provided by the client, this value must be greater than the current date.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places. \n+ All datetimes will be converted to GMT (+00:00) for storage and subsequent retrieval.\n" format: RFC3339 example: '2026-02-05T17:31:00Z' privacyPolicyVersion: maxLength: 10 minLength: 1 type: string description: 'The version of the privacy policy presented to the user. ' example: '4.1' consentCaptureCountry: maxLength: 2 minLength: 2 type: string description: 'The country where the user''s consent was captured. ' format: ISO 3166-1 alpha 2 example: US consentCaptureDateTime: maxLength: 29 minLength: 20 type: string description: "The date and time that the consent was captured from the user, in the user's local time zone.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places.\n+ The time zone provided will be maintained and returned on subsequent retrieval.\n" format: RFC3339 example: '2021-01-12T10:15:20.343-06:00' presentedContentVersion: maxLength: 10 minLength: 1 type: string description: 'The version of the content presented to the user. ' example: '1.0' presenterOrganizationID: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 consentCaptureRegionState: maxLength: 3 minLength: 1 type: string description: 'The region or state where the user''s consent was captured, represented as the subdivision part of ISO 3166-2. ' format: ISO 3166-2 subdivision example: TX resourceProviderOrganizationIDs: type: array description: 'The list of Resource Provider identifiers who are participating in this consent. ' items: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 - properties: constraints: title: Consent Constraints type: object properties: timespan: type: object properties: endDateTime: maxLength: 29 minLength: 20 type: string description: "End datetime.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places.\n+ All datetimes will be converted to GMT (+00:00) for storage and subsequent retrieval.\n" format: RFC3339 example: '2022-07-12T16:15:21.672Z' startDateTime: maxLength: 29 minLength: 20 type: string description: "Start datetime.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places.\n+ All datetimes will be converted to GMT (+00:00) for storage and subsequent retrieval.\n" format: RFC3339 example: '2022-01-12T16:15:21.672Z' description: 'A timespan constraint applicable for the consent item types captured in the consent. For example, consent for historical transaction data may have a constraint to include only transactions from the last 6 months. That constraint would be captured here. Not applicable to consents with STREAMING frequency. ' maxNumberUses: maximum: 100 minimum: 0 type: integer description: 'The maximum number of uses for the consent item types captured in the consent. Not applicable to consents with STREAMING frequency. ' format: int32 description: 'Additional consent constraints. ' financialInstruments: type: array description: 'The list of financial instruments applicable for this consent. ' items: title: Financial Instrument required: - accountNumber - instrumentType type: object properties: accountNumber: maxLength: 42 minLength: 9 type: string description: 'The account number. Account numbers of type PAYMENT_CARD BANK_ACCOUNT and PAYMENT_TOKEN are not retained in the consent system as-is, and will be returned as masked values in subsequent API responses. Validations by instrumentType: + PAYMENT_CARD : 13-16 length , numeric + VCARDID : 42 length, alphanumeric + BANK_ACCOUNT : 9-34 length alphanumeric + PAYMENT_TOKEN : 13-16 length , numeric ' example: '4000000000000000' instrumentType: type: string description: 'The type of financial instrument. ' example: PAYMENT_CARD enum: - PAYMENT_CARD - VCARDID - BANK_ACCOUNT - PAYMENT_TOKEN description: 'Financial instrument representation. ' consumerContactInformation: title: Consumer Contact Information type: object properties: phoneNumber: maxLength: 15 minLength: 7 type: string description: 'Phone number, which may include only numerical digits. ' example: '15555555555' emailAddress: maxLength: 100 minLength: 5 type: string description: 'Email address. ' format: Email Address example: consumer@visa.com isPhoneNumberVerified: type: boolean description: 'Indicates whether the phone number has been verified by the caller. ' isEmailAddressVerified: type: boolean description: 'Indicates whether the email address has been verified by the caller. ' description: 'Contact information for the end consumer. ' identityVerificationDetails: title: Identity verification details required: - attestation - attestationType type: object properties: userID: description: "The user identifier used for IDV, if it differs from the root-level userID attribute. \nIdentifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses.\n" allOf: - title: User Identifier maxLength: 320 minLength: 1 type: string description: "The identifier of the user for whom the consent is created. The type of this identifier is defined by the value of the corresponding userIDType attribute. \nUser identifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses.\n" example: consumer@visa.com userIDType: title: User Identifier Type type: string description: 'The type of the provided user identifier (userID). ' example: EMAIL_ADDRESS enum: - EMAIL_ADDRESS - PHONE_NUMBER - VCARDID - PAN - CLIENT_DEFINED attestation: maxLength: 2000 minLength: 1 type: string description: 'The attestation contents, format as determined by the attestationType. ' example: abc123 attestationType: type: string description: 'The type of identity verification attestation. ' enum: - ID_TOKEN - THREED_SECURE description: "The Identity verification details represent an attestation of the consumer identity and the details of the authentication performed on the consumer.
\nVisa uses authentication details for various risk purposes. \nThe identity of the consumer is necessary for ensuring proper capture of the consent.
\nIf the attestationType is ID_TOKEN, the attestation is represented by a base64 urlencoded string - a standard JWT format.
\nIf the userID used for IDV differs form the root-level userID attribute, the IDV userID should be specified in this userID attribute. If userID is specified, then userIDType must also be specified.\n" - required: - consentCaptureCountry - consentCaptureDateTime - consentCaptureRegionState - consentDirectoryID - expirationDateTime - frequency - presentedContentVersion - presentedLanguage - presenterOrganizationID - primaryPurposes - privacyPolicyVersion - resourceProviderOrganizationIDs - userID - userIDType required: true responses: '201': description: Consent granted (object created) successfully headers: Location: description: Location style: simple explode: false schema: type: string example: https://api.visa.com/consent-api/consents/a8023ee6-64a1-4c48-b1c8-7609faf41f1f X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string '400': description: "The details part of the error response can provide a list of fields that failed data validation constraints and reason values for this error include:\n \n" headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - required: - status - properties: reason: example: badRequest message: example: Input validation error application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '401': description: 'API authorized error caused due to any of the following reasons: + x-pay-token is not present, blank, or not in a valid format. + Timestamp field not in valid UTC timestamp format. + Version field is invalid. + Token''s timestamp is more than 8 minutes off from the current time. + Token hash mismatch. + APIKey not present in request. + APIKey is not active. + APIKey not valid. + APIKey not active. + Request has more than one authentication token, which is not supported ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Unauthorized message: example: Access to resource is not authorized application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '403': description: "The 403 (Forbidden) HTTP Status code indicates that this Visa Developer Center project does not have permission to access the requested resource.\nThis can happen if you are trying to invoke an API request for a resource that is not part of your project.\n\nCheck for the following:\n + You are using a project and the credential for the project that includes the API being accessed.\n + You created a project and received sandbox credentials for the API’s being called.\n + You added the API being called to the project (if not already present) with the credentials that are being used.\n" headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Forbidden message: example: Forbidden application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '406': description: 'Not Acceptable - Indicates that the "Accept:" header field is present in a request and none of the available representations for the response have a media type that is listed as acceptable. This can happen when the requested API version is not available or unsupported; for example, when the version requested in the Accept: header is newer than the currently live/supported version. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: NotAcceptable message: example: No acceptable media type application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '409': description: 'The current state of consent is incompatible with the requested mutation. For example, an EXPIRED consent cannot be revoked. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: invalidConsentStateTransition message: example: The current state of consent is incompatible for the requested mutation. For example, an EXPIRED consent cannot be revoked. application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '410': description: 'Gone - Indicates that the resource at this end point is no longer available. This is usually returned for old API versions that are not available anymore - EOL (End-of-Life). The content-type header in the response indicates the latest supported API version. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Gone message: example: Resource no longer available application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '429': description: 'The Visa Developer Center project has clocked too many requests in a given amount of time. Please contact Visa Support at developer@visa.com if you want to increase the time limits. ' headers: Retry-After: description: 'Header field to suggest an appropriate amount of time for the client to wait before retrying the request, typically after a 503 error or after a batch request when the batch job is not completed. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 ' style: simple explode: false schema: maxLength: 30 minLength: 1 type: string X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: rateLimitExceeded message: example: Rate limit exceeded application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '500': description: 'Internal Server Error. Please contact Visa Support at developer@visa.com with a complete error message, full http request and response details. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: serviceError message: example: Internal server error application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '503': description: 'The Visa system is currently unable to handle the request due to a temporary overloading or maintenance of the server. There may be a Retry-After header field to suggest an appropriate amount of time for the client to wait before retrying the request. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 Please contact Visa Support at developer@visa.com if the issue persists. ' headers: Retry-After: description: 'Header field to suggest an appropriate amount of time for the client to wait before retrying the request, typically after a 503 error or after a batch request when the batch job is not completed. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 ' style: simple explode: false schema: maxLength: 30 minLength: 1 type: string X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: notReady message: example: Service is unavailable application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context callbacks: consentCreated: {} consentAttributeChanged: {} consentStatusChanged: {} x-operationVersions: - label: v1 - Latest operationPointer: '#/paths/~1vcms~1v1~1consents/post' default: false x-hideTryIt: true /vcms/v1/consents/{consentID}: get: tags: - Visa Consent Management API summary: Get Consent description: This API retrieves the consent object identified by consent ID. parameters: - name: X-Correlation-Id in: header description: Unique ID for every API request - an optional header. Generated by the API client. Used for end-to-end tracing/debugging. required: false explode: false schema: maxLength: 36 minLength: 1 type: string - name: consentID in: path description: 'Consent identifier. ' required: true explode: false schema: type: string responses: '200': description: 'Get the consent object corresponding to consentID. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: title: Consent object in response for Transaction Events type: object description: "Consent object returned in the responses.\nA consent represents the end-user permission to access its transaction events or historical data.\nThe limits of a consent are represented by:\n 1. What: Type of the consent - what data or events or payments or actions (payments, etc.) are permitted\n 2. Context:\n a. Time-based retrictions/validity for the Consent.\n b. Beneficiaries and the consent requestor information\n 3. Why: Purpose of the consent\n 4. Terms and Conditions applicable for the Consent\nThe consent is typically unique for a combination of the following, but it not enforced by the API implementation: \n 1. Client ID (Partner VDP Project)\n 2. Region (US as default)\n 3. Cardholder Identity (vCardID/PAN)\n 4. Consent Type (as defined in consentType definition)\n" allOf: - properties: status: title: Status of consent type: string description: "Valid status values of consent:\n + INITIATED\n + ACTIVE\n + REVOKED\n + EXPIRED\n + CONSUMED\n + PAUSED\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Consent Status ValueDescription
INITIATED\n
    \n
  • This is the initial status of a consent when created/saved without successful consumer authentication.
  • \n
  • A consent in this status cannot be used to access consent items (data or other resources).
  • \n
\n
ACTIVE\n
    \n
  • The status of the consent is considered active when it can be used to access consent items (data or other resources).
  • \n
  • Only after successful cardholder authentication, a consent is considered in ACTIVE status.
  • \n
\n
REVOKED\n The consent is transitioned to this state only after it is revoked by the cardholder or by a party on behalf of the cardholder.\n
EXPIRED\n When a consent's expiry date is reached, it is transitioned to this state.\n
CONSUMED\n When the consent's applicability/policy is ONE_TIME and when the consent is used for the applicable use case, the consent is transitioned to this state.\n
PAUSED\n In this state, the consent's purpose (e.g. data sharing, opt-in, etc) may not be fulfilled. If not expired or otherwise invalidated, a consent in this status may be transitioned back to ACTIVE.\n
\n" example: ACTIVE enum: - INITIATED - ACTIVE - REVOKED - EXPIRED - CONSUMED - PAUSED userID: title: Masked User Identifier maxLength: 320 minLength: 1 type: string description: "The identifier of the user for whom the consent is created. The type of this identifier is defined by the value of the corresponding userIDType attribute. \nUser identifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses.\n" example: con***@visa.com consentID: title: Visa-generated identifier for the consent type: string description: 'UUID generated by Visa for every new consent. The API client can create as many consentIDs as they want and are responsible for managing the lifecycle of consents. A consentID is only accessible and visible to the clients that created it, until we implement the on-behalf-of (OBO) model for consent. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 - title: Consent object used for creation type: object properties: frequency: title: Defines the frequency criteria or policy for consent type: string description: "An enum representing the consent frequency.\n * STREAMING:\n * The consent item types in the consent are made available on a streaming basis, whenever a triggering event occurs.\n * PERIODIC:\n * The consent item types in the consent are available on a periodic basis.\n * ON_DEMAND:\n * The consent item types in the consent are available on demand from the Resource Provider.\n * CONTEXT_BASED:\n * The consent item types in the consent are available subject to additional filtering.\n" default: STREAMING enum: - STREAMING - PERIODIC - ON_DEMAND - CONTEXT_BASED userIDType: title: User Identifier Type type: string description: 'The type of the provided user identifier (userID). ' example: EMAIL_ADDRESS enum: - EMAIL_ADDRESS - PHONE_NUMBER - VCARDID - PAN - CLIENT_DEFINED primaryPurposes: maxItems: 10 minItems: 1 type: array description: 'A list of primary consent purposes. ' items: required: - beneficiaryOrganizationIDs - consentItemTypes - purposeType type: object properties: purposeType: title: Purpose of Consent maxLength: 25 minLength: 0 type: string description: 'Represents the consent purpose. The set of possible values is contained in the data dictionary for Purposes (TBD location). ' example: PERSONAL_FINANCE_MGMT consentItemTypes: maxItems: 10 minItems: 1 type: array description: 'The consent item types. ' items: title: Consent Item Types. type: string description: 'The classes of resources which the user may consent to sharing with a beneficiary. The set of possible values is contained in the data dictionary for Consent Type Items (TBD location). ' example: TRANSACTION_DATA beneficiaryOrganizationIDs: maxItems: 10 minItems: 1 type: array description: 'The beneficiary IDs which are using the resource for the enclosing purpose. ' items: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 externalConsentID: maxLength: 50 minLength: 0 type: string description: A client-provided identifier for the consent being created. Uniqueness of this value should be enforced by the client. example: qwertyK presentedLanguage: maxLength: 100 minLength: 2 type: string description: 'The language of the content presented to the user. ' format: BCP-47 example: en-US previousConsentID: description: This attribute may be used to reference a prior consent for which the new consent is a "renewal". This reference must have been created in the context of the same Consent Directory and for the same user. example: '' allOf: - title: Visa-generated identifier for the consent type: string description: 'UUID generated by Visa for every new consent. The API client can create as many consentIDs as they want and are responsible for managing the lifecycle of consents. A consentID is only accessible and visible to the clients that created it, until we implement the on-behalf-of (OBO) model for consent. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 secondaryPurposes: maxItems: 10 minItems: 1 type: array description: 'A list of secondary consent purposes. ' items: required: - beneficiaryOrganizationIDs - consentItemTypes - isOptedIn - purposeType type: object properties: isOptedIn: type: boolean description: 'Indicator as to whether the secondary consent was opted in or out by the consumer. A value of true indicates the the consumer opted in to the secondary purpose. ' allOf: - required: - beneficiaryOrganizationIDs - consentItemTypes - purposeType type: object properties: purposeType: title: Purpose of Consent maxLength: 25 minLength: 0 type: string description: 'Represents the consent purpose. The set of possible values is contained in the data dictionary for Purposes (TBD location). ' example: PERSONAL_FINANCE_MGMT consentItemTypes: maxItems: 10 minItems: 1 type: array description: 'The consent item types. ' items: title: Consent Item Types. type: string description: 'The classes of resources which the user may consent to sharing with a beneficiary. The set of possible values is contained in the data dictionary for Consent Type Items (TBD location). ' example: TRANSACTION_DATA beneficiaryOrganizationIDs: maxItems: 10 minItems: 1 type: array description: 'The beneficiary IDs which are using the resource for the enclosing purpose. ' items: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 consentCaptureCity: maxLength: 80 minLength: 1 type: string description: 'The city where the user''s consent was captured. ' example: Austin consentDirectoryID: title: The Visa-generated identifier for a Consent Directory entry. type: string description: 'This value refers to a previously-configured Consent Directory entry, in whose context a consent may be created. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 expirationDateTime: title: The datetime until when the consent is valid maxLength: 29 minLength: 20 type: string description: "The consent is invalid after this datetime. After expiry, the consent is not renewable. When provided by the client, this value must be greater than the current date.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places. \n+ All datetimes will be converted to GMT (+00:00) for storage and subsequent retrieval.\n" format: RFC3339 example: '2026-02-05T17:31:00Z' privacyPolicyVersion: maxLength: 10 minLength: 1 type: string description: 'The version of the privacy policy presented to the user. ' example: '4.1' consentCaptureCountry: maxLength: 2 minLength: 2 type: string description: 'The country where the user''s consent was captured. ' format: ISO 3166-1 alpha 2 example: US consentCaptureDateTime: maxLength: 29 minLength: 20 type: string description: "The date and time that the consent was captured from the user, in the user's local time zone.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places.\n+ The time zone provided will be maintained and returned on subsequent retrieval.\n" format: RFC3339 example: '2021-01-12T10:15:20.343-06:00' presentedContentVersion: maxLength: 10 minLength: 1 type: string description: 'The version of the content presented to the user. ' example: '1.0' presenterOrganizationID: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 consentCaptureRegionState: maxLength: 3 minLength: 1 type: string description: 'The region or state where the user''s consent was captured, represented as the subdivision part of ISO 3166-2. ' format: ISO 3166-2 subdivision example: TX resourceProviderOrganizationIDs: type: array description: 'The list of Resource Provider identifiers who are participating in this consent. ' items: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 - properties: constraints: title: Consent Constraints type: object properties: timespan: type: object properties: endDateTime: maxLength: 29 minLength: 20 type: string description: "End datetime.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places.\n+ All datetimes will be converted to GMT (+00:00) for storage and retrieval.\n" format: RFC3339 example: '2022-07-12T16:15:21.672Z' startDateTime: maxLength: 29 minLength: 20 type: string description: "Start datetime.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places.\n+ All datetimes will be converted to GMT (+00:00) for storage and retrieval.\n" format: RFC3339 example: '2022-01-12T16:15:21.672Z' description: 'A timespan constraint applicable for the consent item types captured in the consent. For example, consent for historical transaction data may have a constraint to include only transactions from the last 6 months. That constraint would be captured here. ' maxNumberUses: maximum: 100 minimum: 0 type: integer description: 'The maximum number of uses for the consent item types captured in the consent. ' format: int32 remainingNumberUses: title: Remaining Number of Uses maximum: 100 minimum: 0 type: integer description: 'The remaining number of uses for the consent item types captured in the consent.. ' format: int32 description: 'Additional consent constraints. ' createdDateTime: maxLength: 29 minLength: 20 type: string description: When the consent was created in either an initiated or active state. format: RFC3339 example: '2021-01-12T16:15:21.672Z' updatedDateTime: maxLength: 29 minLength: 20 type: string description: When the consent was last updated. format: RFC3339 example: '2021-01-12T16:15:21.672Z' financialInstruments: type: array description: 'The list of financial instruments applicable for this consent. ' items: title: Masked Financial Instrument type: object properties: instrumentID: maxLength: 36 minLength: 36 type: string description: 'Unique identifier for the instance of financial instrument. ' format: uuid example: f38de9d8-129a-40ea-b149-b8b64a7eda33 accountNumber: maxLength: 50 minLength: 1 type: string description: 'The account number. Account numbers of type PAYMENT_CARD BANK_ACCOUNT and PAYMENT_TOKEN are not retained in the consent system as-is, and will be returned as masked values in subsequent API responses. ' example: 400000******0000 instrumentType: type: string description: 'The type of financial instrument. ' enum: - PAYMENT_CARD - VCARDID - BANK_ACCOUNT - PAYMENT_TOKEN description: 'Financial instrument representation, with masked account number. ' consumerContactInformation: title: Masked Consumer Contact Information type: object properties: phoneNumber: maxLength: 15 minLength: 7 type: string description: 'Phone number, which may include only numerical digits. ' example: '***555' emailAddress: maxLength: 100 minLength: 5 type: string description: 'Email address. ' format: Email Address example: con***@visa.com isPhoneNumberVerified: type: boolean description: 'Indicates whether the phone number has been verified by the caller. ' isEmailAddressVerified: type: boolean description: 'Indicates whether the email address has been verified by the caller. ' description: 'Masked contact information for the end consumer. ' identityVerificationDetails: title: Identity verification details type: object properties: userID: description: "The user identifier used for IDV, if it differs from the root-level userID attribute. \nIdentifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses. \n" allOf: - title: Masked User Identifier maxLength: 320 minLength: 1 type: string description: "The identifier of the user for whom the consent is created. The type of this identifier is defined by the value of the corresponding userIDType attribute. \nUser identifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses.\n" example: con***@visa.com userIDType: title: User Identifier Type type: string description: 'The type of the provided user identifier (userID). ' example: EMAIL_ADDRESS enum: - EMAIL_ADDRESS - PHONE_NUMBER - VCARDID - PAN - CLIENT_DEFINED attestation: maxLength: 2000 minLength: 1 type: string description: 'The attestation contents, format as determined by the attestationType. ' attestationType: type: string description: 'The type of identity verification attestation. ' enum: - ID_TOKEN description: "The Identity verification details represent an attestation of the consumer identity and the details of the authentication performed on the consumer.
\nVisa uses authentication details for various risk purposes. \nThe identity of the consumer is necessary for ensuring proper capture of the consent.
\nIf the attestationType is ID_TOKEN, the attestation is represented by a base64 urlencoded string - a standard JWT format.\n" - required: - consentCaptureCountry - consentCaptureDateTime - consentCaptureRegionState - consentDirectoryID - consentID - createdDateTime - expirationDateTime - frequency - presentedContentVersion - presentedLanguage - presenterOrganizationID - primaryPurposes - privacyPolicyVersion - resourceProviderOrganizationIDs - resourceProviderOrganizationIDs - status - updatedDateTime - userID - userIDType '400': description: "The details part of the error response can provide a list of fields that failed data validation constraints and reason values for this error include:\n \n" headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - required: - status - properties: reason: example: badRequest message: example: Input validation error application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '401': description: 'API authorized error caused due to any of the following reasons: + x-pay-token is not present, blank, or not in a valid format. + Timestamp field not in valid UTC timestamp format. + Version field is invalid. + Token''s timestamp is more than 8 minutes off from the current time. + Token hash mismatch. + APIKey not present in request. + APIKey is not active. + APIKey not valid. + APIKey not active. + Request has more than one authentication token, which is not supported ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Unauthorized message: example: Access to resource is not authorized application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '403': description: "The 403 (Forbidden) HTTP Status code indicates that this Visa Developer Center project does not have permission to access the requested resource.\nThis can happen if you are trying to invoke an API request for a resource that is not part of your project.\n\nCheck for the following:\n + You are using a project and the credential for the project that includes the API being accessed.\n + You created a project and received sandbox credentials for the API’s being called.\n + You added the API being called to the project (if not already present) with the credentials that are being used.\n" headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Forbidden message: example: Forbidden application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '404': description: The specified resource was not found headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - required: - status - properties: reason: example: notFound message: example: Consent not found application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '406': description: 'Not Acceptable - Indicates that the "Accept:" header field is present in a request and none of the available representations for the response have a media type that is listed as acceptable. This can happen when the requested API version is not available or unsupported; for example, when the version requested in the Accept: header is newer than the currently live/supported version. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: NotAcceptable message: example: No acceptable media type application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '410': description: 'Gone - Indicates that the resource at this end point is no longer available. This is usually returned for old API versions that are not available anymore - EOL (End-of-Life). The content-type header in the response indicates the latest supported API version. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Gone message: example: Resource no longer available application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '429': description: 'The Visa Developer Center project has clocked too many requests in a given amount of time. Please contact Visa Support at developer@visa.com if you want to increase the time limits. ' headers: Retry-After: description: 'Header field to suggest an appropriate amount of time for the client to wait before retrying the request, typically after a 503 error or after a batch request when the batch job is not completed. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 ' style: simple explode: false schema: maxLength: 30 minLength: 1 type: string X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: rateLimitExceeded message: example: Rate limit exceeded application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '500': description: 'Internal Server Error. Please contact Visa Support at developer@visa.com with a complete error message, full http request and response details. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: serviceError message: example: Internal server error application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '503': description: 'The Visa system is currently unable to handle the request due to a temporary overloading or maintenance of the server. There may be a Retry-After header field to suggest an appropriate amount of time for the client to wait before retrying the request. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 Please contact Visa Support at developer@visa.com if the issue persists. ' headers: Retry-After: description: 'Header field to suggest an appropriate amount of time for the client to wait before retrying the request, typically after a 503 error or after a batch request when the batch job is not completed. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 ' style: simple explode: false schema: maxLength: 30 minLength: 1 type: string X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: notReady message: example: Service is unavailable application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context x-operationVersions: - label: v1 - Latest operationPointer: '#/paths/~1vcms~1v1~1consents~1{consentID}/get' default: false x-hideTryIt: true patch: tags: - Visa Consent Management API summary: Update Consent description: Update Consent parameters: - name: X-Correlation-Id in: header description: Unique ID for every API request - an optional header. Generated by the API client. Used for end-to-end tracing/debugging. required: false explode: false schema: maxLength: 36 minLength: 1 type: string - name: consentID in: path description: 'Consent identifier. ' required: true explode: false schema: type: string requestBody: description: Consent request body for PATCH Consent. content: application/json: schema: title: Consent update request body for Consent PATCH type: object properties: status: title: Status of consent type: string description: "Valid status values of consent:\n + ACTIVE\n + CONSUMED\n + PAUSED\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Consent Status ValueDescription
ACTIVE\n
    \n
  • The status of the consent is considered active when it can be used to access consent items (data or other resources).
  • \n
  • Only after successful cardholder authentication, a consent is considered in ACTIVE status.
  • \n
\n
CONSUMED\n When the consent's applicability/policy is ONE_TIME and when the consent is used for the applicable use case, the consent is transitioned to this state.\n
PAUSED\n In this state, the consent's purpose (e.g. data sharing, opt-in, etc) may not be fulfilled. If not expired or otherwise invalidated, a consent in this status may be transitioned back to ACTIVE.\n
\n" example: PAUSED enum: - ACTIVE - CONSUMED - PAUSED constraints: title: Consent Constraints type: object properties: remainingNumberUses: title: Remaining Number of Uses maximum: 100 minimum: 0 type: integer description: 'The remaining number of uses for the consent item types captured in the consent.. ' format: int32 description: 'Additional consent constraints. ' secondaryPurposes: maxItems: 10 minItems: 1 type: array description: 'A list of secondary consent purposes. ' items: required: - beneficiaryOrganizationIDs - consentItemTypes - isOptedIn - purposeType type: object properties: isOptedIn: type: boolean description: 'Indicator as to whether the secondary consent was opted in or out by the consumer. A value of true indicates the the consumer opted in to the secondary purpose. ' allOf: - required: - beneficiaryOrganizationIDs - consentItemTypes - purposeType type: object properties: purposeType: title: Purpose of Consent maxLength: 25 minLength: 0 type: string description: 'Represents the consent purpose. The set of possible values is contained in the data dictionary for Purposes (TBD location). ' consentItemTypes: maxItems: 10 minItems: 1 type: array description: 'The consent item types. ' items: title: Consent Item Types. type: string description: 'The classes of resources which the user may consent to sharing with a beneficiary. The set of possible values is contained in the data dictionary for Consent Type Items (TBD location). ' beneficiaryOrganizationIDs: maxItems: 10 minItems: 1 type: array description: 'The beneficiary IDs which are using the resource for the enclosing purpose. ' items: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid financialInstruments: type: array description: 'The list of financial instruments applicable for this consent. ' example: - accountNumber: '4000000000000001' instrumentType: PAYMENT_CARD items: title: Financial Instrument with Identifier type: object description: 'Financial instrument representation, including identifier. ' allOf: - properties: instrumentID: maxLength: 36 minLength: 36 type: string description: 'Visa-generated unique identifier for the instance of financial instrument. ' format: uuid example: f38de9d8-129a-40ea-b149-b8b64a7eda33 - title: Financial Instrument required: - accountNumber - instrumentType type: object properties: accountNumber: maxLength: 42 minLength: 9 type: string description: 'The account number. Account numbers of type PAYMENT_CARD BANK_ACCOUNT and PAYMENT_TOKEN are not retained in the consent system as-is, and will be returned as masked values in subsequent API responses. Validations by instrumentType: + PAYMENT_CARD : 13-16 length , numeric + VCARDID : 42 length, alphanumeric + BANK_ACCOUNT : 9-34 length alphanumeric + PAYMENT_TOKEN : 13-16 length , numeric ' example: '4000000000000000' instrumentType: type: string description: 'The type of financial instrument. ' example: PAYMENT_CARD enum: - PAYMENT_CARD - VCARDID - BANK_ACCOUNT - PAYMENT_TOKEN description: 'Financial instrument representation. ' consumerContactInformation: title: Consumer Contact Information type: object properties: phoneNumber: maxLength: 15 minLength: 7 type: string description: 'Phone number, which may include only numerical digits. ' example: '+15555555555' emailAddress: maxLength: 100 minLength: 5 type: string description: 'Email address. ' format: Email Address example: consumer_second@visa.com isPhoneNumberVerified: type: boolean description: 'Indicates whether the phone number has been verified by the caller. ' example: true isEmailAddressVerified: type: boolean description: 'Indicates whether the email address has been verified by the caller. ' example: true description: 'Contact information for the end consumer. ' identityVerificationDetails: title: Identity verification details required: - attestation - attestationType type: object properties: userID: description: "The user identifier used for IDV, if it differs from the root-level userID attribute. \nIdentifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses.\n" allOf: - title: User Identifier maxLength: 320 minLength: 1 type: string description: "The identifier of the user for whom the consent is created. The type of this identifier is defined by the value of the corresponding userIDType attribute. \nUser identifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses.\n" userIDType: title: User Identifier Type type: string description: 'The type of the provided user identifier (userID). ' enum: - EMAIL_ADDRESS - PHONE_NUMBER - VCARDID - PAN - CLIENT_DEFINED attestation: maxLength: 2000 minLength: 1 type: string description: 'The attestation contents, format as determined by the attestationType. ' attestationType: type: string description: 'The type of identity verification attestation. ' enum: - ID_TOKEN - THREED_SECURE description: "The Identity verification details represent an attestation of the consumer identity and the details of the authentication performed on the consumer.
\nVisa uses authentication details for various risk purposes. \nThe identity of the consumer is necessary for ensuring proper capture of the consent.
\nIf the attestationType is ID_TOKEN, the attestation is represented by a base64 urlencoded string - a standard JWT format.
\nIf the userID used for IDV differs form the root-level userID attribute, the IDV userID should be specified in this userID attribute. If userID is specified, then userIDType must also be specified.\n" example: status: PAUSED constraints: remainingNumberUses: 5 secondaryPurposes: - isOptedIn: true purposeType: PERSONAL_FINANCE_MGMT consentItemTypes: - TRANSACTION_DATA beneficiaryOrganizationIDs: - 332d32d4-df93-4133-bf5e-b269111bf7b3 financialInstruments: - accountNumber: '4000000000000001' instrumentType: PAYMENT_CARD consumerContactInformation: phoneNumber: '+919999999999' emailAddress: consumer_second@visa.com isPhoneNumberVerified: true isEmailAddressVerified: true required: true responses: '200': description: 'Update the consent object corresponding to consentID. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: title: Consent object in response for Transaction Events type: object description: "Consent object returned in the responses.\nA consent represents the end-user permission to access its transaction events or historical data.\nThe limits of a consent are represented by:\n 1. What: Type of the consent - what data or events or payments or actions (payments, etc.) are permitted\n 2. Context:\n a. Time-based retrictions/validity for the Consent.\n b. Beneficiaries and the consent requestor information\n 3. Why: Purpose of the consent\n 4. Terms and Conditions applicable for the Consent\nThe consent is typically unique for a combination of the following, but it not enforced by the API implementation: \n 1. Client ID (Partner VDP Project)\n 2. Region (US as default)\n 3. Cardholder Identity (vCardID/PAN)\n 4. Consent Type (as defined in consentType definition)\n" allOf: - properties: status: title: Status of consent type: string description: "Valid status values of consent:\n + INITIATED\n + ACTIVE\n + REVOKED\n + EXPIRED\n + CONSUMED\n + PAUSED\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Consent Status ValueDescription
INITIATED\n
    \n
  • This is the initial status of a consent when created/saved without successful consumer authentication.
  • \n
  • A consent in this status cannot be used to access consent items (data or other resources).
  • \n
\n
ACTIVE\n
    \n
  • The status of the consent is considered active when it can be used to access consent items (data or other resources).
  • \n
  • Only after successful cardholder authentication, a consent is considered in ACTIVE status.
  • \n
\n
REVOKED\n The consent is transitioned to this state only after it is revoked by the cardholder or by a party on behalf of the cardholder.\n
EXPIRED\n When a consent's expiry date is reached, it is transitioned to this state.\n
CONSUMED\n When the consent's applicability/policy is ONE_TIME and when the consent is used for the applicable use case, the consent is transitioned to this state.\n
PAUSED\n In this state, the consent's purpose (e.g. data sharing, opt-in, etc) may not be fulfilled. If not expired or otherwise invalidated, a consent in this status may be transitioned back to ACTIVE.\n
\n" example: ACTIVE enum: - INITIATED - ACTIVE - REVOKED - EXPIRED - CONSUMED - PAUSED userID: title: Masked User Identifier maxLength: 320 minLength: 1 type: string description: "The identifier of the user for whom the consent is created. The type of this identifier is defined by the value of the corresponding userIDType attribute. \nUser identifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses.\n" example: con***@visa.com consentID: title: Visa-generated identifier for the consent type: string description: 'UUID generated by Visa for every new consent. The API client can create as many consentIDs as they want and are responsible for managing the lifecycle of consents. A consentID is only accessible and visible to the clients that created it, until we implement the on-behalf-of (OBO) model for consent. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 - title: Consent object used for creation type: object properties: frequency: title: Defines the frequency criteria or policy for consent type: string description: "An enum representing the consent frequency.\n * STREAMING:\n * The consent item types in the consent are made available on a streaming basis, whenever a triggering event occurs.\n * PERIODIC:\n * The consent item types in the consent are available on a periodic basis.\n * ON_DEMAND:\n * The consent item types in the consent are available on demand from the Resource Provider.\n * CONTEXT_BASED:\n * The consent item types in the consent are available subject to additional filtering.\n" default: STREAMING enum: - STREAMING - PERIODIC - ON_DEMAND - CONTEXT_BASED userIDType: title: User Identifier Type type: string description: 'The type of the provided user identifier (userID). ' example: EMAIL_ADDRESS enum: - EMAIL_ADDRESS - PHONE_NUMBER - VCARDID - PAN - CLIENT_DEFINED primaryPurposes: maxItems: 10 minItems: 1 type: array description: 'A list of primary consent purposes. ' items: required: - beneficiaryOrganizationIDs - consentItemTypes - purposeType type: object properties: purposeType: title: Purpose of Consent maxLength: 25 minLength: 0 type: string description: 'Represents the consent purpose. The set of possible values is contained in the data dictionary for Purposes (TBD location). ' example: PERSONAL_FINANCE_MGMT consentItemTypes: maxItems: 10 minItems: 1 type: array description: 'The consent item types. ' items: title: Consent Item Types. type: string description: 'The classes of resources which the user may consent to sharing with a beneficiary. The set of possible values is contained in the data dictionary for Consent Type Items (TBD location). ' example: TRANSACTION_DATA beneficiaryOrganizationIDs: maxItems: 10 minItems: 1 type: array description: 'The beneficiary IDs which are using the resource for the enclosing purpose. ' items: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 externalConsentID: maxLength: 50 minLength: 0 type: string description: A client-provided identifier for the consent being created. Uniqueness of this value should be enforced by the client. example: qwertyK presentedLanguage: maxLength: 100 minLength: 2 type: string description: 'The language of the content presented to the user. ' format: BCP-47 example: en-US previousConsentID: description: This attribute may be used to reference a prior consent for which the new consent is a "renewal". This reference must have been created in the context of the same Consent Directory and for the same user. example: '' allOf: - title: Visa-generated identifier for the consent type: string description: 'UUID generated by Visa for every new consent. The API client can create as many consentIDs as they want and are responsible for managing the lifecycle of consents. A consentID is only accessible and visible to the clients that created it, until we implement the on-behalf-of (OBO) model for consent. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 secondaryPurposes: maxItems: 10 minItems: 1 type: array description: 'A list of secondary consent purposes. ' items: required: - beneficiaryOrganizationIDs - consentItemTypes - isOptedIn - purposeType type: object properties: isOptedIn: type: boolean description: 'Indicator as to whether the secondary consent was opted in or out by the consumer. A value of true indicates the the consumer opted in to the secondary purpose. ' allOf: - required: - beneficiaryOrganizationIDs - consentItemTypes - purposeType type: object properties: purposeType: title: Purpose of Consent maxLength: 25 minLength: 0 type: string description: 'Represents the consent purpose. The set of possible values is contained in the data dictionary for Purposes (TBD location). ' example: PERSONAL_FINANCE_MGMT consentItemTypes: maxItems: 10 minItems: 1 type: array description: 'The consent item types. ' items: title: Consent Item Types. type: string description: 'The classes of resources which the user may consent to sharing with a beneficiary. The set of possible values is contained in the data dictionary for Consent Type Items (TBD location). ' example: TRANSACTION_DATA beneficiaryOrganizationIDs: maxItems: 10 minItems: 1 type: array description: 'The beneficiary IDs which are using the resource for the enclosing purpose. ' items: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 consentCaptureCity: maxLength: 80 minLength: 1 type: string description: 'The city where the user''s consent was captured. ' example: Austin consentDirectoryID: title: The Visa-generated identifier for a Consent Directory entry. type: string description: 'This value refers to a previously-configured Consent Directory entry, in whose context a consent may be created. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 expirationDateTime: title: The datetime until when the consent is valid maxLength: 29 minLength: 20 type: string description: "The consent is invalid after this datetime. After expiry, the consent is not renewable. When provided by the client, this value must be greater than the current date.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places. \n+ All datetimes will be converted to GMT (+00:00) for storage and subsequent retrieval.\n" format: RFC3339 example: '2026-02-05T17:31:00Z' privacyPolicyVersion: maxLength: 10 minLength: 1 type: string description: 'The version of the privacy policy presented to the user. ' example: '4.1' consentCaptureCountry: maxLength: 2 minLength: 2 type: string description: 'The country where the user''s consent was captured. ' format: ISO 3166-1 alpha 2 example: US consentCaptureDateTime: maxLength: 29 minLength: 20 type: string description: "The date and time that the consent was captured from the user, in the user's local time zone.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places.\n+ The time zone provided will be maintained and returned on subsequent retrieval.\n" format: RFC3339 example: '2021-01-12T10:15:20.343-06:00' presentedContentVersion: maxLength: 10 minLength: 1 type: string description: 'The version of the content presented to the user. ' example: '1.0' presenterOrganizationID: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 consentCaptureRegionState: maxLength: 3 minLength: 1 type: string description: 'The region or state where the user''s consent was captured, represented as the subdivision part of ISO 3166-2. ' format: ISO 3166-2 subdivision example: TX resourceProviderOrganizationIDs: type: array description: 'The list of Resource Provider identifiers who are participating in this consent. ' items: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 - properties: constraints: title: Consent Constraints type: object properties: timespan: type: object properties: endDateTime: maxLength: 29 minLength: 20 type: string description: "End datetime.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places.\n+ All datetimes will be converted to GMT (+00:00) for storage and retrieval.\n" format: RFC3339 example: '2022-07-12T16:15:21.672Z' startDateTime: maxLength: 29 minLength: 20 type: string description: "Start datetime.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places.\n+ All datetimes will be converted to GMT (+00:00) for storage and retrieval.\n" format: RFC3339 example: '2022-01-12T16:15:21.672Z' description: 'A timespan constraint applicable for the consent item types captured in the consent. For example, consent for historical transaction data may have a constraint to include only transactions from the last 6 months. That constraint would be captured here. ' maxNumberUses: maximum: 100 minimum: 0 type: integer description: 'The maximum number of uses for the consent item types captured in the consent. ' format: int32 remainingNumberUses: title: Remaining Number of Uses maximum: 100 minimum: 0 type: integer description: 'The remaining number of uses for the consent item types captured in the consent.. ' format: int32 description: 'Additional consent constraints. ' createdDateTime: maxLength: 29 minLength: 20 type: string description: When the consent was created in either an initiated or active state. format: RFC3339 example: '2021-01-12T16:15:21.672Z' updatedDateTime: maxLength: 29 minLength: 20 type: string description: When the consent was last updated. format: RFC3339 example: '2021-01-12T16:15:21.672Z' financialInstruments: type: array description: 'The list of financial instruments applicable for this consent. ' items: title: Masked Financial Instrument type: object properties: instrumentID: maxLength: 36 minLength: 36 type: string description: 'Unique identifier for the instance of financial instrument. ' format: uuid example: f38de9d8-129a-40ea-b149-b8b64a7eda33 accountNumber: maxLength: 50 minLength: 1 type: string description: 'The account number. Account numbers of type PAYMENT_CARD BANK_ACCOUNT and PAYMENT_TOKEN are not retained in the consent system as-is, and will be returned as masked values in subsequent API responses. ' example: 400000******0000 instrumentType: type: string description: 'The type of financial instrument. ' enum: - PAYMENT_CARD - VCARDID - BANK_ACCOUNT - PAYMENT_TOKEN description: 'Financial instrument representation, with masked account number. ' consumerContactInformation: title: Masked Consumer Contact Information type: object properties: phoneNumber: maxLength: 15 minLength: 7 type: string description: 'Phone number, which may include only numerical digits. ' example: '***555' emailAddress: maxLength: 100 minLength: 5 type: string description: 'Email address. ' format: Email Address example: con***@visa.com isPhoneNumberVerified: type: boolean description: 'Indicates whether the phone number has been verified by the caller. ' isEmailAddressVerified: type: boolean description: 'Indicates whether the email address has been verified by the caller. ' description: 'Masked contact information for the end consumer. ' identityVerificationDetails: title: Identity verification details type: object properties: userID: description: "The user identifier used for IDV, if it differs from the root-level userID attribute. \nIdentifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses. \n" allOf: - title: Masked User Identifier maxLength: 320 minLength: 1 type: string description: "The identifier of the user for whom the consent is created. The type of this identifier is defined by the value of the corresponding userIDType attribute. \nUser identifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses.\n" example: con***@visa.com userIDType: title: User Identifier Type type: string description: 'The type of the provided user identifier (userID). ' example: EMAIL_ADDRESS enum: - EMAIL_ADDRESS - PHONE_NUMBER - VCARDID - PAN - CLIENT_DEFINED attestation: maxLength: 2000 minLength: 1 type: string description: 'The attestation contents, format as determined by the attestationType. ' attestationType: type: string description: 'The type of identity verification attestation. ' enum: - ID_TOKEN description: "The Identity verification details represent an attestation of the consumer identity and the details of the authentication performed on the consumer.
\nVisa uses authentication details for various risk purposes. \nThe identity of the consumer is necessary for ensuring proper capture of the consent.
\nIf the attestationType is ID_TOKEN, the attestation is represented by a base64 urlencoded string - a standard JWT format.\n" - required: - consentCaptureCountry - consentCaptureDateTime - consentCaptureRegionState - consentID - createdDateTime - expirationDateTime - periodDays - presentedContentVersion - presentedLanguage - presenter - privacyPolicyVersion - purpose - purposes - resourceProviderOrganizationIDs - status - type - vCardID '400': description: "The details part of the error response can provide a list of fields that failed data validation constraints and reason values for this error include:\n \n" headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - required: - status - properties: reason: example: badRequest message: example: Input validation error application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '401': description: 'API authorized error caused due to any of the following reasons: + x-pay-token is not present, blank, or not in a valid format. + Timestamp field not in valid UTC timestamp format. + Version field is invalid. + Token''s timestamp is more than 8 minutes off from the current time. + Token hash mismatch. + APIKey not present in request. + APIKey is not active. + APIKey not valid. + APIKey not active. + Request has more than one authentication token, which is not supported ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Unauthorized message: example: Access to resource is not authorized application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '403': description: "The 403 (Forbidden) HTTP Status code indicates that this Visa Developer Center project does not have permission to access the requested resource.\nThis can happen if you are trying to invoke an API request for a resource that is not part of your project.\n\nCheck for the following:\n + You are using a project and the credential for the project that includes the API being accessed.\n + You created a project and received sandbox credentials for the API’s being called.\n + You added the API being called to the project (if not already present) with the credentials that are being used.\n" headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Forbidden message: example: Forbidden application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '404': description: The specified resource was not found headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - required: - status - properties: reason: example: notFound message: example: Consent not found application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '406': description: 'Not Acceptable - Indicates that the "Accept:" header field is present in a request and none of the available representations for the response have a media type that is listed as acceptable. This can happen when the requested API version is not available or unsupported; for example, when the version requested in the Accept: header is newer than the currently live/supported version. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: NotAcceptable message: example: No acceptable media type application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '409': description: 'The current state of consent is incompatible with the requested mutation. For example, an EXPIRED consent cannot be revoked. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: invalidConsentStateTransition message: example: The current state of consent is incompatible for the requested mutation. For example, an EXPIRED consent cannot be revoked. application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '410': description: 'Gone - Indicates that the resource at this end point is no longer available. This is usually returned for old API versions that are not available anymore - EOL (End-of-Life). The content-type header in the response indicates the latest supported API version. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Gone message: example: Resource no longer available application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '429': description: 'The Visa Developer Center project has clocked too many requests in a given amount of time. Please contact Visa Support at developer@visa.com if you want to increase the time limits. ' headers: Retry-After: description: 'Header field to suggest an appropriate amount of time for the client to wait before retrying the request, typically after a 503 error or after a batch request when the batch job is not completed. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 ' style: simple explode: false schema: maxLength: 30 minLength: 1 type: string X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: rateLimitExceeded message: example: Rate limit exceeded application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '500': description: 'Internal Server Error. Please contact Visa Support at developer@visa.com with a complete error message, full http request and response details. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: serviceError message: example: Internal server error application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '503': description: 'The Visa system is currently unable to handle the request due to a temporary overloading or maintenance of the server. There may be a Retry-After header field to suggest an appropriate amount of time for the client to wait before retrying the request. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 Please contact Visa Support at developer@visa.com if the issue persists. ' headers: Retry-After: description: 'Header field to suggest an appropriate amount of time for the client to wait before retrying the request, typically after a 503 error or after a batch request when the batch job is not completed. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 ' style: simple explode: false schema: maxLength: 30 minLength: 1 type: string X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: notReady message: example: Service is unavailable application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context x-operationVersions: - label: v1 - Latest operationPointer: '#/paths/~1vcms~1v1~1consents~1{consentID}/patch' default: false x-hideTryIt: true /vcms/v1/consents/{consentID}/validate: post: tags: - Visa Consent Management API summary: Validate Consent description: This API is used by Resource Providers to verify that a consent is recorded against the provided user ID. If so, the consent object is returned. parameters: - name: X-Correlation-Id in: header description: Unique ID for every API request - an optional header. Generated by the API client. Used for end-to-end tracing/debugging. required: false explode: false schema: maxLength: 36 minLength: 1 type: string - name: consentID in: path description: 'Consent identifier. ' required: true explode: false schema: type: string requestBody: description: Consent validate request body. content: application/json: schema: title: Request body for consent validate. required: - userID type: object properties: userID: title: User Identifier maxLength: 320 minLength: 1 type: string description: "The identifier of the user for whom the consent is created. The type of this identifier is defined by the value of the corresponding userIDType attribute. \nUser identifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses.\n" example: consumer@visa.com identityVerificationDetails: type: object properties: userID: description: 'The user identifier used for IDV, if it differs from the root-level userID attribute. ' allOf: - title: User Identifier maxLength: 320 minLength: 1 type: string description: "The identifier of the user for whom the consent is created. The type of this identifier is defined by the value of the corresponding userIDType attribute. \nUser identifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses.\n" example: consumer@visa.com example: userID: abcdef identityVerificationDetails: userID: consumer@visa.com required: true responses: '200': description: Consent response. headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: title: Consent object in response for Transaction Events type: object description: "Consent object returned in the responses.\nA consent represents the end-user permission to access its transaction events or historical data.\nThe limits of a consent are represented by:\n 1. What: Type of the consent - what data or events or payments or actions (payments, etc.) are permitted\n 2. Context:\n a. Time-based retrictions/validity for the Consent.\n b. Beneficiaries and the consent requestor information\n 3. Why: Purpose of the consent\n 4. Terms and Conditions applicable for the Consent\nThe consent is typically unique for a combination of the following, but it not enforced by the API implementation: \n 1. Client ID (Partner VDP Project)\n 2. Region (US as default)\n 3. Cardholder Identity (vCardID/PAN)\n 4. Consent Type (as defined in consentType definition)\n" allOf: - properties: status: title: Status of consent type: string description: "Valid status values of consent:\n + INITIATED\n + ACTIVE\n + REVOKED\n + EXPIRED\n + CONSUMED\n + PAUSED\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Consent Status ValueDescription
INITIATED\n
    \n
  • This is the initial status of a consent when created/saved without successful consumer authentication.
  • \n
  • A consent in this status cannot be used to access consent items (data or other resources).
  • \n
\n
ACTIVE\n
    \n
  • The status of the consent is considered active when it can be used to access consent items (data or other resources).
  • \n
  • Only after successful cardholder authentication, a consent is considered in ACTIVE status.
  • \n
\n
REVOKED\n The consent is transitioned to this state only after it is revoked by the cardholder or by a party on behalf of the cardholder.\n
EXPIRED\n When a consent's expiry date is reached, it is transitioned to this state.\n
CONSUMED\n When the consent's applicability/policy is ONE_TIME and when the consent is used for the applicable use case, the consent is transitioned to this state.\n
PAUSED\n In this state, the consent's purpose (e.g. data sharing, opt-in, etc) may not be fulfilled. If not expired or otherwise invalidated, a consent in this status may be transitioned back to ACTIVE.\n
\n" example: ACTIVE enum: - INITIATED - ACTIVE - REVOKED - EXPIRED - CONSUMED - PAUSED userID: title: Masked User Identifier maxLength: 320 minLength: 1 type: string description: "The identifier of the user for whom the consent is created. The type of this identifier is defined by the value of the corresponding userIDType attribute. \nUser identifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses.\n" example: con***@visa.com consentID: title: Visa-generated identifier for the consent type: string description: 'UUID generated by Visa for every new consent. The API client can create as many consentIDs as they want and are responsible for managing the lifecycle of consents. A consentID is only accessible and visible to the clients that created it, until we implement the on-behalf-of (OBO) model for consent. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 - title: Consent object used for creation type: object properties: frequency: title: Defines the frequency criteria or policy for consent type: string description: "An enum representing the consent frequency.\n * STREAMING:\n * The consent item types in the consent are made available on a streaming basis, whenever a triggering event occurs.\n * PERIODIC:\n * The consent item types in the consent are available on a periodic basis.\n * ON_DEMAND:\n * The consent item types in the consent are available on demand from the Resource Provider.\n * CONTEXT_BASED:\n * The consent item types in the consent are available subject to additional filtering.\n" default: STREAMING enum: - STREAMING - PERIODIC - ON_DEMAND - CONTEXT_BASED userIDType: title: User Identifier Type type: string description: 'The type of the provided user identifier (userID). ' example: EMAIL_ADDRESS enum: - EMAIL_ADDRESS - PHONE_NUMBER - VCARDID - PAN - CLIENT_DEFINED primaryPurposes: maxItems: 10 minItems: 1 type: array description: 'A list of primary consent purposes. ' items: required: - beneficiaryOrganizationIDs - consentItemTypes - purposeType type: object properties: purposeType: title: Purpose of Consent maxLength: 25 minLength: 0 type: string description: 'Represents the consent purpose. The set of possible values is contained in the data dictionary for Purposes (TBD location). ' example: PERSONAL_FINANCE_MGMT consentItemTypes: maxItems: 10 minItems: 1 type: array description: 'The consent item types. ' items: title: Consent Item Types. type: string description: 'The classes of resources which the user may consent to sharing with a beneficiary. The set of possible values is contained in the data dictionary for Consent Type Items (TBD location). ' example: TRANSACTION_DATA beneficiaryOrganizationIDs: maxItems: 10 minItems: 1 type: array description: 'The beneficiary IDs which are using the resource for the enclosing purpose. ' items: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 externalConsentID: maxLength: 50 minLength: 0 type: string description: A client-provided identifier for the consent being created. Uniqueness of this value should be enforced by the client. example: qwertyK presentedLanguage: maxLength: 100 minLength: 2 type: string description: 'The language of the content presented to the user. ' format: BCP-47 example: en-US previousConsentID: description: This attribute may be used to reference a prior consent for which the new consent is a "renewal". This reference must have been created in the context of the same Consent Directory and for the same user. example: '' allOf: - title: Visa-generated identifier for the consent type: string description: 'UUID generated by Visa for every new consent. The API client can create as many consentIDs as they want and are responsible for managing the lifecycle of consents. A consentID is only accessible and visible to the clients that created it, until we implement the on-behalf-of (OBO) model for consent. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 secondaryPurposes: maxItems: 10 minItems: 1 type: array description: 'A list of secondary consent purposes. ' items: required: - beneficiaryOrganizationIDs - consentItemTypes - isOptedIn - purposeType type: object properties: isOptedIn: type: boolean description: 'Indicator as to whether the secondary consent was opted in or out by the consumer. A value of true indicates the the consumer opted in to the secondary purpose. ' allOf: - required: - beneficiaryOrganizationIDs - consentItemTypes - purposeType type: object properties: purposeType: title: Purpose of Consent maxLength: 25 minLength: 0 type: string description: 'Represents the consent purpose. The set of possible values is contained in the data dictionary for Purposes (TBD location). ' example: PERSONAL_FINANCE_MGMT consentItemTypes: maxItems: 10 minItems: 1 type: array description: 'The consent item types. ' items: title: Consent Item Types. type: string description: 'The classes of resources which the user may consent to sharing with a beneficiary. The set of possible values is contained in the data dictionary for Consent Type Items (TBD location). ' example: TRANSACTION_DATA beneficiaryOrganizationIDs: maxItems: 10 minItems: 1 type: array description: 'The beneficiary IDs which are using the resource for the enclosing purpose. ' items: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 consentCaptureCity: maxLength: 80 minLength: 1 type: string description: 'The city where the user''s consent was captured. ' example: Austin consentDirectoryID: title: The Visa-generated identifier for a Consent Directory entry. type: string description: 'This value refers to a previously-configured Consent Directory entry, in whose context a consent may be created. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 expirationDateTime: title: The datetime until when the consent is valid maxLength: 29 minLength: 20 type: string description: "The consent is invalid after this datetime. After expiry, the consent is not renewable. When provided by the client, this value must be greater than the current date.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places. \n+ All datetimes will be converted to GMT (+00:00) for storage and subsequent retrieval.\n" format: RFC3339 example: '2026-02-05T17:31:00Z' privacyPolicyVersion: maxLength: 10 minLength: 1 type: string description: 'The version of the privacy policy presented to the user. ' example: '4.1' consentCaptureCountry: maxLength: 2 minLength: 2 type: string description: 'The country where the user''s consent was captured. ' format: ISO 3166-1 alpha 2 example: US consentCaptureDateTime: maxLength: 29 minLength: 20 type: string description: "The date and time that the consent was captured from the user, in the user's local time zone.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places.\n+ The time zone provided will be maintained and returned on subsequent retrieval.\n" format: RFC3339 example: '2021-01-12T10:15:20.343-06:00' presentedContentVersion: maxLength: 10 minLength: 1 type: string description: 'The version of the content presented to the user. ' example: '1.0' presenterOrganizationID: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 consentCaptureRegionState: maxLength: 3 minLength: 1 type: string description: 'The region or state where the user''s consent was captured, represented as the subdivision part of ISO 3166-2. ' format: ISO 3166-2 subdivision example: TX resourceProviderOrganizationIDs: type: array description: 'The list of Resource Provider identifiers who are participating in this consent. ' items: title: Visa-generated identifier for an organization. type: string description: 'This attribute identifies a previously-onboarded organization. ' format: uuid example: 123e4567-e89b-12d3-a456-426614174000 - properties: constraints: title: Consent Constraints type: object properties: timespan: type: object properties: endDateTime: maxLength: 29 minLength: 20 type: string description: "End datetime.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places.\n+ All datetimes will be converted to GMT (+00:00) for storage and retrieval.\n" format: RFC3339 example: '2022-07-12T16:15:21.672Z' startDateTime: maxLength: 29 minLength: 20 type: string description: "Start datetime.\nFormat is based on RFC 3339, with the following stipulations: \n+ ‘T’ is used as separator between date and time.\n+ Only fractional seconds are optional - all other parts of the datetime are required.\n+ Fractional seconds may contain up to 3 decimal places.\n+ All datetimes will be converted to GMT (+00:00) for storage and retrieval.\n" format: RFC3339 example: '2022-01-12T16:15:21.672Z' description: 'A timespan constraint applicable for the consent item types captured in the consent. For example, consent for historical transaction data may have a constraint to include only transactions from the last 6 months. That constraint would be captured here. ' maxNumberUses: maximum: 100 minimum: 0 type: integer description: 'The maximum number of uses for the consent item types captured in the consent. ' format: int32 remainingNumberUses: title: Remaining Number of Uses maximum: 100 minimum: 0 type: integer description: 'The remaining number of uses for the consent item types captured in the consent.. ' format: int32 description: 'Additional consent constraints. ' createdDateTime: maxLength: 29 minLength: 20 type: string description: When the consent was created in either an initiated or active state. format: RFC3339 example: '2021-01-12T16:15:21.672Z' updatedDateTime: maxLength: 29 minLength: 20 type: string description: When the consent was last updated. format: RFC3339 example: '2021-01-12T16:15:21.672Z' financialInstruments: type: array description: 'The list of financial instruments applicable for this consent. ' items: title: Masked Financial Instrument type: object properties: instrumentID: maxLength: 36 minLength: 36 type: string description: 'Unique identifier for the instance of financial instrument. ' format: uuid example: f38de9d8-129a-40ea-b149-b8b64a7eda33 accountNumber: maxLength: 50 minLength: 1 type: string description: 'The account number. Account numbers of type PAYMENT_CARD BANK_ACCOUNT and PAYMENT_TOKEN are not retained in the consent system as-is, and will be returned as masked values in subsequent API responses. ' example: 400000******0000 instrumentType: type: string description: 'The type of financial instrument. ' enum: - PAYMENT_CARD - VCARDID - BANK_ACCOUNT - PAYMENT_TOKEN description: 'Financial instrument representation, with masked account number. ' consumerContactInformation: title: Masked Consumer Contact Information type: object properties: phoneNumber: maxLength: 15 minLength: 7 type: string description: 'Phone number, which may include only numerical digits. ' example: '***555' emailAddress: maxLength: 100 minLength: 5 type: string description: 'Email address. ' format: Email Address example: con***@visa.com isPhoneNumberVerified: type: boolean description: 'Indicates whether the phone number has been verified by the caller. ' isEmailAddressVerified: type: boolean description: 'Indicates whether the email address has been verified by the caller. ' description: 'Masked contact information for the end consumer. ' identityVerificationDetails: title: Identity verification details type: object properties: userID: description: "The user identifier used for IDV, if it differs from the root-level userID attribute. \nIdentifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses. \n" allOf: - title: Masked User Identifier maxLength: 320 minLength: 1 type: string description: "The identifier of the user for whom the consent is created. The type of this identifier is defined by the value of the corresponding userIDType attribute. \nUser identifiers of type EMAIL_ADDRESS PHONE_NUMBER PAN and CLIENT_DEFINED are not retained as-is in the consent system, and will be returned as masked values in subsequent API responses.\n" example: con***@visa.com userIDType: title: User Identifier Type type: string description: 'The type of the provided user identifier (userID). ' example: EMAIL_ADDRESS enum: - EMAIL_ADDRESS - PHONE_NUMBER - VCARDID - PAN - CLIENT_DEFINED attestation: maxLength: 2000 minLength: 1 type: string description: 'The attestation contents, format as determined by the attestationType. ' attestationType: type: string description: 'The type of identity verification attestation. ' enum: - ID_TOKEN description: "The Identity verification details represent an attestation of the consumer identity and the details of the authentication performed on the consumer.
\nVisa uses authentication details for various risk purposes. \nThe identity of the consumer is necessary for ensuring proper capture of the consent.
\nIf the attestationType is ID_TOKEN, the attestation is represented by a base64 urlencoded string - a standard JWT format.\n" - required: - consentCaptureCountry - consentCaptureDateTime - consentCaptureRegionState - consentDirectoryID - consentID - createdDateTime - expirationDateTime - frequency - presentedContentVersion - presentedLanguage - presenterOrganizationID - primaryPurposes - privacyPolicyVersion - resourceProviderOrganizationIDs - resourceProviderOrganizationIDs - status - updatedDateTime - userID - userIDType '400': description: "The details part of the error response can provide a list of fields that failed data validation constraints and reason values for this error include:\n \n" headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - required: - status - properties: reason: example: badRequest message: example: Input validation error application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '401': description: 'API authorized error caused due to any of the following reasons: + x-pay-token is not present, blank, or not in a valid format. + Timestamp field not in valid UTC timestamp format. + Version field is invalid. + Token''s timestamp is more than 8 minutes off from the current time. + Token hash mismatch. + APIKey not present in request. + APIKey is not active. + APIKey not valid. + APIKey not active. + Request has more than one authentication token, which is not supported ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Unauthorized message: example: Access to resource is not authorized application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '403': description: "The 403 (Forbidden) HTTP Status code indicates that this Visa Developer Center project does not have permission to access the requested resource.\nThis can happen if you are trying to invoke an API request for a resource that is not part of your project.\n\nCheck for the following:\n + You are using a project and the credential for the project that includes the API being accessed.\n + You created a project and received sandbox credentials for the API’s being called.\n + You added the API being called to the project (if not already present) with the credentials that are being used.\n" headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Forbidden message: example: Forbidden application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '404': description: The specified resource was not found headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - required: - status - properties: reason: example: notFound message: example: Consent not found application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '406': description: 'Not Acceptable - Indicates that the "Accept:" header field is present in a request and none of the available representations for the response have a media type that is listed as acceptable. This can happen when the requested API version is not available or unsupported; for example, when the version requested in the Accept: header is newer than the currently live/supported version. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: NotAcceptable message: example: No acceptable media type application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '410': description: 'Gone - Indicates that the resource at this end point is no longer available. This is usually returned for old API versions that are not available anymore - EOL (End-of-Life). The content-type header in the response indicates the latest supported API version. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Gone message: example: Resource no longer available application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '422': description: 'The server understands the content type of the request entity, and the syntax of the request entity is correct but was unable to process the contained instructions. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: unprocessableEntity message: example: Unprocessable Entity application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '429': description: 'The Visa Developer Center project has clocked too many requests in a given amount of time. Please contact Visa Support at developer@visa.com if you want to increase the time limits. ' headers: Retry-After: description: 'Header field to suggest an appropriate amount of time for the client to wait before retrying the request, typically after a 503 error or after a batch request when the batch job is not completed. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 ' style: simple explode: false schema: maxLength: 30 minLength: 1 type: string X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: rateLimitExceeded message: example: Rate limit exceeded application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '500': description: 'Internal Server Error. Please contact Visa Support at developer@visa.com with a complete error message, full http request and response details. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: serviceError message: example: Internal server error application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '503': description: 'The Visa system is currently unable to handle the request due to a temporary overloading or maintenance of the server. There may be a Retry-After header field to suggest an appropriate amount of time for the client to wait before retrying the request. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 Please contact Visa Support at developer@visa.com if the issue persists. ' headers: Retry-After: description: 'Header field to suggest an appropriate amount of time for the client to wait before retrying the request, typically after a 503 error or after a batch request when the batch job is not completed. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 ' style: simple explode: false schema: maxLength: 30 minLength: 1 type: string X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: notReady message: example: Service is unavailable application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context x-operationVersions: - label: v1 - Latest operationPointer: '#/paths/~1vcms~1v1~1consents~1{consentID}~1validate/post' default: false x-hideTryIt: true /vcms/v1/consents/{consentID}/status: put: tags: - Visa Consent Management API summary: Update Consent Status description: "API for Visa partners (Consent Requestors) to update consent status.\nNotes:\nStatus may be set in accordance with the following state transitions, with invalid transitions resulting in a 409 error with invalidConsentStateTransition reason.\n + ACTIVE -> PAUSED\n + PAUSED -> ACTIVE\n + ACTIVE -> CONSUMED" parameters: - name: X-Correlation-Id in: header description: Unique ID for every API request - an optional header. Generated by the API client. Used for end-to-end tracing/debugging. required: false explode: false schema: maxLength: 36 minLength: 1 type: string - name: consentID in: path description: 'Consent identifier. ' required: true explode: false schema: type: string requestBody: description: Consent request body for PUT Consent Status. content: application/json: schema: title: Consent update request body for Consent Status PUT required: - status type: object properties: status: title: Status of consent type: string description: "Valid status values of consent:\n + ACTIVE\n + CONSUMED\n + PAUSED\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Consent Status ValueDescription
ACTIVE\n
    \n
  • The status of the consent is considered active when it can be used to access consent items (data or other resources).
  • \n
  • Only after successful cardholder authentication, a consent is considered in ACTIVE status.
  • \n
\n
CONSUMED\n When the consent's applicability/policy is ONE_TIME and when the consent is used for the applicable use case, the consent is transitioned to this state.\n
PAUSED\n In this state, the consent's purpose (e.g. data sharing, opt-in, etc) may not be fulfilled. If not expired or otherwise invalidated, a consent in this status may be transitioned back to ACTIVE.\n
\n" example: ACTIVE enum: - ACTIVE - CONSUMED - PAUSED required: true responses: '200': description: 'Consent status updated successfully ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: properties: status: title: Status of consent type: string description: "Valid status values of consent:\n + ACTIVE\n + CONSUMED\n + PAUSED\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Consent Status ValueDescription
ACTIVE\n
    \n
  • The status of the consent is considered active when it can be used to access consent items (data or other resources).
  • \n
  • Only after successful cardholder authentication, a consent is considered in ACTIVE status.
  • \n
\n
CONSUMED\n When the consent's applicability/policy is ONE_TIME and when the consent is used for the applicable use case, the consent is transitioned to this state.\n
PAUSED\n In this state, the consent's purpose (e.g. data sharing, opt-in, etc) may not be fulfilled. If not expired or otherwise invalidated, a consent in this status may be transitioned back to ACTIVE.\n
\n" example: ACTIVE enum: - ACTIVE - CONSUMED - PAUSED '400': description: "The details part of the error response can provide a list of fields that failed data validation constraints and reason values for this error include:\n \n" headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - required: - status - properties: reason: example: badRequest message: example: Input validation error application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '401': description: 'API authorized error caused due to any of the following reasons: + x-pay-token is not present, blank, or not in a valid format. + Timestamp field not in valid UTC timestamp format. + Version field is invalid. + Token''s timestamp is more than 8 minutes off from the current time. + Token hash mismatch. + APIKey not present in request. + APIKey is not active. + APIKey not valid. + APIKey not active. + Request has more than one authentication token, which is not supported ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Unauthorized message: example: Access to resource is not authorized application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '403': description: "The 403 (Forbidden) HTTP Status code indicates that this Visa Developer Center project does not have permission to access the requested resource.\nThis can happen if you are trying to invoke an API request for a resource that is not part of your project.\n\nCheck for the following:\n + You are using a project and the credential for the project that includes the API being accessed.\n + You created a project and received sandbox credentials for the API’s being called.\n + You added the API being called to the project (if not already present) with the credentials that are being used.\n" headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Forbidden message: example: Forbidden application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '404': description: The specified resource was not found headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - required: - status - properties: reason: example: notFound message: example: Consent not found application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '406': description: 'Not Acceptable - Indicates that the "Accept:" header field is present in a request and none of the available representations for the response have a media type that is listed as acceptable. This can happen when the requested API version is not available or unsupported; for example, when the version requested in the Accept: header is newer than the currently live/supported version. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: NotAcceptable message: example: No acceptable media type application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '409': description: 'The current state of consent is incompatible with the requested mutation. For example, an EXPIRED consent cannot be revoked. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: invalidConsentStateTransition message: example: The current state of consent is incompatible for the requested mutation. For example, an EXPIRED consent cannot be revoked. application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '410': description: 'Gone - Indicates that the resource at this end point is no longer available. This is usually returned for old API versions that are not available anymore - EOL (End-of-Life). The content-type header in the response indicates the latest supported API version. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: Gone message: example: Resource no longer available application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '429': description: 'The Visa Developer Center project has clocked too many requests in a given amount of time. Please contact Visa Support at developer@visa.com if you want to increase the time limits. ' headers: Retry-After: description: 'Header field to suggest an appropriate amount of time for the client to wait before retrying the request, typically after a 503 error or after a batch request when the batch job is not completed. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 ' style: simple explode: false schema: maxLength: 30 minLength: 1 type: string X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: rateLimitExceeded message: example: Rate limit exceeded application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '500': description: 'Internal Server Error. Please contact Visa Support at developer@visa.com with a complete error message, full http request and response details. ' headers: X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: serviceError message: example: Internal server error application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context '503': description: 'The Visa system is currently unable to handle the request due to a temporary overloading or maintenance of the server. There may be a Retry-After header field to suggest an appropriate amount of time for the client to wait before retrying the request. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 Please contact Visa Support at developer@visa.com if the issue persists. ' headers: Retry-After: description: 'Header field to suggest an appropriate amount of time for the client to wait before retrying the request, typically after a 503 error or after a batch request when the batch job is not completed. The value of this field can be either an HTTP-date or a number of seconds to delay after the response is received. Retry-After = HTTP-date || delay-seconds examples: + Retry-After: Thu, 31 Dec 2020 23:59:59 GMT + Retry-After: 120 ' style: simple explode: false schema: maxLength: 30 minLength: 1 type: string X-Correlation-Id: description: Unique ID for the API response; X-Correlation-Id is echoed back. Used for end-to-end tracing/debugging. style: simple explode: false schema: maxLength: 36 minLength: 1 type: string content: application/json: schema: allOf: - title: Standard Error Response Structure description: API errors are reported using a Standard Error Response structure. All errors are categorized into Standard errors and Business errors. Standard errors can be returned by any API and should be handled in a common way. Business errors are returned only by some APIs and are documented for each API. allOf: - required: - reason type: object properties: reason: maxLength: 100 minLength: 1 type: string description: API developers must use this field to drive their error handling logic example: badRequest details: type: array description: Array of fields - Data validation errors should use this array to specify fields that failed validation using the location field items: required: - location type: object properties: reason: maxLength: 100 type: string description: The specific reason for this error example: Must be a non-empty single word value message: maxLength: 1024 type: string description: The specific error for this field example: Must be a non-empty value location: type: string description: 'The value of this field is using an expression to point to a field that failed validation. This field is required if error details are specified. ' example: purpose message: maxLength: 1024 minLength: 1 type: string description: Every error should have a human readable message describing the error. The message can very even for the same reason, thus providing additional details. API providers are free to change the message at any point of time. API clients should not use the message field to drive their business logic or to expose it directly to the consumers via UI or other means. example: Input parameters validation failed description: 'Standard error response body provided when there is an error. ' - properties: reason: example: notReady message: example: Service is unavailable application/problem+json: schema: allOf: - type: object properties: type: maxLength: 100 minLength: 0 type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /some/uri-reference default: about:blank title: maxLength: 100 minLength: 0 type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some title for the error situation detail: maxLength: 100 minLength: 0 type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: some description for the error situation status: maximum: 600 exclusiveMaximum: true minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 instance: maxLength: 100 minLength: 0 type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /some/uri-reference#specific-occurrence-context x-operationVersions: - label: v1 - Latest operationPointer: '#/paths/~1vcms~1v1~1consents~1{consentID}~1status/put' default: false x-hideTryIt: true x-tagGroups: - name: API Reference tags: - Foreign Exchange Rates API