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

# Obtener ofertas de tarjetas de regalo

**Alcance requerido:** `LIST_OFFERS` ([Enlace a la referencia de la API](https://storage.googleapis.com/fluz-public-docs/api-reference.html#query-getMerchants))

Esta página detalla cómo recuperar y entender las ofertas de tarjetas de regalo usando la consulta `getMerchants`. Las ofertas de tarjetas de regalo normalmente incluyen tipos como `GIFT_CARD_OFFER` y `EXCLUSIVE_RATE_OFFER`.

Para obtener solo ofertas de tarjetas de regalo, usa el argumento de entrada `offerTypes` configurado como `{ giftCardOffer: true, cardLinkedOffer: false }`.

## Consulta detallada para ofertas de tarjetas de regalo

Esta consulta solicita campos específicamente relevantes para tarjetas de regalo, incluyendo tasas de recompensa (`offerRates`) y disponibilidad de inventario (`stockInfo`).

**Solicitud de ejemplo:**

```graphql theme={null}
# Define the query with variables
query GetGiftCardMerchants(
  $name: String,
  $paginate: OffsetInput,
  $offerTypes: OfferTypesInput  # Define the input type for offerTypes (optional)
) {
  getMerchants(
    name: $name,
    paginate: $paginate,
    offerTypes: $offerTypes  # Pass the variable here (optional)
  ) {
    merchantId
    name
    slug
    logoUrl        # Merchant logo image URL
    faceplateUrl   # Rectangular card art/faceplate image URL
    shortDescription   # Short marketing description of the merchant

    offers {
      offerId
      exclusiveRateId   # Optional, only returns for type = EXCLUSIVE_RATE_OFFER
      type
      deliveryFormat    # How the gift card will be delivered (URL, CODES, etc.)
      barcodeType       # Barcode format (NONE, C128, PDF417, QRCODE)
      hasStockInfo
      denominationsType # FIXED or VARIABLE
      termsAndConditions # Offer T&C text (legal language, restrictions, expiration)

      # --- Offer Rates (Relevant for Gift Cards) ---
      offerRates {
        maxUserRewardValue
        cashbackVoucherRewardValue
        boostRewardValue
        displayBoostReward
        denominations
        allowedPaymentMethods
      }

      # --- Stock Info (Relevant for Gift Cards) ---
      stockInfo {
        ... on StockInfoVariableType {
          __typename
          description
          maxDenomination
          minDenomination
        }
        ... on StockInfoFixedType {
          __typename
          denomination
          availableStock
        }
      }

      # --- CLO Details (Will be null for Gift Cards) ---
      # cloDetails { currentRateType }  # Can query, but expect null
    }
  }
}

# Example Variables to pass with the query:
# {
#   "paginate": { "limit": 20, "offset": 0 },
#   "offerTypes": { "giftCardOffer": true, "cardLinkedOffer": false }
# }
```

<Callout icon="📘">
  Ten en cuenta que, debido a la limitación de tasa, es posible que necesites paginar y llamar a la lista de comercios varias veces.
</Callout>

## Respuesta de ejemplo (al filtrar por ofertas de tarjetas de regalo):

La respuesta contendrá comercios, pero el arreglo de ofertas para cada comercio solo incluirá ofertas que coincidan con el filtro de offerTypes (en este caso, ofertas de tarjetas de regalo).

```json JSON theme={null}
{
  "data": {
    "getMerchants": [
      {
        "merchantId": "123e4567-e89b-12d3-a456-426614174000",
        "name": "Best Buy",
        "slug": "best-buy",
        "logoUrl": "https://storage.googleapis.com/.../best-buy-logo.jpg",
        "faceplateUrl": "https://storage.googleapis.com/.../best-buy-faceplate.png",
        "shortDescription": "America's leading destination for tech, gadgets, and home electronics.",
        "offers": [
          {
            "offeringMerchantId": "255f8245-02c7-4817-901e-15fe265f6968",
            "offerId": "1a2b3c4d-5e6f-7g8h-9i10-jk11l12m13n14",
            "exclusiveRateId": null,
            "type": "GIFT_CARD_OFFER",
            "deliveryFormat": "CODES",
            "barcodeType": "C128",
            "hasStockInfo": true,
            "offerRates": [
              {
                "maxUserRewardValue": 50.0,
                "cashbackVoucherRewardValue": 5.0,
                "boostRewardValue": 10.0,
                "displayBoostReward": true,
                "denominations": ["10", "500"],
                "allowedPaymentMethods": ["CREDIT_CARD", "DEBIT_CARD"]
              }
            ],
            "denominationsType": "FIXED",
            "termsAndConditions": "Card valid only at Best Buy U.S. retail stores and BestBuy.com. Cannot be used to purchase other gift cards. Not redeemable for cash except where required by law.",
            "stockInfo": [
              {
                "__typename": "StockInfoFixedType",
                "denomination": 500,
                "availableStock": 200
              }
            ]
          }
        ]
      },
      {
        "merchantId": "223e4567-e89b-12d3-a456-426614174001",
        "name": "H&M",
        "slug": "h&m",
        "logoUrl": "https://storage.googleapis.com/.../hm-logo.jpg",
        "faceplateUrl": null,
        "shortDescription": "Affordable fashion for women, men, and kids — from staples to seasonal collections.",
        "offers": [
          {
            "offeringMerchantId": "3c7b4d5e-6f7g-8h9i-10jk-11l12m13n14o",
            "offerId": "2a2b3c4d-5e6f-7g8h-9i10-jk11l12m13n15",
            "exclusiveRateId": "0c8e6beb-5d62-4a0c-ae94-b889395f1e2d",
            "type": "EXCLUSIVE_RATE_OFFER",
            "deliveryFormat": "URL",
            "barcodeType": "NONE",
            "hasStockInfo": false,
            "offerRates": [
              {
                "maxUserRewardValue": 30.0,
                "cashbackVoucherRewardValue": 3.0,
                "boostRewardValue": 8.0,
                "displayBoostReward": false,
                "denominations": ["20", "50", "100"],
                "allowedPaymentMethods": ["CREDIT_CARD", "PAYPAL"]
              }
            ],
            "denominationsType": "FIXED",
            "termsAndConditions": "Redeemable online at hm.com or any H&M retail store in the U.S. Cannot be redeemed for cash except where required by law.",
            "stockInfo": []
          }
        ]
      }
    ]
  }
}
```

### Entendiendo el arreglo 'Offers':

El campo offers dentro del objeto `Merchant` contiene un arreglo de objetos `Offer`. El objeto offer contiene información sobre ofertas específicas disponibles de comercios en el catálogo de Fluz. A continuación se incluyen los campos:

<Table align={["left","left","left"]}>
  <thead>
    <tr>
      <th>
        Nombre del campo
      </th>

      <th>
        Tipo
      </th>

      <th>
        Descripción
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        offeringMerchantId
      </td>

      <td>
        UUID!
      </td>

      <td>
        Un identificador único para el comercio que ofrece la oferta o descuento específico. Este es un campo obligatorio y debe ser un UUID válido.
      </td>
    </tr>

    <tr>
      <td>
        offerId
      </td>

      <td>
        UUID!
      </td>

      <td>
        Un identificador único para la oferta en sí.
      </td>
    </tr>

    <tr>
      <td>
        exclusiveRateId
      </td>

      <td>
        UUID
      </td>

      <td>
        El exclusive\_rate\_id de la oferta. Solo se devuelve para type = EXCLUSIVE\_RATE\_OFFER. Este valor se puede pasar a purchaseGiftCard para especificar la tarifa exclusiva con la que deseas comprar.
      </td>
    </tr>

    <tr>
      <td>
        type
      </td>

      <td>
        String!
      </td>

      <td>
        Indica el tipo de la oferta. Puede ser una oferta estándar de tarjeta de regalo o una oferta con tarifa exclusiva.
      </td>
    </tr>

    <tr>
      <td>
        deliveryFormat
      </td>

      <td>
        DeliveryFormatType
      </td>

      <td>
        Especifica cómo se entregará la tarjeta de regalo al usuario. Valores posibles: URL, CODES, PIN\_AS\_CODE, PIN\_WITH\_URL, CODE\_WITH\_PREFIX. Esto determina cómo el usuario recibirá y canjeará la tarjeta de regalo.
      </td>
    </tr>

    <tr>
      <td>
        barcodeType
      </td>

      <td>
        BarcodeTypeEnum
      </td>

      <td>
        Especifica el formato de código de barras para esta oferta. Valores posibles: NONE (sin código de barras; considera mostrar faceplateUrl en su lugar), C128 (Code 128), PDF417, QRCODE. Usa esto para determinar si debes renderizar un código de barras en tu UI.
      </td>
    </tr>

    <tr>
      <td>
        hasStockInfo
      </td>

      <td>
        Boolean
      </td>

      <td>
        Especifica si la oferta incluye información de inventario. Si es true, el campo stockInfo se completará con las denominaciones disponibles.
      </td>
    </tr>

    <tr>
      <td>
        offerRates
      </td>

      <td>
        \[OfferRate]
      </td>

      <td>
        Representa las tasas de recompensa y condiciones específicas asociadas con una oferta.
      </td>
    </tr>

    <tr>
      <td>
        denominationsType
      </td>

      <td>
        OfferDenominationType
      </td>

      <td>
        Define el tipo de denominaciones disponibles para la oferta. Este campo se usa para especificar cómo está estructurado el valor de la oferta, como denominaciones fijas o variables.
      </td>
    </tr>

    <tr>
      <td>
        termsAndConditions
      </td>

      <td>
        String
      </td>

      <td>
        El texto de términos y condiciones para esta oferta (lenguaje legal, restricciones, políticas de vencimiento). Usa esto para mostrar los T\&C a los usuarios finales antes de que compren una tarjeta de regalo.
      </td>
    </tr>

    <tr>
      <td>
        stockInfo
      </td>

      <td>
        \[StockInfoType]!
      </td>

      <td>
        StockInfo es una lista de denominaciones disponibles para una oferta específica. Solo está disponible si la oferta tiene hasStockInfo. Esto requiere que Fluz confirme el inventario; el tiempo de respuesta varía según los proveedores. El campo stockInfo devolverá información condicionalmente dependiendo del tipo `VARIABLE` o `FIXED`. Para consultar stockInfo, deberás utilizar un fragmento en línea usando la palabra clave `... on`. Esto devolverá `StockInfoVariableType` si el tipo de denominación es `VARIABLE` o `StockInfoFixedType` si el tipo de denominación es `FIXED`.

        Para más detalles, consulta el artículo [Cómo funciona la API GraphQL](/concepts/graphql).
      </td>
    </tr>
  </tbody>
</Table>

### Entendiendo la 'Offer rate':

El objeto `OfferRate` representa las tasas de recompensa y condiciones específicas asociadas con una oferta. Este objeto contiene información detallada sobre las recompensas que los usuarios pueden recibir cuando aprovechan una oferta, así como las condiciones bajo las cuales aplican estas recompensas:

| Nombre del campo           | Tipo      | Descripción                                                                                                                                                                                                                                                 |
| :------------------------- | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| maxUserRewardValue         | Float     | El valor máximo de cashback que un usuario puede recibir. Este campo define el límite superior del monto de recompensa que un usuario puede ganar para una oferta específica.                                                                               |
| cashbackVoucherRewardValue | Float     | El valor de cashback después de que se aplique un boost a la oferta. Normalmente esto es un boost de cashback del 25% en los primeros \$10 de tu gasto.                                                                                                     |
| boostRewardValue           | Float     | Cuando el valor de cashback se incrementa en una oferta, se mostrará aquí. Estas ofertas son un incentivo adicional que puede ofrecerse a los usuarios por un período de tiempo.                                                                            |
| displayBoostReward         | Boolean   | Indica si el boost de recompensa debe mostrarse al usuario. Este campo se utiliza para controlar la visibilidad del boost en la interfaz de usuario.                                                                                                        |
| denominations              | \[String] | Un arreglo de denominaciones que son elegibles para la oferta. Estas denominaciones representan montos específicos (por ejemplo, "10", "25", "50") que son aplicables para la oferta, definiendo los valores monetarios que califican para las recompensas. |
| allowedPaymentMethods      | \[String] | Un arreglo de métodos de pago permitidos para esta oferta. Este campo especifica qué métodos de pago (por ejemplo, "CREDIT\_CARD", "PAYPAL") puede usar el usuario para aprovechar la oferta.                                                               |

<br />

<StickyContactSalesBanner />
