> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Control de errores del marketplace

> Controle los errores de canje del marketplace de PlayFab con APIErrorWrapper, los detalles de MarketplaceErrorCode y patrones de recuperación para llamadas de API de tienda con errores.

# Control de errores de canje del marketplace

Al trabajar con las API de canje del marketplace, es fundamental contar con un control de errores sólido. En este artículo se exploran los procedimientos recomendados para controlar errores, desde comprender los códigos de error comunes hasta implementar estrategias de recuperación de errores correctas.

Los errores se devuelven mediante el [contenedor de errores estándar de PlayFab](https://learn.microsoft.com/en-us/rest/api/playfab/economy/inventory/redeem-apple-app-store-inventory-items#apierrorwrapper)

## APIErrorWrapper

`APIErrorWrapper` es un contenedor que envuelve todas las respuestas de API con error.

| Nombre       | Tipo    | Descripción                                                                     |
| ------------ | ------- | ------------------------------------------------------------------------------- |
| code         | integer | Código HTTP numérico.                                                           |
| error        | string  | Código de error de PlayFab.                                                     |
| errorCode    | integer | Código de error numérico de PlayFab.                                            |
| errorDetails | object  | Descripción detallada de los problemas individuales con el objeto de solicitud. |
| errorMessage | string  | Descripción del errorCode de PlayFab.                                           |
| status       | string  | Código HTTP en formato de cadena.                                               |

Para cualquier problema relacionado con el marketplace, se devuelve un par clave-valor (KVP) en el objeto `errorDetails`.

| Nombre               | Tipo      | Descripción                                                                                                                                                                                                            |
| -------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| MarketplaceErrorCode | string\[] | El código de error devuelto por el marketplace si una llamada al marketplace produjo un error. La primera cadena de la matriz será el código de error. La segunda cadena será el mensaje de error, si está disponible. |

<Note>
  Se trata de un paso directo del código de error y del mensaje del código de error devueltos por el marketplace.
</Note>

La respuesta de error aparecerá como se muestra a continuación. Los desarrolladores deben comprobar que `wrapper.errorDetails['MarketplaceErrorCode']` no sea null y, a continuación, analizar el primer elemento para controlar los distintos códigos de error del marketplace según corresponda.

```json theme={null}
"{
    "code":503,
    "errorDetails":
    {
        "MarketplaceErrorCode":["1234","sample error code"]
    },
    ...    
}"
```

## Códigos de estado HTTP de error públicos

En esta sección se enumeran los códigos de error devueltos por las API de canje.

* **400 - Bad Request**
  * Todos los errores de validación de solicitudes y entradas `GenericErroCodes.InvalidRequest`
  * Todos los errores de validación de configuración `GenericErrorCodes.InvalidServiceConfiguration`
  * Todos los errores de autorización del marketplace
    * `GenericErrorCodes.InvalidServiceConfiguration` - Relacionado con errores de identidad del servicio.
    * `GenericErrorCodes.InvalidAuthToken` - Relacionado con errores de identidad del jugador.
  * Todos los errores de configuración de artículos del catálogo `GenericErrorCodes.InvalidCatalogItemConfiguration`
* **401/403 - Not Authorized/Forbidden**
  * Errores de autorización de PlayFab `GenericErrorCodes.NotAuthorized`
* **503 - MarketplaceUnavailable**
  * `GenericErrorCodes.DownstreamServiceUnavailable`


## Related topics

- [Control de errores del SDK de C++ de Lobby y Matchmaking](/es/services/playfab/multiplayer/lobby/lobby-and-matchmaking-client-sdk-errors.md)
- [Procedimientos recomendados de control de errores del SDK](/es/services/playfab/live-service-management/service-gateway/automation/cloudscript/sdk-error-handling-best-practices.md)
- [Control de errores de PlayFab](/es/services/playfab/sdks/c/errors.md)
- [Control de errores en CloudScript](/es/services/playfab/live-service-management/service-gateway/automation/cloudscript/handling-errors-in-cloudscript.md)
- [Tipos de control de errores](/es/services/xbox-services/develop/error-handling/live-types-of-error-handling.md)
