> For the complete documentation index, see [llms.txt](https://docs.payments.thalescloud.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.payments.thalescloud.io/merchant-tokenization/es/integracion-del-sdk/error-management/backend-error-codes.md).

# Códigos de error del backend

Los siguientes códigos de error del servidor pueden ocurrir durante las llamadas a la API entre el SDK de Thales y el backend de Thales.

## Android

| Código de error                       | Caso de uso                                                                                                               | Recomendación                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| SERVER\_IS\_NOT\_ACCESSIBLE           | Este error se devuelve cuando el SDK no puede alcanzar el backend de Thales debido a un problema de conexión de red.      | <ul><li>Mostrar el mensaje de error al usuario final.</li><li>Indicar al usuario final que verifique su conexión a Internet.</li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| SERVER\_ERROR\_CRYPTO\_ERROR          | Este error se devuelve cuando hay un problema con el almacén de claves.                                                   | <ul><li>Mostrar el mensaje de error al usuario final.</li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| SERVER\_ERROR\_INVALID\_TOKEN\_STATE  | Este error se devuelve cuando el estado del token no es válido.                                                           | <ul><li>Mostrar el mensaje de error al usuario final.</li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| SERVER\_ERROR\_IDV\_NOT\_AVAILABLE    | Este error se devuelve cuando el usuario final selecciona un método de ID\&V que no está disponible.                      | <ul><li>El backend de Thales devuelve un error cuando el SDK envía un <code>POST /idv-method</code> o <code>POST /otp</code> request. The SDK returns this error code to the merchant application via the <code>TokenBindingListener.onIssuerAuthenticationError()</code> callback.</li><li>Usa <code>IDVSession.getIdvMethods()</code> para obtener la lista de métodos de ID\&V que se pueden usar para autenticar al usuario final. Si la sesión permanece activa, la aplicación del comerciante puede seleccionar otro método de ID\&V usando <code>IDVSession.selectIdvMethod()</code>.</li></ul> |
| SERVER\_ERROR\_NO\_SESSION\_FOUND     | Este error se devuelve cuando no se puede encontrar la sesión.                                                            | <ul><li>El backend de Thales devuelve un error cuando el SDK envía un <code>POST /idv-method</code> o <code>POST /otp</code> request. The SDK returns this error code to the merchant application via the <code>TokenBindingListener.onError()</code> callback.</li><li>Llamar <code>VisaCTFHelper.createBinding()</code> nuevamente para crear una nueva sesión antes de que el usuario final seleccione un método de ID\&V o verifique el OTP.</li></ul>                                                                                                                                             |
| SERVER\_ERROR\_WRONG\_OTP\_VALUE      | Este error se devuelve cuando el usuario final ingresa un OTP incorrecto.                                                 | <ul><li>El backend de Thales devuelve un error cuando el SDK envía un <code>POST /otp</code> request. The SDK returns this error code to the merchant application via the <code>TokenBindingListener.onIssuerAuthenticationError()</code> callback.</li><li>La sesión permanece activa y la aplicación del comerciante puede reintentar o seleccionar otro método de ID\&V usando el <code>IDVSession</code> objeto.</li></ul>                                                                                                                                                                         |
| SERVER\_ERROR\_EXPIRED\_OTP           | Este error se devuelve cuando el usuario final ingresa un OTP caducado.                                                   | <ul><li>El backend de Thales devuelve un error cuando el SDK envía un <code>POST /otp</code> request.</li><li>El SDK devuelve este código de error a la aplicación del comerciante a través del <code>TokenBindingListener.onIssuerAuthenticationError()</code> callback.</li><li>La sesión permanece activa y la aplicación del comerciante puede reintentar o seleccionar otro método de ID\&V usando el <code>IDVSession</code> objeto.</li></ul>                                                                                                                                                   |
| SERVER\_ERROR\_RETRY\_LIMIT\_EXCEEDED | Este error se devuelve cuando el usuario final excede el número de reintentos permitidos.                                 | <ul><li>El backend de Thales devuelve un error cuando el SDK envía un <code>POST /otp</code> request. The SDK returns this error code to the merchant application via the <code>TokenBindingListener.onIssuerAuthenticationError()</code> callback.</li><li>La sesión permanece activa y la aplicación del comerciante puede reintentar o seleccionar otro método de ID\&V usando el <code>IDVSession</code> objeto.</li></ul>                                                                                                                                                                         |
| SERVER\_ERROR\_TOO\_MANY\_REQUEST     | Este error se devuelve cuando se envían demasiadas solicitudes en un período de tiempo determinado.                       | <ul><li>Mostrar el mensaje de error al usuario final.</li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| SERVER\_ERROR\_RETRYABLE              | Este error se devuelve cuando el servidor no puede manejar la solicitud debido a una sobrecarga temporal o mantenimiento. | <ul><li>Mostrar el mensaje de error al usuario final.</li><li>Reintentar la solicitud.</li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| SERVER\_ERROR                         | Este error se devuelve cuando ocurre un error del servidor y no encaja en ninguno de los códigos de error anteriores.     | <ul><li>Mostrar el mensaje de error al usuario final.</li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |

## iOS

| Código de error                                                   | Caso de uso                                                                                                                                                                                               | Recomendación                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `TMGError.serverIsNotAccessible`                                  | Este error se devuelve cuando el SDK no puede alcanzar el backend de Thales debido a un problema de conexión de red.                                                                                      | <ul><li>Mostrar el mensaje de error al usuario final.</li><li>Indicar al usuario final que verifique su conexión a Internet.</li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `TMGError.serverErrorCryptoError`                                 | Este error se devuelve cuando hay un problema con el almacén de claves.                                                                                                                                   | <ul><li>Mostrar el mensaje de error al usuario final.</li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `TMGError.serverErrorInvalidTokenState`                           | Este error se devuelve cuando el estado del token no es válido.                                                                                                                                           | <ul><li>Mostrar el mensaje de error al usuario final.</li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `TMGError.serverErrorIdvNotAvailable`                             | Este error se devuelve cuando el usuario final selecciona un método de ID\&V que no está disponible.                                                                                                      | <ul><li>El backend de Thales devuelve un error cuando el SDK envía un <code>POST /idv-method</code> o <code>POST /otp</code> request. The SDK returns this error code to the merchant application via the completion handler.</li><li>Usa <code>PendingBindingSession.getIdvMethods()</code> para obtener la lista de métodos de ID\&V que se pueden usar para autenticar al usuario final. Si la sesión permanece activa, la aplicación del comerciante puede seleccionar otro método de ID\&V usando <code>PendingBindingSession.select()</code>.</li></ul> |
| `TMGError.serverErrorNoSessionFound`                              | Este error se devuelve cuando no se puede encontrar la sesión.                                                                                                                                            | <ul><li>El backend de Thales devuelve un error cuando el SDK envía un <code>POST /idv-method</code> o <code>POST /otp</code> request. The SDK returns this error code to the merchant application via the completion handler.</li><li>Llamar <code>VisaCTFHelper.createBinding()</code> nuevamente para crear una nueva sesión antes de que el usuario final seleccione un método de ID\&V o verifique el OTP.</li></ul>                                                                                                                                      |
| `TMGError.serverErrorWrongOTP`                                    | Este error se devuelve cuando el usuario final ingresa un OTP incorrecto.                                                                                                                                 | <ul><li>El backend de Thales devuelve un error cuando el SDK envía un <code>POST /otp</code> request. The SDK returns this error code to the merchant application via the completion handler.</li><li>La sesión permanece activa y la aplicación del comerciante puede reintentar o seleccionar otro método de ID\&V usando el <code>PendingBindingSession</code> objeto.</li></ul>                                                                                                                                                                           |
| `TMGError.serverErrorExpiredOTP`                                  | Este error se devuelve cuando el usuario final ingresa un OTP caducado.                                                                                                                                   | <ul><li>El backend de Thales devuelve un error cuando el SDK envía un <code>POST /otp</code> request.</li><li>El SDK devuelve este código de error a la aplicación del comerciante a través del manejador de finalización.</li><li>La sesión permanece activa y la aplicación del comerciante puede reintentar o seleccionar otro método de ID\&V usando el <code>PendingBindingSession</code> objeto.</li></ul>                                                                                                                                              |
| `TMGError.serverErrorRetryLimitExceeded`                          | Este error se devuelve cuando el usuario final excede el número de reintentos permitidos.                                                                                                                 | <ul><li>El backend de Thales devuelve un error cuando el SDK envía un <code>POST /otp</code> request. The SDK returns this error code to the merchant application via the completion handler.</li><li>La sesión permanece activa y la aplicación del comerciante puede reintentar o seleccionar otro método de ID\&V usando el <code>PendingBindingSession</code> objeto.</li></ul>                                                                                                                                                                           |
| `TMGError.serverErrorTooManyRequest`                              | Este error se devuelve cuando se envían demasiadas solicitudes en un período de tiempo determinado.                                                                                                       | <ul><li>Mostrar el mensaje de error al usuario final.</li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `TMGError.serverRetryable`                                        | Este error se devuelve cuando el servidor no puede manejar la solicitud debido a una sobrecarga temporal o mantenimiento.                                                                                 | <ul><li>Mostrar el mensaje de error al usuario final.</li><li>Reintentar la solicitud.</li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `TMGError.serverError(let httpStatusCode, let additionalMessage)` | Este error se devuelve cuando ocurre un error del servidor y no encaja en ninguno de los códigos de error anteriores. El `httpStatusCode` y `additionalMessage` proporcionan más detalles sobre el error. | <ul><li>Mostrar el mensaje de error al usuario final.</li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.payments.thalescloud.io/merchant-tokenization/es/integracion-del-sdk/error-management/backend-error-codes.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
