# Visa Intelligent Data Exchange API
Enable third-party data providers to share enhanced card-not-present transaction data with issuers.

## Version: 1

### Servers

| URL | Description |
| --- | ----------- |
| https://sandbox.api.visa.com | Sandbox server |

---
## Visa Intelligent Data Exchange API
The Visa Intelligent Data Exchange (Visa IDX) API enables third-party providers, on behalf of their merchant clients, to provide Visa with enhanced data for card-not-present (CNP) transactions prior to authorization using a channel outside of EMV 3-D Secure (3DS). Visa will share select enhanced data with issuers in the authorization request message via the Visa IDX mechanism for issuers to use in their authorization decisioning, helping improve CNP transaction approval rates and increase fraud detection. Visa IDX is a supplemental data delivery mechanism designed to help enrich Visa issuers’ risk management for CNP transactions by sending insights from outside of the authorization flow to issuers and endpoints within the Visa network.

### [POST] /vidx/v1/requests
**Visa IDX API Request**

Initiate an Visa IDX API request to send supplemental data that will be used during authorization.

#### Parameters

| Name | Located in | Description | Required | Schema | Explode |
| ---- | ---------- | ----------- | -------- | ------ | ------- |
| Content-Type | header | Request content type | Yes | string | No |

#### Request Body

