Reloadly Gift Cards API

Order and manage digital gift cards across 3,000+ global brands including Amazon, Apple, Netflix, Spotify, and Uber. Supports 14,000+ products in 140+ countries with multi-currency payouts and real-time fulfillment.

OpenAPI Specification

reloadly-gift-cards-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Reloadly Gift Cards API
  description: >-
    The Reloadly Gift Cards API enables businesses to discover, order, and
    manage digital gift cards across 3,000+ global brands and 14,000+ products
    in 140+ countries. The API supports multi-currency payouts in USD, EUR, CAD,
    and GBP with real-time order fulfillment. Authentication uses OAuth 2.0
    client credentials with separate sandbox and production environments.
  version: '1.0.0'
  contact:
    name: Reloadly Support
    url: https://support.reloadly.com
  termsOfService: https://www.reloadly.com/terms
externalDocs:
  description: Reloadly Gift Cards API Reference
  url: https://docs.reloadly.com/gift-cards
servers:
  - url: https://giftcards.reloadly.com
    description: Production Server
  - url: https://giftcards-sandbox.reloadly.com
    description: Sandbox Server
tags:
  - name: Authentication
    description: Obtain OAuth 2.0 access tokens for API authorization.
  - name: Products
    description: Browse and search the gift card product catalog.
  - name: Discounts
    description: Retrieve discount rates available on gift card products.
  - name: Orders
    description: Place and manage gift card orders.
  - name: Transactions
    description: List and retrieve transaction history and details.
  - name: Balance
    description: Check your Reloadly account balance.
security:
  - bearerAuth: []
