VAU Merchant Enrollment API Error Codes

Sample Application and HTTP Error Codes

VAU Merchant Enrollment API Error Codes

Error Codes and Exception Handling

To determine the status of any for VAU Merchant Enrollment API call, use the combination of the HTTP status code returned in the response, error code from VAU Merchant Enrollment API or the platform, and other information included in the response message in order to apply the correct processing logic and communicate with customers. The following table provides additional guidance on how to interpret and act upon status responses.

HTTP Status Code Error Code Error Description Recommended Handling
200 None Transaction processed successfully. The Action Code returned in the response indicates the outcome of the transaction (e.g. Success (all merchants enrolled), In-Progress (requires additional research), Reject) For 'reject' code, please look at the application reject codes and messages (see below) to fix the issue.
202 None The POST transaction timed out. If the API is not able to complete the transaction within 30 seconds (default) or within the timeout duration set in the HTTP header, it will respond with an 202 HTTP Status Code and a statusIdentifier value that can be used in the GET operation as the statusIdentifier in the URI. Wait an appropriate amount of time and then submit a GET transaction using the statusIdentifier received in the POST response in the URL. The GET URL is valid for 24 hours and can be resubmitted as many times as needed until a successful response is returned. Consider providing a "Please Wait" type response to the customer while waiting for the transaction to complete and remind the customer not to retry the transaction because the initial request is still being processed.
303 None The API detected a duplicate transaction. A duplicate transaction was detected when re-submitting a POST transaction with the same header (e.g. X-Client-Transaction-ID) and details while the original transaction is still being processed. Use the GET response URL to retrieve details of the original transaction that is still in process.
400 B The transaction was rejected by Visa due to a message validation error such as the request is badly formatted and/or the required field(s) is (are) missing. The message contains invalid data. Investigate the source of the invalid data before resubmitting the transaction. Consider placing the transaction in an exception queue and providing a suitable "Try Again Later" message to the customer if the problem cannot be resolved immediately.
400 8001 Velocity Limit Exceeded Established velocity limit by the service provider for transaction count, amount etc. has been reached.
401 None / 9123 / 9124 This is returned if user credentials are wrong. Resubmit with valid user credentials
401 9125 This is returned due to client certificate does not matched with the one issued by Visa.  Use the valid client certificate
403 None / 9611 The URL access is not permitted. Revalidate the URL and the Resource before resubmitting the transaction.
404 None The URL is invalid or the Resource could not be found. Revalidate the URL and the Resource before resubmitting the transaction. Consider placing the transaction in an exception queue and providing a suitable "Try Again Later" message to the customer if the problem cannot be resolved immediately.
404 3001 The message contains an invalid Primary Account Number (PAN) Display an appropriate message to the customer and ask them to correct the sender or recipient PAN and resubmit the request.
409 A, T, V, X Multiple rejects are possible

Reject code 'A' implies that the acquirer segment is not enrolled. Contact your VAU client services team.

Reject code 'T' means that Max merchants (100) threshold exceeded for single request. Please reduce the number of merchants to 100.

Reject code 'V' means that no data found in merchant field. Please ensure merchant field is populated.

Reject code 'X' means that the Acquirer status is in test mode,.  If you are ready to go live, pease contact client services representative to request to change the status from 'test' to 'production'.

500 E These are returned when an internal server error occurs. Contact your Visa production support contact for investigation and assistance.
503   This may be due to network connectivity issue. Contact your Visa production support contact for investigation and assistance. Recommend not to re-post transaction and check settlement report.
504   Timeout which may be due to network connectivity issue. Contact your Visa production support contact for investigation and assistance. Recommend not to re-post transaction and check settlement report.

Additionally, here are some of the application reject codes, description and recommended handling.

Error Code Error Description Recommended Handling
A Merchant Acquiring Identifier  is missing Please provide the merchant acquiring identifier and retry.
C Mandatory field Card Acceptor Id missing or invalid or having value zero. The required field Card Acceptor ID is missing. 
D Duplicate Merchant ID in Request  Remove the duplicate request referencing the merchant and retry.
E Exceeded maximum field length (100 chars) The input field length exceeded the limit of 100 characters. Please reduce the length and retry.
F Merchant name exceeds the maximum length of 75 characters Please reduce the length of the merchant name to 75 or less.
G Mandatory Field Merchant Country Code missing or must be 3 digit ISO code(including leading zeros)  Please ensure the merchant country code (ISO Code) is submitted in the API request. 
H Merchant Acquiring Identifier must be numeric of length 6 or 8 Please ensure the merchant acquiring identifier is within the prescribed length.
I Merchant ID must be 12 characters.  The merchant ID excedeed the limit of 12 characters. Please reduce the length and resubmit.
J Merchant name having non english characters or '|' unsupported character Please ensure the merchant name contains English characters and also does not contain "|" (pipe) character
K Max number of Merchant Acquiring Identifiers supported is 18 Please reduce the number of acquiring identifiers to 18 or less.
L Internet Address (URL) exceeds the maximum length of 100 chars The input field length exceeded the limit of 100 characters. Please reduce the length and retry.
M Merchant Id already exists for this Acquirer Segment. The input request is rejected as the merchant ID is already exists for this acquirer segment.
N Mandatory Field Merchant Name missing, or merchant name contains unsupported characters Please ensure all the mandatory fields are populated.
O Parent Company name having non english characters or '|' unsupported character Please ensure the  parent name contains English characters and also does not contain "|" (pipe) character
P Mandatory Field Merchant Category Code missing or must be numeric Please ensure the Merchant Category Code (MCC) is populated or numeric
Q Mandatory Field Merchant Acquiring Identifier(s) missing or invalid Please ensure Merchant Acquiring Id is populated
R Mandatory Field Merchant ID missing or invalid Please ensure the Merchand ID is populated.
S Merchant Country  should be in same region as acquirer. Please ensure that the merchant country resides in the same region as acquirer.
T Number of merchants exceeds the maximum allowed limit (100) Please reduce the number of merchants to 100 or below in the input request.
U Card Acceptor Id exceeds the maximum length of 15 characters  Please reduce the length of CAID field and retry.
W Merchant Category Code exceeds the maximum length of 4 digits Please ensure the merchant category code to 4 digits.
Y Merchant did not qualify compliance check The record is rejected as the merchant did not qualify the compliance check.

Additionally, there is a specific HTTP header variable for timeout exception handling which Originators may consider to use if it is applicable to their projects. The following table lists the header details.

HTTP Header Variable Description
X-Transaction-Timeout-MS This is an optional variable.

Elapsed time in milliseconds (ms) in which an API will respond back. If no value is specified then it defaults to 30000 ms (i.e. 30 seconds), which is the maximum value allowed. If the set value is greater than the maximum value then timeout will not occur. The API will respond with HTTP 202 ACCEPTED if the processing has not yet completed. If the processing completes within the designated timeout period, then the API will return HTTP 200 OK and the XML- or JSON-formatted response, based on the Content-Type value.