> ## 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.

# Redeem Google Play Inventory Items

> Redeem items.

Allowed entity token types: title, master_player_account, title_player_account

## Error codes

This operation may return the following PlayFab errors:

| Error | Code |
| --- | --- |
| InvalidCatalogItemConfiguration | 4015 |




## OpenAPI

````yaml post /Inventory/RedeemGooglePlayInventoryItems
openapi: 3.0.0
info:
  version: '260922'
  title: PlayFab Economy API
  description: >-
    API methods for managing the catalog. Inventory manages in-game assets for
    any given entity. API methods for managing the versioned catalogs.
  termsOfService: https://playfab.com/terms/
  contact:
    url: https://community.playfab.com/index.html
  license:
    name: Apache 2.0
    url: https://github.com/PlayFab/API_Specs/blob/master/LICENSE
servers:
  - url: https://{titleId}.playfabapi.com
    description: PlayFab title endpoint
    variables:
      titleId:
        default: your_title_id
        description: Your PlayFab title ID (hex).
security: []
tags:
  - name: Catalog
    description: |-
      Catalog Management APIs. In general for Catalog APIs, 
                          Read APIs are limited to 100 requests in 60 seconds 
                          for Player Entities while Title Entities are limited to 10000 requests
                          in 10 seconds. For Write APIs, Player Entities are limited to 10 requests 
                          in 30 seconds and Title Entities are limited to 1000 requests in 10 seconds.
  - name: Inventory
    description: |-
      Player Inventory Management APIs. Inventory operations work on an 
                          eventually consistent system against a cache of the Catalog. It can take a few moments for 
                          changes to propagate. In general for Inventory APIs, Read APIs are limited to 100 requests 
                          in 60 seconds for Player Entities while Title Entities are limited to 10000 requests
                          in 10 seconds. For Write APIs, Player Entities are limited to 30 requests 
                          in 90 seconds and Title Entities are limited to 1000 requests in 10 seconds.
  - name: VersionedCatalog
    description: ''
paths:
  /Inventory/RedeemGooglePlayInventoryItems:
    post:
      tags:
        - Inventory
      summary: Redeem Google Play Inventory Items
      description: >
        Redeem items.


        Allowed entity token types: title, master_player_account,
        title_player_account


        ## Error codes


        This operation may return the following PlayFab errors:


        | Error | Code |

        | --- | --- |

        | InvalidCatalogItemConfiguration | 4015 |
      operationId: RedeemGooglePlayInventoryItems
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RedeemGooglePlayInventoryItemsRequest'
        description: Redeem items from the Google Play Store.
      responses:
        '200':
          $ref: '#/components/responses/RedeemGooglePlayInventoryItemsResponse'
        '400':
          $ref: '#/components/responses/ApiErrorWrapper'
      security:
        - EntityToken: []