paths:
  /oauth/token:
    post:
      operationId: getAccessToken
      summary: Get Access Token
      description: >-
        Exchange your client credentials for an OAuth 2.0 bearer access token.
        Tokens are valid for 60 days in production and 24 hours in sandbox.
        Use the audience parameter to specify which service the token is for.
      tags:
        - Authentication
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenRequest'
      responses:
        '200':
          description: Access token issued successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /products:
    get:
      operationId: listProducts
      summary: List Products
      description: >-
        Retrieve a paginated list of available gift card products. Supports
        filtering by country, currency, and product category. Returns brand
        details, denominations, discount rates, and redemption instructions.
      tags:
        - Products
      parameters:
        - $ref: '#/components/parameters/PageParam'
        - $ref: '#/components/parameters/SizeParam'
        - name: countryCode
          in: query
          description: Filter by ISO 3166-1 alpha-2 country code
          schema:
            type: string
            example: US
        - name: currencyCode
          in: query
          description: Filter by ISO 4217 currency code
          schema:
            type: string
            example: USD
        - name: includeRange
          in: query
          description: Include range-denomination products
          schema:
            type: boolean
        - name: includeFixed
          in: query
          description: Include fixed-denomination products
          schema:
            type: boolean
      responses:
        '200':
          description: Paginated list of gift card products
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductsPage'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /products/{productId}:
    get:
      operationId: getProduct
      summary: Get Product
      description: >-
        Retrieve full details for a specific gift card product including
        available denominations, discount rate, redemption instructions,
        supported countries, and brand information.
      tags:
        - Products
      parameters:
        - name: productId
          in: path
          required: true
          description: Unique identifier of the gift card product
          schema:
            type: integer
      responses:
        '200':
          description: Gift card product details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /discounts:
    get:
      operationId: listDiscounts
      summary: List Discounts
      description: >-
        Retrieve available discount rates for all gift card products.
        Returns the percentage discount applied to face value at purchase.
      tags:
        - Discounts
      parameters:
        - $ref: '#/components/parameters/PageParam'
        - $ref: '#/components/parameters/SizeParam'
      responses:
        '200':
          description: Paginated list of product discounts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiscountsPage'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /discounts/products/{productId}:
    get:
      operationId: getProductDiscount
      summary: Get Product Discount
      description: >-
        Retrieve the discount rate for a specific gift card product.
      tags:
        - Discounts
      parameters:
        - name: productId
          in: path
          required: true
          description: Unique identifier of the gift card product
          schema:
            type: integer
      responses:
        '200':
          description: Product discount details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Discount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /orders:
    post:
      operationId: placeOrder
      summary: Place Order
      description: >-
        Place a gift card order for a specific product and denomination.
        Successful orders return an order object with the gift card code,
        PIN, and redemption instructions. Orders are fulfilled in real-time.
      tags:
        - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderRequest'
      responses:
        '200':
          description: Order placed and gift card delivered
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /orders/{orderId}:
    get:
      operationId: getOrder
      summary: Get Order
      description: >-
        Retrieve the details of a specific gift card order including the
        gift card code, PIN, redemption instructions, and order status.
      tags:
        - Orders
      parameters:
        - name: orderId
          in: path
          required: true
          description: Unique identifier of the order
          schema:
            type: integer
      responses:
        '200':
          description: Order details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /transactions:
    get:
      operationId: listTransactions
      summary: List Transactions
      description: >-
        Retrieve a paginated list of all transactions on the account including
        gift card orders, balance top-ups, and refunds. Supports filtering
        by date range and transaction type.
      tags:
        - Transactions
      parameters:
        - $ref: '#/components/parameters/PageParam'
        - $ref: '#/components/parameters/SizeParam'
        - name: startDate
          in: query
          description: Filter transactions from this date (YYYY-MM-DD)
          schema:
            type: string
            format: date
        - name: endDate
          in: query
          description: Filter transactions to this date (YYYY-MM-DD)
          schema:
            type: string
            format: date
      responses:
        '200':
          description: Paginated list of transactions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsPage'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /accounts/balance:
    get:
      operationId: getBalance
      summary: Get Account Balance
      description: >-
        Retrieve the current balance of your Reloadly account including
        available balance and currency.
      tags:
        - Balance
      responses:
        '200':
          description: Account balance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Balance'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        OAuth 2.0 bearer token obtained via the /oauth/token endpoint using
        client credentials grant. Tokens expire after 60 days in production.
  parameters:
    PageParam:
      name: page
      in: query
      description: Page number (1-based)
      schema:
        type: integer
        minimum: 1
        default: 1
    SizeParam:
      name: size
      in: query
      description: Number of results per page
      schema:
        type: integer
        minimum: 1
        maximum: 200
        default: 25
  schemas:
    TokenRequest:
      type: object
      required:
        - client_id
        - client_secret
        - grant_type
        - audience
      properties:
        client_id:
          type: string
          description: Your Reloadly API client ID
        client_secret:
          type: string
          description: Your Reloadly API client secret
        grant_type:
          type: string
          enum:
            - client_credentials
          description: OAuth 2.0 grant type
        audience:
          type: string
          description: >-
            The API audience URL for the service you are accessing
            (e.g., https://giftcards.reloadly.com)
          example: https://giftcards.reloadly.com
    TokenResponse:
      type: object
      properties:
        access_token:
          type: string
          description: The OAuth 2.0 bearer access token
        scope:
          type: string
          description: Granted OAuth scopes
        expires_in:
          type: integer
          description: Token expiration time in seconds
        token_type:
          type: string
          description: Token type (Bearer)
    Product:
      type: object
      properties:
        productId:
          type: integer
          description: Unique product identifier
        productName:
          type: string
          description: Display name of the gift card product
        global:
          type: boolean
          description: Whether the product is redeemable globally
        supportsPreOrder:
          type: boolean
          description: Whether pre-ordering is supported
        senderFee:
          type: number
          format: double
          description: Fee charged to the sender
        discountPercentage:
          type: number
          format: double
          description: Discount percentage applied to the face value
        denominationType:
          type: string
          enum:
            - FIXED
            - RANGE
          description: Whether the product has fixed or range denominations
        recipientCurrencyCode:
          type: string
          description: Currency code for the recipient
        minRecipientDenomination:
          type: number
          description: Minimum denomination for range products
        maxRecipientDenomination:
          type: number
          description: Maximum denomination for range products
        senderCurrencyCode:
          type: string
          description: Currency code for the sender
        minSenderDenomination:
          type: number
          description: Minimum sender denomination for range products
        maxSenderDenomination:
          type: number
          description: Maximum sender denomination for range products
        fixedRecipientDenominations:
          type: array
          items:
            type: number
          description: Available fixed denomination amounts for the recipient
        fixedSenderDenominations:
          type: array
          items:
            type: number
          description: Available fixed denomination amounts for the sender
        brand:
          $ref: '#/components/schemas/Brand'
        country:
          $ref: '#/components/schemas/Country'
        redeemInstruction:
          $ref: '#/components/schemas/RedeemInstruction'
    Brand:
      type: object
      properties:
        brandId:
          type: integer
          description: Unique brand identifier
        brandName:
          type: string
          description: Brand display name (e.g., Amazon, Apple, Netflix)
    Country:
      type: object
      properties:
        isoName:
          type: string
          description: ISO 3166-1 alpha-2 country code
        name:
          type: string
          description: Country display name
        flagUrl:
          type: string
          format: uri
          description: URL to the country flag image
    RedeemInstruction:
      type: object
      properties:
        concise:
          type: string
          description: Brief redemption instructions
        verbose:
          type: string
          description: Detailed redemption instructions
    Discount:
      type: object
      properties:
        product:
          $ref: '#/components/schemas/Product'
        percentage:
          type: number
          format: double
          description: Discount percentage on the face value
    OrderRequest:
      type: object
      required:
        - productId
        - quantity
        - unitPrice
        - senderName
        - recipientEmail
      properties:
        productId:
          type: integer
          description: ID of the gift card product to order
        quantity:
          type: integer
          description: Number of gift cards to order
          minimum: 1
          maximum: 100
        unitPrice:
          type: number
          format: double
          description: Price per gift card in sender currency
        customIdentifier:
          type: string
          description: Custom reference identifier for the order
        senderName:
          type: string
          description: Name of the sender
        recipientEmail:
          type: string
          format: email
          description: Email address of the recipient
        preOrder:
          type: boolean
          description: Whether to place a pre-order
    Order:
      type: object
      properties:
        transactionId:
          type: integer
          description: Unique transaction identifier
        amount:
          type: number
          format: double
          description: Amount charged for the order
        discount:
          type: number
          format: double
          description: Discount amount applied
        currencyCode:
          type: string
          description: Currency code for the transaction
        fee:
          type: number
          format: double
          description: Processing fee
        recipientEmail:
          type: string
          format: email
          description: Recipient email address
        customIdentifier:
          type: string
          description: Custom identifier provided at order time
        status:
          type: string
          description: Order status
        product:
          $ref: '#/components/schemas/Product'
        smiles:
          type: array
          items:
            $ref: '#/components/schemas/GiftCard'
          description: Array of gift card codes delivered
        date:
          type: string
          format: date-time
          description: Order timestamp
    GiftCard:
      type: object
      properties:
        code:
          type: string
          description: Gift card redemption code
        pinCode:
          type: string
          description: PIN code if required for redemption
        validity:
          type: string
          description: Expiration date or validity information
    Transaction:
      type: object
      properties:
        transactionId:
          type: integer
          description: Unique transaction identifier
        amount:
          type: number
          format: double
          description: Transaction amount
        discount:
          type: number
          format: double
          description: Discount applied
        currencyCode:
          type: string
          description: Currency code
        fee:
          type: number
          format: double
          description: Processing fee
        status:
          type: string
          description: Transaction status
        product:
          $ref: '#/components/schemas/Product'
        date:
          type: string
          format: date-time
          description: Transaction timestamp
    Balance:
      type: object
      properties:
        balance:
          type: number
          format: double
          description: Available account balance
        currencyCode:
          type: string
          description: Currency code for the balance
        updatedAt:
          type: string
          format: date-time
          description: When the balance was last updated
    ProductsPage:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Product'
        totalElements:
          type: integer
        totalPages:
          type: integer
        last:
          type: boolean
        number:
          type: integer
        size:
          type: integer
    DiscountsPage:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Discount'
        totalElements:
          type: integer
        totalPages:
          type: integer
        last:
          type: boolean
        number:
          type: integer
        size:
          type: integer
    TransactionsPage:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Transaction'
        totalElements:
          type: integer
        totalPages:
          type: integer
        last:
          type: boolean
        number:
          type: integer
        size:
          type: integer
    Error:
      type: object
      properties:
        timeStamp:
          type: string
          format: date-time
        message:
          type: string
        path:
          type: string
        errorCode:
          type: string
        infoLink:
          type: string
  responses:
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing or invalid authentication token
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Requested resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'