> ## 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 la mejor oferta

getOfferQuote

Si tu objetivo es obtener la mejor tasa de cashback, la consulta `getOfferQuote` [query](https://storage.googleapis.com/fluz-public-docs/api-reference.html#query-getOfferQuote) te ayudará a encontrar la mejor oferta disponible para un comercio específico, adaptada a los criterios que proporciones.

## **Respuesta:**

La respuesta de la consulta getOfferQuote devuelve un objeto Offer, que contiene información detallada sobre la mejor oferta disponible para el comercio.

## **Argumentos:**

**`input (GetOfferQuoteInput!)`**:\
El objeto de entrada que especifica los criterios para recuperar la mejor oferta. Esta entrada es obligatoria y debe incluir el slug del comercio y otros detalles relevantes.

**Campos de `GetOfferQuoteInput`:**

**`slug (String!)`**:\
El identificador único slug del comercio. Este campo es obligatorio. Este slug se utiliza para especificar el comercio para el cual se solicita la oferta. Puedes usar la consulta `getMerchants` descrita anteriormente para obtener el slug de tu comercio.

**`denomination (Float!)`**:\
El monto de la compra para el cual se solicita la oferta. Este campo también es obligatorio y el valor de la denominación determinará qué ofertas están disponibles.

**`paymentMethod (PaymentMethodType):`**\
El método de pago que se utilizará para la compra. El valor predeterminado es `FLUZPAY`, tu saldo disponible en Fluz, pero se pueden especificar otros métodos de pago según la disponibilidad de la oferta. Estos incluyen:

* `BANK_CARD`
* `BANK_ACCOUNT`
* `PAYPAL`
* `FLUZPAY`
* `APPLE_PAY`
* `GOOGLE_PAY`

## Ejemplo de uso:

Así podrías estructurar una consulta getOfferQuote:

```graphql theme={null}
query getOfferQuote($input: GetOfferQuoteInput!) {
  getOfferQuote(input: $input) {
    offeringMerchantId
    offerId
    type
    hasStockInfo
    offerRates {
      ...OfferRateFragment
    }
    denominationsType
    termsAndConditions
    stockInfo {
      ... on StockInfoVariableType {
        __typename
        description
        maxDenomination
        minDenomination
      }
      ... on StockInfoFixedType {
        __typename
        denomination
        availableStock
      }
    }
  }
}
```

### Detalles de la respuesta

El objeto `Offer` representa los detalles de la oferta asociada con el comercio.

**`offeringMerchantId (UUID)`** : El id único del comercio que ofrece la oferta.

**`offerId (UUID!)`**: El id único de la oferta.

**`type (OfferType)`**: Indica el tipo de oferta. Puede ser una oferta estándar de tarjeta de regalo o una oferta de tasa exclusiva. \[Ejemplo: GIFT\_CARD\_OFFER, EXCLUSIVE\_RATE\_OFFER].

**`hasStockInfo (Boolean)`**: Especifica si la oferta incluye información de inventario. Si es true, el campo stockInfo se completará con las denominaciones disponibles.

**`denominationsType (OfferDenominationType)`**: 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.

**`termsAndConditions (String)`**: El texto de términos y condiciones para esta oferta (lenguaje legal, restricciones, políticas de vencimiento). Úsalo para mostrar los TyC a los usuarios finales antes de que compren una tarjeta de regalo.

**`stockInfo ([StockInfoType]!)`** StockInfo es una lista de denominaciones disponibles para una oferta específica. Este objeto de campo solo está disponible si el hasStockInfo de la oferta es true. Esto requiere que Fluz confirme el inventario. Ten en cuenta que el tiempo de respuesta varía según los proveedores. El campo stockInfo devolverá información de forma condicional dependiendo del tipo `VARIABLE` o `FIXED`. Para consultar stockInfo, deberás usar un fragmento en línea utilizando 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`.

Respuesta de ejemplo:

```json theme={null}
{
  "data": {
    "getOfferQuote": {
      "offeringMerchantId": "7b4280a6-dadc-4cf3-a99a-70d291e43c1c",
      "offerId": "7b4280a6-dadc-4cf3-a99a-70d291e43c1c",
      "type": "GIFT_CARD_OFFER",
      "hasStockInfo": true,
      "offerRates": [],
      "denominationsType": "VARIABLE",
      "termsAndConditions": "Card valid only for purchases on the merchant's U.S. website. Cannot be used to purchase other gift cards. Not redeemable for cash except where required by law.",
      "stockInfo": [
        {
          "__typename": "StockInfoVariableType",
          "description": "Available denominations range from $5 to $200",
          "maxDenomination": "200",
          "minDenomination": "5"
        }
      ]
    }
  }
}
```

Para más detalles, consulta el artículo [Cómo funciona la API de GraphQL](/concepts/graphql).

El objeto `OfferRate` representa las tasas de recompensa específicas y las condiciones 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:

**`maxUserRewardValue (Float)`**:\
El valor máximo de cashback que un usuario puede recibir. Este campo define el límite superior del monto de la recompensa que un usuario puede ganar para una oferta específica.

**`cashbackVoucherRewardValue (Float)`**:\
El valor de cashback después de que se aplica un boost a la oferta. Típicamente, este es un boost de cashback del 25% en los primeros \$10 de tu gasto.

**`boostRewardValue (Float)`**:\
Cuando el valor de cashback de una oferta ha sido incrementado, 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 que están 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.

> 🚧 Las tasas de cashback están sujetas a cambios.
>
> Hacemos todo lo posible para ofrecer siempre a nuestros clientes las mejores ofertas disponibles. Esto significa que nuestras tasas cambian regularmente. Confirma siempre la tasa antes de realizar una compra.

<br />

<StickyContactSalesBanner />
