Reloadly Orders API

Place and manage gift card orders.

OpenAPI Specification

reloadly-orders-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Reloadly Airtime Authentication Orders API
  description: The Reloadly Airtime API enables businesses to programmatically deliver mobile airtime top-ups and data bundles to phones across 170+ countries and 800+ mobile operators. The API supports both operator-specific and auto-detect top-ups, with real-time fulfillment and detailed transaction reporting. 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
servers:
- url: https://topups.reloadly.com
  description: Production Server
- url: https://topups-sandbox.reloadly.com
  description: Sandbox Server
security:
- bearerAuth: []
tags:
- name: Orders
  description: Place and manage gift card orders.
paths:
  /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'
components:
  schemas:
    RedeemInstruction:
      type: object
      properties:
        concise:
          type: string
          description: Brief redemption instructions
        verbose:
          type: string
          description: Detailed redemption instructions
    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
    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'
    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
    Brand:
      type: object
      properties:
        brandId:
          type: integer
          description: Unique brand identifier
        brandName:
          type: string
          description: Brand display name (e.g., Amazon, Apple, Netflix)
    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
    Error:
      type: object
      properties:
        timeStamp:
          type: string
          format: date-time
        message:
          type: string
        path:
          type: string
        errorCode:
          type: string
        infoLink:
          type: string
    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
  responses:
    Unauthorized:
      description: Missing or invalid authentication token
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Requested resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth 2.0 bearer token obtained via the /oauth/token endpoint using client credentials grant.
externalDocs:
  description: Reloadly Airtime API Reference
  url: https://docs.reloadly.com/airtime