components:
  schemas:
    RedeemGooglePlayInventoryItemsRequest:
      description: Redeem items from the Google Play Store.
      type: object
      properties:
        CollectionId:
          description: >-
            The id of the entity's collection to perform this action on.
            (Default="default")
          type: string
        CustomTags:
          description: >-
            The optional custom tags associated with the request (e.g. build
            number, external trace identifiers, etc.).
          type: object
        Entity:
          allOf:
            - $ref: '#/components/schemas/EntityKey'
          description: The entity to perform this action on.
        Purchases:
          description: The list of purchases to redeem
          type: array
          items:
            $ref: '#/components/schemas/GooglePlayProductPurchase'
          x-isclass: true
      example:
        Purchases:
          - ProductId: productId
            Token: token
    EntityKey:
      description: >-
        Combined entity type and ID structure which uniquely identifies a single
        entity.
      type: object
      properties:
        Id:
          description: Unique ID of the entity.
          type: string
        Type:
          description: >-
            Entity type. See
            https://learn.microsoft.com/gaming/playfab/features/data/entities/available-built-in-entity-types
          type: string
      required:
        - Id
    GooglePlayProductPurchase:
      type: object
      properties:
        ProductId:
          description: >-
            The Product ID (SKU) of the InApp product purchased from the Google
            Play store.
          type: string
        Token:
          description: >-
            The token provided to the player's device when the product was
            purchased
          type: string
    RedeemGooglePlayInventoryItemsResponse:
      type: object
      properties:
        Failed:
          description: The list of failed redemptions from the external marketplace.
          type: array
          items:
            $ref: '#/components/schemas/RedemptionFailure'
          x-isclass: true
        Succeeded:
          description: The list of successful redemptions from the external marketplace.
          type: array
          items:
            $ref: '#/components/schemas/RedemptionSuccess'
          x-isclass: true
        TransactionIds:
          description: The Transaction IDs associated with the inventory modifications
          type: array
          items:
            type: string
      example:
        TransactionIds:
          - transactionId1
          - transactionId2
        Succeeded:
          - SuccessCode: success
            SuccessTimestamp: '2022-09-08T00:00:00'
            MarketplaceTransactionId: marketplaceTransactionId1
            MarketplaceAlternateId: MarketplaceAlternateId1
          - SuccessCode: success
            SuccessTimestamp: '2022-09-08T00:00:00'
            MarketplaceTransactionId: marketplaceTransactionId2
            MarketplaceAlternateId: MarketplaceAlternateId2
        Failed: []
    ApiErrorWrapper:
      description: The basic wrapper around every failed API response
      type: object
      properties:
        code:
          description: Numerical HTTP code
          type: integer
        status:
          description: String HTTP code
          type: string
        error:
          description: Playfab error code
          type: string
        errorCode:
          description: Numerical PlayFab error code
          type: integer
        errorMessage:
          description: Description for the PlayFab errorCode
          type: string
        errorDetails:
          description: Detailed description of individual issues with the request object
          type: object
      required:
        - code
        - errorCode
    RedemptionFailure:
      type: object
      properties:
        FailureCode:
          description: The marketplace failure code.
          type: string
        FailureDetails:
          description: >-
            The marketplace error details explaining why the offer failed to
            redeem.
          type: string
        MarketplaceAlternateId:
          description: The Marketplace Alternate ID being redeemed.
          type: string
        MarketplaceTransactionId:
          description: The transaction id in the external marketplace.
          type: string
    RedemptionSuccess:
      type: object
      properties:
        ExpirationTimestamp:
          description: The timestamp for when the redeem expired.
          type: string
        MarketplaceAlternateId:
          description: The Marketplace Alternate ID being redeemed.
          type: string
        MarketplaceTransactionId:
          description: The transaction id in the external marketplace.
          type: string
        SuccessTimestamp:
          description: The timestamp for when the redeem was completed.
          type: string
      required:
        - SuccessTimestamp
  responses:
    RedeemGooglePlayInventoryItemsResponse:
      description: ''
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                type: integer
                description: >-
                  The Http status code. If X-ReportErrorAsSuccess header is set
                  to true, this will report the actual http error code.
              status:
                type: string
                description: The Http status code as a string.
              data:
                $ref: '#/components/schemas/RedeemGooglePlayInventoryItemsResponse'
            example:
              code: 200
              status: OK
              data:
                TransactionIds:
                  - transactionId1
                  - transactionId2
                Succeeded:
                  - SuccessCode: success
                    SuccessTimestamp: '2022-09-08T00:00:00'
                    MarketplaceTransactionId: marketplaceTransactionId1
                    MarketplaceAlternateId: MarketplaceAlternateId1
                  - SuccessCode: success
                    SuccessTimestamp: '2022-09-08T00:00:00'
                    MarketplaceTransactionId: marketplaceTransactionId2
                    MarketplaceAlternateId: MarketplaceAlternateId2
                Failed: []
    ApiErrorWrapper:
      description: This is the outer wrapper for all responses with errors
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorWrapper'
  securitySchemes:
    EntityToken:
      type: apiKey
      in: header
      name: X-EntityToken
      description: >-
        This API requires an Entity Session Token, available from the Entity
        GetEntityToken method.

````

## Related topics

- [Redeem Google Play Inventory Items](/api-reference/inventory/redeem-google-play-inventory-items.md)
- [PFInventoryRedeemGooglePlayInventoryItemsRequest](/services/playfab/api-references/c/pfinventorytypes/structs/pfinventoryredeemgoogleplayinventoryitemsrequest.md)
- [PFInventoryRedeemGooglePlayInventoryItemsAsync](/services/playfab/api-references/c/pfinventory/functions/pfinventoryredeemgoogleplayinventoryitemsasync.md)
- [PFInventoryRedeemGooglePlayInventoryItemsResponse](/services/playfab/api-references/c/pfinventorytypes/structs/pfinventoryredeemgoogleplayinventoryitemsresponse.md)
- [PFInventoryRedeemGooglePlayInventoryItemsGetResult](/services/playfab/api-references/c/pfinventory/functions/pfinventoryredeemgoogleplayinventoryitemsgetresult.md)
