Reason Codes {#uc_appendix_v1_reason_codes}
===========================================

This section describes the server-side HTTP status codes and reason values that are returned when you send requests to `Unified Checkout`. For information about client-side SDK error codes, see [Handle Errors](/docs/vas/en-us/unified-checkout/developer/all/rest/unified-checkout/uc-reference-test-cards/uc-handle-errors.md "").

HTTP Status Codes
-----------------

| Code  |                             Description                             |
|-------|---------------------------------------------------------------------|
| `200` | Request processed successfully                                      |
| `201` | Session created                                                     |
| `400` | Bad request. The response body contains a reason value with details |
| `404` | Resource not found                                                  |
| `500` | Unexpected server error                                             |

Reason Values (HTTP `400`)
--------------------------

When the API returns a status code value of `400`, the response body includes the reason field. This section lists all possible values for the reason field:

|          Reason           |                                    Description                                     |
|---------------------------|------------------------------------------------------------------------------------|
| `CAPTURE_CONTEXT_EXPIRED` | The session JWT is expired. Generate a new session.                                |
| `CAPTURE_CONTEXT_INVALID` | The session JWT is not valid. For example, it has a bad signature or is malformed. |
| `INVALID_APIKEY`          | The API key is not valid.                                                          |
[Initialization Reason Values]

|                Reason                 |                       Description                        |
|---------------------------------------|----------------------------------------------------------|
| `CHECKOUT_ERROR`                      | A general checkout error occurred.                       |
| `UNIFIED_PAYMENTS_ALREADY_SHOWN`      | The checkout is already displayed.                       |
| `UNIFIED_PAYMENTS_PAYMENT_PARAMETERS` | One or more payment parameters have a validation error.  |
| `UNIFIED_PAYMENTS_VALIDATION_FIELDS`  | One or more fields have a validation error.              |
| `UNIFIED_PAYMENTS_VALIDATION_PARAMS`  | One or more checkout parameters have a validation error. |
[Checkout Reason Values]

|             Reason             |                      Description                       |
|--------------------------------|--------------------------------------------------------|
| `SHOW_LOAD_CONTAINER_SELECTOR` | The CSS selector does not match any element.           |
| `SHOW_LOAD_ERROR`              | A problem occurred loading the payment iframe.         |
| `SHOW_LOAD_INVALID_CONTAINER`  | The container parameter is not valid.                  |
| `SHOW_LOAD_SIDEBAR_OPTIONS`    | The container parameter is not valid for sidebar mode. |
| `SHOW_PAYMENT_TIMEOUT`         | A payment method timed out during initialization.      |
| `SHOW_PAYMENT_UNAVAILABLE`     | No payment types could be presented to the customer.   |
| `SHOW_TOKEN_TIMEOUT`           | Token creation timed out during mount.                 |
| `SHOW_TOKEN_XHR_ERROR`         | A network error occurred during token creation.        |
[Mount Reason Values]

|               Reason               |                            Description                            |
|------------------------------------|-------------------------------------------------------------------|
| `COMPLETE_AUTHENTICATION_CANCELED` | The customer cancelled `3-D Secure` authentication.               |
| `COMPLETE_AUTHENTICATION_FAILED`   | `3-D Secure` authentication failed.                               |
| `COMPLETE_ERROR`                   | A general error occurred during completion.                       |
| `COMPLETE_IN_PROGRESS`             | A complete call is already in progress.                           |
| `COMPLETE_NOT_ALLOWED`             | Complete is not allowed, such as when auto-processing is enabled. |
| `COMPLETE_TRANSACTION_CANCELLED`   | The customer cancelled the transaction.                           |
| `COMPLETE_TRANSACTION_FAILED`      | The transaction failed during processing.                         |
| `COMPLETE_VALIDATION_ERROR`        | Parameters supplied to complete have a validation error.          |
[Complete Reason Values]

|          Reason          |                   Description                   |
|--------------------------|-------------------------------------------------|
| `CREATE_TOKEN_TIMEOUT`   | Token creation request timed out.               |
| `CREATE_TOKEN_XHR_ERROR` | A network error occurred during token creation. |
| `SDK_XHR_ERROR`          | A general SDK network error occurred.           |
| `TOKENIZATION_ERROR`     | Tokenization of payment data failed.            |
[Tokenization Reason Values]

|                 Reason                 |                      Description                      |
|----------------------------------------|-------------------------------------------------------|
| `CLICK_TO_PAY_SDK_LOAD_ERROR`          | The `Click to Pay`SDK failed to load.                 |
| `ENCRYPT_CARD_FOR_SRC_ENROLMENT_ERROR` | Card encryption for `Click to Pay` enrollment failed. |
| `GOOGLEPAY_CHECKOUT_ERROR`             | A Google Pay checkout error occurred.                 |
| `LAUNCH_SRC_CHECKOUT_ERROR`            | Launching the `Click to Pay` checkout failed.         |
| `TRIGGER_PAYMENT_TYPE_NOT_SUPPORTED`   | The payment type is not supported for triggers.       |
[Payment-Specific Reason Values]

