Skip to main content
POST
/
getAirmilesCatalog
Get Airmiles Catalog API
curl --request POST \
  --url https://stagingstores.xoxoday.com/chef/v1/oauth/api/getAirmilesCatalog \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "query": "plumProAPI.mutation.getVouchers",
  "tag": "plumProAPI",
  "variables": {
    "data": {
      "categoryType": "miles",
      "limit": 10,
      "page": 1,
      "includeProducts": "23421",
      "excludeProducts": "24456",
      "exchangeRate": 1,
      "sort": {
        "field": "name",
        "order": "ASC"
      }
    }
  }
}
'
{
  "data": {
    "getVouchers": {
      "status": 123,
      "data": [
        {
          "productId": 123,
          "name": "<string>",
          "description": "<string>",
          "orderQuantityLimit": 123,
          "imageUrl": "<string>",
          "currencyCode": "<string>",
          "countryName": "<string>",
          "countryCode": "<string>",
          "valueType": "<string>",
          "maxValue": 123,
          "minValue": 123,
          "valueDenominations": "<string>",
          "deliveryType": "<string>",
          "usageType": "<string>",
          "fee": 123,
          "discount": 123,
          "exchangeRate": 123,
          "loyaltyName": "<string>",
          "loyaltyConversion": 123,
          "isPhoneNumberMandatory": true,
          "isRecommended": 123
        }
      ]
    }
  }
}

Documentation Index

Fetch the complete documentation index at: https://help-plum.xoxoday.com/llms.txt

Use this file to discover all available pages before exploring further.

Get Airmiles Catalog

Retrieve a curated list of available Airmiles programs to transfer miles. Endpoint: POST /getAirmilesCatalog

Request Schema

ParameterTypeDescription
limitIntNumber of results to return per page (used for pagination).
pageIntPage number of results to fetch when using pagination.
includeProductsStringComma-separated list of product IDs to explicitly include in the response.
excludeProductsStringComma-separated list of product IDs to explicitly exclude from the response.
sortSortDataSorting configuration (e.g., by price, name, popularity).
sort.fieldStringThe field name to sort by (e.g., "name").
sort.orderStringSorting order — "ASC" for ascending or "DESC" for descending.
filtersArray<Object>List of filters to apply. Each filter object must contain a key and value.
filters.keyStringThe filter key (e.g., country, currency, product_category).
filters.valueStringThe filter value corresponding to the key (e.g., IN, USD, Electronics).

Response Schema

PathTypeDescription
dataobjectRoot response object.
data.getVouchersobjectContainer for catalogue data.
data.getVouchers.statusnumberAPI execution status (1 = success).
data.getVouchers.dataarrayList of voucher products.
data.getVouchers.data[].productIdnumberUnique identifier for the voucher product.
data.getVouchers.data[].namestringProduct name.
data.getVouchers.data[].descriptionstring (HTML)Description (supports HTML content).
data.getVouchers.data[].orderQuantityLimitnumberMaximum quantity allowed per order.
data.getVouchers.data[].termsAndConditionsInstructionsstring (HTML)Terms & conditions; may contain HTML and links.
data.getVouchers.data[].brandarrayBrand metadata (may be empty).
data.getVouchers.data[].expiryAndValiditystring (HTML)Voucher validity details.
data.getVouchers.data[].redemptionInstructionsstring (HTML)Instructions for redeeming the voucher.
data.getVouchers.data[].categoriesstringComma-separated list of product categories.
data.getVouchers.data[].lastUpdateDatestringLast update timestamp.
data.getVouchers.data[].imageUrlstringProduct image URL.
data.getVouchers.data[].currencyCodestringCurrency code.
data.getVouchers.data[].currencyNamestringCurrency name.
data.getVouchers.data[].countryNamestringCountry where product is redeemable.
data.getVouchers.data[].countryCodestringISO country code.
data.getVouchers.data[].countriesarrayList of redemption countries.
data.getVouchers.data[].countries[].codestringCountry ISO code.
data.getVouchers.data[].countries[].namestringCountry name.
data.getVouchers.data[].valueTypestringDenomination type — fixed_denomination or open_value.
data.getVouchers.data[].maxValuenumberMaximum value (for open value vouchers).
data.getVouchers.data[].minValuenumberMinimum value.
data.getVouchers.data[].valueDenominationsstringComma-separated fixed denominations.
data.getVouchers.data[].tatInDaysstringDelivery turnaround time.
data.getVouchers.data[].usageTypestringonline, offline, or both.
data.getVouchers.data[].deliveryTypestringrealtime or delayed.
data.getVouchers.data[].feenumberAdditional fee applied (in %).
data.getVouchers.data[].discountnumberDiscount applied (in %).
data.getVouchers.data[].exchangeRatenumberFX conversion rate used.
data.getVouchers.data[].isPhoneNumberMandatorybooleanWhether phone number is required at checkout.
data.getVouchers.data[].variantsarray | nullProduct variants (if any).
data.getVouchers.data[].isRecommendednumberRecommendation flag (0 or 1).
data.getVouchers.data[].filterGroupCodestringFilter group identifier.
data.getVouchers.data[].productMetastring (JSON)JSON structure defining dynamic checkout fields (e.g., email validation).
data.getVouchers.data[].loyaltyNamestring | nullLoyalty program name.
data.getVouchers.data[].loyaltyConversionnumber | nullConversion factor for loyalty points.
data.getVouchers.data[].metaDatastring | nullAdditional metadata.
data.getVouchers.data[].showDiscountPercentnumberWhether discount percent should be displayed.
data.getVouchers.data[].productImagesarrayAdditional product images.
data.getVouchers.data[].parentProductIdnumber | nullParent product reference.
data.getVouchers.data[].isDummyProductnumberIndicates if item is dummy/test (0 or 1).
data.getVouchers.data[].redemptionFeenumberRedemption fee amount.
data.getVouchers.data[].redemptionFeeTypestringpercentage or fixed.
data.getVouchers.data[].redemptionFeeBorneByUserbooleanWhether user pays the redemption fee.
data.getVouchers.data[].redemptionFeeTaxnumberTax on redemption fee.
data.getVouchers.data[].is_freenumberWhether voucher is free (0 = paid, 1 = free).

Filter Reference

KeyValue TypeDescription
productNameStringProduct names to be included.
countryStringCountries to be included.
priceStringPrice range filters to be included.
minPriceStringMinimum price of the products looked for.
maxPriceStringMaximum price of the products looked for.
currencyCodeStringCurrency codes to be included.
deliveryTypeStringDelivery type of the voucher (realtime or delayed).

Implementation Notes

  1. To fetch exchangeRate, pass "exchangeRate": 1 in the request body.
  2. To fetch the list of available filters, use the GetFilters API.
  3. To fetch airmiles products, pass "categoryType": "miles" in the request body.
  4. If a product’s valueType is "open_value", refer to the minValue and maxValue fields for the allowed range.
  5. The fee and discount fields are expressed as percentages (%).
  6. It is recommended to cache the catalog response in your database and sync periodically rather than calling on every request.
  7. When filtering by minPrice / maxPrice, always include currencyCode as well — without it, the price filter applies across all currencies.

See also: Error Handling · Rate Limiting · Best Practices

Authorizations

Authorization
string
header
required

Authorization: Bearer <access_token>

Body

application/json
query
enum<string>
default:plumProAPI.mutation.getVouchers
required
Available options:
plumProAPI.mutation.getVouchers
tag
enum<string>
default:plumProAPI
required
Available options:
plumProAPI
variables
object
required

Response

Airmiles catalog returned successfully.

data
object