Tokenization response codes
Error codes help you to debug to issues that occur as a result of sending badly formatted requests. The responseMessage is a short string that provides a brief explanation. The tables below list the available reason codes, as well as their possible causes.
The following fields are in the body of the response:
- responseStatus: Valid values include: SUCCESS, DENIED, or ERROR. SUCCESS means the request was approved by the issuer or completed successfully. ERROR is only returned for 4XX or 5XX responses.
- responseCode: This field contains a shorter description of the processing result. For 2XX responses, this may be displayed to the consumer.
- responseMessage: This field contains a longer, more descriptive message. These messages are not intended to be displayed to the consumer.
- hostMessage: The term "host" refers to the system from which J.P. Morgan has received a response. The hostMessage is mapped to J.P. Morgan's response fields, but the unaltered message is returned, if received. For 5XX responses, the presence of this field indicates where the error exists.
Successful responses (200-299)
In general, 2XX status codes signify that a request has successfully processed, but does not necessarily mean that the issuer has approved the transaction.
Scenario | HTTP code | responseStatus | responseCode | responseMessage |
---|---|---|---|---|
Successfully retrieved file status in GET call | 200 | SUCCESS | (Shows current processing status of the given request ID, or REJECTED if failed.) | (Based on processing status of the file, or error description if file was rejected) |
Successfully retrieved file for GET file response call | 200 | SUCCESS | Processing complete | Response downloaded |
Token provisioning | 201 | SUCCESS | ACCEPTED | Request accepted |
Token cryptogram request | 201 | SUCCESS | ACCEPTED | Request accepted |
Lifecycle request | 201 | SUCCESS | ACCEPTED | Request accepted |
Bulk tokenization | 201 | SUCCESS | ACCEPTED | Request accepted |
Pending provisioning request | 201 | SUCCESS | ACCEPTED | Token provisioning request pending |
Successfully received file from POST for bulk tokenization | 201 | SUCCESS | ACCEPTED | Upload successful batch ID: [response_id] |
Client error responses (400-499)
A 4XX status code indicates that an error has occurred during a request, and provides a list of specific codes. Additional fields are provided in the body of the response to help identify the error. Address the problem and resubmit the request.
Scenario | HTTP code | responseStatus | responseCode | responseMessage |
---|---|---|---|---|
Missing request fields, or provided format is incorrect | 400 | ERROR | VALIDATION_ERROR | Missing or invalid data provided in request |
Token state is invalid for requested action | 400 | ERROR | INVALID_TOKEN_STATE | Token state is invalid for attempted action |
Failed to include content-type in request header (GET/POST) | 400 | ERROR | BAD_REQUEST | Failed to include content-type in request header |
Request does not contain a body (POST) | 400 | ERROR | BAD_REQUEST | No request attached |
Provided merchant ID was null | 400 | ERROR | REJECTED | Processing entity null |
POST request batch file was empty or not provided (POST) | 400 | ERROR | BAD_REQUEST | Empty file |
Invalid authorization token provided | 400 | ERROR | REJECTED | Token is null |
Processing entity not found in database (POST) | 400 | ERROR | REJECTED | Processing entity invalid |
Request ID not provided in request (GET/POST) | 400 | ERROR | BAD_REQUEST | Failed to obtain batch status |
Failed to find request ID (POST) | 400 | ERROR | NOT_FOUND | Failed to obtain batch status |
File is not in the correct format | 400 | ERROR | BAD_REQUEST | File is not ready to be read |
Identifier requested could not be found (GET) | 400 | ERROR | NOT_FOUND | Failed to find file record |
Processor request is missing fields or is in an incorrect format | 400 | ERROR | VALIDATION_ERROR | One or more of the following conditions apply:
|
Unauthorized request | 401 | ERROR | UNAUTHORIZED | Client making request is unauthorized to access service |
Merchant ID was not provided in the request header (GET/POST) | 401 | ERROR | UNAUTHORIZED | Merchant ID is missing |
Processing entity not found (POST) | 401 | ERROR | UNAUTHORIZED | Processing entitiy is invalid |
Provided auth token is null (GET/POST) | 401 | ERROR | UNAUTHORIZED | Token is invalid |
Request was valid, however, the action was refused | 403 | ERROR | FORBIDDEN | Request was valid for a resource, however, action was refused |
No authorization token was provided in request header (GET/POST) | 403 | ERROR | FORBIDDEN | Header auth token not passed |
Token cannot be found for provided token reference | 404 | ERROR | NOT_FOUND | No token found for token reference |
File type cannot be encrypted | 406 | ERROR | NOT_ACCEPTABLE | File is not a valid type to decrypt |
Duplicate request | 409 | ERROR | DUPLICATE | Previously completed request |
Server error responses (500-599)
A 5XX status code indicates that an error has occurred within the J.P. Morgan (or acquirer) environment during the request. Additional fields are provided in the body of the response to identify the error.
Scenario | HTTP code | responseStatus | responseCode | responseMessage |
---|---|---|---|---|
Internal processing error | 500 | ERROR | SERVER_ERROR | Server error, please retry |
A decryption error has occurred | 500 | ERROR | SERVER_ERROR | Failed to decrypt |
An unknown error has occurred | 503 | ERROR | HOST_ERROR | An unknown error has occurred |
Gateway timeout | 504 | ERROR | TIMEOUT | Request timeout |