| Required | Schema |
| -------- | ------ |
|  Yes | **application/json**: { **"mcc"**: string, **"email"**: string (Shall meet requirements of Section 3.4 of IETF RFC 5322 or empty value.), **"acctID"**: string, **"loginId"**: string, **"transID"**: string (uuid), **"acctType"**: string, <br>**Available values:** "01", "02", "03", "", **"deviceIP"**: string (IPv4 address (refer to RFC 791) or IPv6 address (Refer to RFC 4291) or empty value), **"deviceId"**: string, **"browserIP"**: string (IPv4 address (refer to RFC 791) or IPv6 address (Refer to RFC 4291) or empty value), **"browserTZ"**: string, **"homePhone"**: object (cc: 1–3 characters. subscriber: variable, maximum 15 characters. Refer to ITU-E.164 for additional information on format and length.), **"issuerBIN"**: string, **"transType"**: string, <br>**Available values:** "01", "10", **"workPhone"**: object (cc: 1–3 characters. subscriber: variable, maximum 15 characters. Refer to ITU-E.164 for additional information on format and length.), **"acctNumber"**: string (Format represented ISO 7812.), **"merchantID"**: string, **"acquirerBIN"**: string, **"geoLocation"**: object (latitude: string, maximum 10 characters. longitude: string, maximum 10 characters.), **"mobilePhone"**: object (cc: 1–3 characters. subscriber: variable, maximum 15 characters. Refer to ITU-E.164 for additional information on format and length.), **"payTokenInd"**: boolean (true or false), **"productType"**: string, <br>**Available values:** "01", "02", "", **"reasonCodes"**: [ string ], **"billAddrCity"**: string, **"merchantName"**: string (Same name used in the authorisation message as defined in ISO 8583-1), **"purchaseDate"**: string (YYYYMMDDHHMMSS), **"shipAddrCity"**: string, **"billAddrLine1"**: string, **"billAddrLine2"**: string, **"billAddrLine3"**: string, **"billAddrState"**: string (Country subdivision code defined in ISO 3166-2 or empty value), **"deviceChannel"**: string, <br>**Available values:** "01", "02", "", **"shipAddrLine1"**: string, **"shipAddrLine2"**: string, **"shipAddrLine3"**: string, **"shipAddrState"**: string (Country subdivision code defined in ISO 3166-2 or empty value), **"shipIndicator"**: string, <br>**Available values:** "01", "02", "03", "04", "05", "06", "07", "08", "09", "", **"cardExpiryDate"**: string (YYMM or empty value), **"cardholderName"**: string, **"lastFourDigits"**: string, **"purchaseAmount"**: string (Must be between 1 and 48 numeric numbers), **"acceptLanguages"**: [ string ], **"billAddrCountry"**: string (ISO 3166-1 numeric three-digit country code or empty value), **"browserLanguage"**: string, **"messageCategory"**: string, <br>**Available values:** "01", "02", "", **"shipAddrCountry"**: string (ISO 3166-1 numeric three-digit country code or empty value), **"billAddrPostCode"**: string, **"browserUserAgent"**: string, **"cardSecurityCode"**: string, **"purchaseCurrency"**: string (ISO 4217 three-digit currency code), **"purchaseExponent"**: string (ISO 4217 currency exponent), **"shipAddrPostCode"**: string, **"browserColorDepth"**: string (numeric value between 1-99 or empty value.), **"requestDCAPStatus"**: boolean, **"browserJavaEnabled"**: boolean (true or false), **"browserScreenWidth"**: string, **"purchaseInstalData"**: string (numeric value shall be greater than 1 or empty value), **"vdiClientRequestId"**: string, **"acquirerCountryCode"**: string (ISO 3166-1 numeric three-digit country code or empty value), **"browserAcceptHeader"**: string, **"browserScreenHeight"**: string, **"merchantCountryCode"**: string (ISO 3166-1 numeric three-digit country code or empty value), **"purchaseOrderNumber"**: string, **"browserJavascriptEnabled"**: boolean (true or false), **"thirdPartyRiskAssessment"**: string (numeric value between 1-99999 without leading 0's.), **"thirdPartyRiskAssessmentType"**: string, <br>**Available values:** "01", "02" }<br> |

#### Responses

| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Successful Visa IDX API response.  Warning messages may be included when certain validity, data quality, and other error or warning conditions are met and allow clients to self-correct.  | **application/json**: { **"transID"**: string (uuid), **"idxMatchKey"**: string, **"dcapIndicator"**: integer, <br>**Available values:** 1, 2, **"warningMessages"**: string }<br> |
| 400 | The API server could not understand the request;  | **application/problem+json**: { **"reason"**: string, **"status"**: integer, **"details"**: [ { **"reason"**: string, **"message"**: string, **"location"**: string } ], **"message"**: string } & { **"reason"**: string, **"status"**: integer, **"message"**: string }<br> |
| 401 | 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  | **application/problem+json**: { **"reason"**: string, **"status"**: integer, **"details"**: [ { **"reason"**: string, **"message"**: string, **"location"**: string } ], **"message"**: string } & { **"reason"**: string, **"status"**: integer }<br> |
| 403 | The 403 (Forbidden) HTTP Status code indicates that this Visa Developer Center project does not have permission to access the requested resource. This can happen if you are trying to invoke an API request for a resource that is not part of your project.  Check for the following:   + You are using a project and the credential for the project that includes the API being accessed.   + You created a project and received sandbox credentials for the API’s being called.   + You added the API being called to the project (if not already present) with the credentials that are being used.  | **application/problem+json**: { **"reason"**: string, **"status"**: integer, **"details"**: [ { **"reason"**: string, **"message"**: string, **"location"**: string } ], **"message"**: string } & { **"reason"**: string, **"status"**: integer }<br> |
| 406 | 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.  | **application/problem+json**: { **"reason"**: string, **"status"**: integer, **"details"**: [ { **"reason"**: string, **"message"**: string, **"location"**: string } ], **"message"**: string } & { **"reason"**: string, **"status"**: integer }<br> |
| 410 | 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.  | **application/problem+json**: { **"reason"**: string, **"status"**: integer, **"details"**: [ { **"reason"**: string, **"message"**: string, **"location"**: string } ], **"message"**: string } & { **"reason"**: string, **"status"**: integer }<br> |
| 429 | 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. <br>**Headers:**<br>**Retry-After**: The number of seconds to wait before retrying the request.<br> | **application/problem+json**: { **"reason"**: string, **"status"**: integer, **"details"**: [ { **"reason"**: string, **"message"**: string, **"location"**: string } ], **"message"**: string } & { **"reason"**: string, **"status"**: integer }<br> |
| 500 | Internal Server Error.  Please contact Visa Support at developer@visa.com with a complete error message, full http request and response details.  | **application/problem+json**: { **"reason"**: string, **"status"**: integer, **"details"**: [ { **"reason"**: string, **"message"**: string, **"location"**: string } ], **"message"**: string } & { **"reason"**: string, **"status"**: integer }<br> |
| 503 | 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. <code>Retry-After = HTTP-date \|\| delay-seconds</code> examples: + <code>Retry-After: Thu, 31 Dec 2020 23:59:59 GMT</code> + <code>Retry-After: 120</code>  Please contact Visa Support at developer@visa.com if the issue persists.  | **application/problem+json**: { **"reason"**: string, **"status"**: integer, **"details"**: [ { **"reason"**: string, **"message"**: string, **"location"**: string } ], **"message"**: string } & { **"reason"**: string, **"status"**: integer }<br> |

---
### Schemas

#### VidxErrorResponse Schema

Standard error response body provided when there is an error.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| reason | string | API developers must use this field to drive their error handling logic<br>*Example:* `"badRequest"` | Yes |
| status | integer | 3-digit HTTP Status Code<br>*Example:* `400` | No |
| details | [ { **"reason"**: string, **"message"**: string, **"location"**: string } ] | Array of fields - Data validation errors should use this array to specify  fields that failed validation using the location field | No |
| message | string | 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.<br>*Example:* `"Input parameters validation failed"` | No |

#### VidxResponse Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| transID | string (uuid) | transID in the request echoed back for tracking.<br>*Example:* `"ee8439b0-67fe-4f22-92ea-575902dd3019"` | No |
| idxMatchKey | string | The key is used to match transaction data sent via Visa IDX API with the corresponding authorization request. The value of this attribute should be populated in field 126.9 of the authorization message. <br>*Example:* `"IQYgAxdYYgAAAGqyhAJocAAAAAA="` | No |
| dcapIndicator | integer, <br>**Available values:** 1, 2 | Returns Digital Commerce Authentication Program (DCAP) eligibility status. * 1. Not DCAP eligible. * 2. DCAP eligible. <br>*Enum:* `1`, `2`<br>*Example:* `1` | No |
| warningMessages | string | Warning messages may appear: * If any fields fail validation due to, for example, format violations. * If a client is not enrolled to share risk assessment data: "Card issuer country is not configured for this client ID." * If an issuer is not enrolled to receive transaction and/or risk assessment data: "Issuer not enrolled." * If the Acquirer BIN provided is not active: "Acquirer BIN is deactivated." * If the Acquirer BIN provided is invalid or not found: "Acquirer BIN is invalid." * If DCAP eligibility checks fail for the acquirer region: "DCAP Fail for acquirer region {Region Name} ({Region Code}). Field missing: [{Field Name}]"   * Example: "DCAP Fail for acquirer region U.S.A (01). Field missing: [Billing Address]" * If DCAP eligibility checks fail for the issuer: "Issuer DCAP eligibility check failed." * If the transaction type is invalid: "Transaction type is invalid." <br>*Example:* `"[\"DCAP Fail for acquirer region U.S.A (01). Field missing: [Billing Address]\"]"` | No |

#### VidxRequest Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| mcc | string | Code describing the Merchant’s type of business, product or service. The value can be empty.<br>*Example:* `"5411"` | No |
| email | string (Shall meet requirements of Section 3.4 of IETF RFC 5322 or empty value.) | The email address associated with the transaction. The value can be empty.<br>*Example:* `"example@example.com"` | No |
| acctID | string | Cardholder Account Identifier.<br>*Example:* `"account-1234567890"` | No |
| loginId | string | The login identifier associated with the cardholder account at the time of the transaction. The value can be empty.<br>*Example:* `"user@example.com"` | No |
| transID | string (uuid) | Unique transaction Id to track the request.<br>*Example:* `"ee8439b0-67fe-4f22-92ea-575902dd3019"` | Yes |
| acctType | string, <br>**Available values:** "01", "02", "03", "" | Indicates the type of account. For example, credit or debit. Values: - '01' # Not applicable - '02' # Credit - '03' # Debit - ''   # Empty value <br>*Enum:* `"01"`, `"02"`, `"03"`, `""` | No |
| deviceIP | string (IPv4 address (refer to RFC 791) or IPv6 address (Refer to RFC 4291) or empty value) | IP address the device is connecting from. Either this or browserIP shall be provided. The value can be empty.<br>*Example:* `"2001:0db8:85a3:0000:0000:8a2e:0370:7334"` | No |
| deviceId | string | Unique and immutable identifier linked to a device.<br>*Example:* `"Device-1234567890"` | No |
| browserIP | string (IPv4 address (refer to RFC 791) or IPv6 address (Refer to RFC 4291) or empty value) | IP address the browser is connecting from. Either this or deviceIP shall be provided. The value can be empty.<br>*Example:* `"192.168.1.11"` | No |
| browserTZ | string | Time zone offset in minutes between UTC and the Cardholder Browser local time. The value can be empty.<br>*Example:* `"-240"` | No |
| homePhone | object (cc: 1–3 characters. subscriber: variable, maximum 15 characters. Refer to ITU-E.164 for additional information on format and length.) | The home phone number provided. The object includes the country code (cc) and subscriber number (subscriber).<br>*Example:* `{"cc":"1","subscriber":"1234567899"}` | No |
| issuerBIN | string | The issuer bank identification number. equivalent to the first 6 or 8 digits of the PAN. The value can be empty. Required if acctNumber is not provided.<br>*Example:* `"438309"` | No |
| transType | string, <br>**Available values:** "01", "10" | Indicates the type of transaction. Values: - '01' # Regular Transaction - '10' # AFT (Account Funding Transaction) <br>*Enum:* `"01"`, `"10"` | No |
| workPhone | object (cc: 1–3 characters. subscriber: variable, maximum 15 characters. Refer to ITU-E.164 for additional information on format and length.) | The work phone number provided. The object includes the country code (cc) and subscriber number (subscriber).<br>*Example:* `{"cc":"1","subscriber":"1234567899"}` | No |
| acctNumber | string (Format represented ISO 7812.) | Account number that will be used in the authorisation request for payment transactions. May be represented by PAN, Payment Token.<br>*Example:* `"4111111111111111"` | Yes |
| merchantID | string | Merchant identifier. Optional — can be omitted or empty.<br>*Example:* `"00002000000"` | No |
| acquirerBIN | string | Acquiring institution identification code.<br>*Example:* `"438309"` | Yes |
| geoLocation | object (latitude: string, maximum 10 characters. longitude: string, maximum 10 characters.) | The geographic location of the transaction. The object includes the latitude and longitude values.<br>*Example:* `{"latitude":"37.4","longitude":"-122.1"}` | No |
| mobilePhone | object (cc: 1–3 characters. subscriber: variable, maximum 15 characters. Refer to ITU-E.164 for additional information on format and length.) | The mobile phone number provided. The object includes the country code (cc) and subscriber number (subscriber).<br>*Example:* `{"cc":"1","subscriber":"1234567899"}` | No |
| payTokenInd | boolean (true or false) | A value of True indicates that the transaction was de-tokenized.<br>*Example:* `true` | No |
| productType | string, <br>**Available values:** "01", "02", "" | Type of purchased product. Values: - '01' # Digital - '02' # Physical - ''   # Empty value <br>*Enum:* `"01"`, `"02"`, `""` | No |
| reasonCodes | [ string ] | The reason codes associated with the transaction's risk score. The value can be empty.<br>*Example:* `["UNKNOWN_SHIP_ADDRESS","LRG_AMNT"]` | No |
| billAddrCity | string | The city of the Cardholder billing address associated with the card used for this purchase.<br>*Example:* `"New York"` | No |
| merchantName | string (Same name used in the authorisation message as defined in ISO 8583-1) | Merchant name.<br>*Example:* `"Merchant Name"` | No |
| purchaseDate | string (YYYYMMDDHHMMSS) | Date and time of the transaction converted into UTC.<br>*Example:* `"20240630122155"` | Yes |
| shipAddrCity | string | City portion of the shipping address requested by the Cardholder.<br>*Example:* `"New York"` | No |
| billAddrLine1 | string | First line of the Cardholder billing address associated with the card used for this purchase.<br>*Example:* `"123 Main St"` | No |
| billAddrLine2 | string | Second line of the Cardholder billing address associated with the card used for this purchase.<br>*Example:* `"Apt 4B"` | No |
| billAddrLine3 | string | Third line of the Cardholder billing address associated with the card used for this purchase.<br>*Example:* `"Near Central Park"` | No |
| billAddrState | string (Country subdivision code defined in ISO 3166-2 or empty value) | The state of the Cardholder billing address associated with the card used for this purchase. The value can be empty.<br>*Example:* `"NY"` | No |
| deviceChannel | string, <br>**Available values:** "01", "02", "" | Indicates the type of channel interface being used to initiate the transaction. Values: - '01' # App-based - '02' # Browser - ''   # Empty value <br>*Enum:* `"01"`, `"02"`, `""` | No |
| shipAddrLine1 | string | First line of the street address or equivalent local portion of the shipping address requested by the Cardholder. The value can be empty.<br>*Example:* `"123 Main St"` | No |
| shipAddrLine2 | string | Second line of the street address or equivalent local portion of the shipping address requested by the Cardholder.<br>*Example:* `"Apt 4B"` | No |
| shipAddrLine3 | string | Third line of the street address or equivalent local portion of the shipping address requested by the Cardholder.<br>*Example:* `"Near Central Park"` | No |
| shipAddrState | string (Country subdivision code defined in ISO 3166-2 or empty value) | The state of the Cardholder shipping address. The value can be empty.<br>*Example:* `"NY"` | No |
| shipIndicator | string, <br>**Available values:** "01", "02", "03", "04", "05", "06", "07", "08", "09", "" | Indicates shipping method chosen for the transaction. Values: - '01' # Ship to the Cardholder’s billing address - '02' # Ship to another verified address on file with the Merchant - '03' # Ship to an address that is different than the Cardholder’s billing address - '04' # “Ship to Store” / Pick-up at a local store (Store address shall be populated in shipping address fields) - '05' # Digital goods (includes online services, electronic gift cards and redemption codes) - '06' # Travel and event tickets, not shipped - '07' # Other (for example, gaming, digital services not shipped, emedia subscriptions, etc.) - '08' # Pick-up and go delivery - '09' # Locker delivery (or other automated pick-up) - ''   # Empty value <br>*Enum:* `"01"`, `"02"`, `"03"`, `"04"`, `"05"`, `"06"`, `"07"`, `"08"`, `"09"`, `""` | No |
| cardExpiryDate | string (YYMM or empty value) | Expiry Date of the PAN. The value can be empty.<br>*Example:* `"2806"` | No |
| cardholderName | string | Name of the Cardholder.<br>*Example:* `"John Doe"` | No |
| lastFourDigits | string | The last four digits of the PAN. The value can be empty. Required if acctNumber is not provided.<br>*Example:* `"1111"` | No |
| purchaseAmount | string (Must be between 1 and 48 numeric numbers) | Purchase amount in minor units of currency with all punctuation removed.<br>*Example:* `"12550"` | Yes |
| acceptLanguages | [ string ] | Value representing the Browser language preference present in the HTTP header, as defined in IETF BCP 47. The value can be empty.<br>*Example:* `["en-US","en;q=0.9","fr;q=0.8","de;q=0.7","es;q=0.6"]` | No |
| billAddrCountry | string (ISO 3166-1 numeric three-digit country code or empty value) | The country of the Cardholder billing address associated with the card used for this purchase, as a three-digit ISO 3166-1 numeric country code. The value can be empty.<br>*Example:* `"840"` | No |
| browserLanguage | string | Value representing the Browser language as defined in IETF BCP47. The value can be empty.<br>*Example:* `"en"` | No |
| messageCategory | string, <br>**Available values:** "01", "02", "" | Identifies the category of the message (payment or non-payment). Values: - '01' # Payment - '02' # Non-payment - ''   # Empty value <br>*Enum:* `"01"`, `"02"`, `""` | No |
| shipAddrCountry | string (ISO 3166-1 numeric three-digit country code or empty value) | The country of shipping address requested by the Cardholder. The value can be empty.<br>*Example:* `"840"` | No |
| billAddrPostCode | string | ZIP or other postal code of the Cardholder billing address associated with the card used for this purchase.<br>*Example:* `"10001"` | No |
| browserUserAgent | string | Exact content of the HTTP user-agent header.<br>*Example:* `"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"` | No |
| cardSecurityCode | string | Three- or four-digit security code printed on the card. The value can be empty.<br>*Example:* `"123"` | No |
| purchaseCurrency | string (ISO 4217 three-digit currency code) | Currency code of the purchase amount.<br>*Example:* `"840"` | Yes |
| purchaseExponent | string (ISO 4217 currency exponent) | Minor units of currency as specified in the ISO 4217 currency exponent.<br>*Example:* `"2"` | Yes |
| shipAddrPostCode | string | ZIP or other postal code of the Cardholder shipping address. The value can be empty.<br>*Example:* `"10001"` | No |
| browserColorDepth | string (numeric value between 1-99 or empty value.) | Value representing the bit depth of the colour palette for displaying images, in bits per pixel. The value can be empty.<br>*Example:* `"24"` | No |
| requestDCAPStatus | boolean | Indicates whether the sender requests Digital Commerce Authentication Program (DCAP) eligibility information to be returned.<br>*Example:* `false` | No |
| browserJavaEnabled | boolean (true or false) | Boolean that represents the ability of the Cardholder Browser to execute Java.<br>*Example:* `true` | No |
| browserScreenWidth | string | Total width of the Cardholder’s screen in pixels. The value can be empty.<br>*Example:* `"1920"` | No |
| purchaseInstalData | string (numeric value shall be greater than 1 or empty value) | Indicates the maximum number of authorisations permitted for installment payments. The value can be empty.<br>*Example:* `"3"` | No |
| vdiClientRequestId | string | A unique 32 or 36 character GUID that uniquely identifies the current request.<br>*Example:* `"354d1481a5dc4a9fa8e87ec73049f511"` | No |
| acquirerCountryCode | string (ISO 3166-1 numeric three-digit country code or empty value) | The code of the country where the acquiring institution is located. The value can be empty.<br>*Example:* `"840"` | No |
| browserAcceptHeader | string | HTTP accept headers<br>*Example:* `"text/html,application/xhtml+xml,application/xml; q=0.9,*/*;q=0.8"` | No |
| browserScreenHeight | string | Total height of the Cardholder’s screen in pixels. The value can be empty.<br>*Example:* `"1080"` | No |
| merchantCountryCode | string (ISO 3166-1 numeric three-digit country code or empty value) | Country code of the merchant. The value can be empty.<br>*Example:* `"840"` | No |
| purchaseOrderNumber | string | Merchant-specific order number for the transaction  that is shared with the customer/cardholder.<br>*Example:* `"ORD-12345-ABC"` | No |
| browserJavascriptEnabled | boolean (true or false) | Boolean that represents the ability of the Cardholder Browser to execute JavaScript.<br>*Example:* `true` | No |
| thirdPartyRiskAssessment | string (numeric value between 1-99999 without leading 0's.) | The risk assessment associated with the transaction.<br>*Example:* `"50"` | No |
| thirdPartyRiskAssessmentType | string, <br>**Available values:** "01", "02" | Type of risk assessment provided. Values: - '01' # Score - '02' # Advice <br>*Enum:* `"01"`, `"02"` | No |

#### VidxStandardError Schema

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.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| VidxStandardError | { **"reason"**: string, **"status"**: integer, **"details"**: [ { **"reason"**: string, **"message"**: string, **"location"**: string } ], **"message"**: string } | 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. |  |
