Reloadly Transactions API

List and retrieve top-up transaction history.

OpenAPI Specification

reloadly-transactions-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Reloadly Airtime Authentication Transactions 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: Transactions
  description: List and retrieve top-up transaction history.
paths:
  /topups/transactions:
    get:
      operationId: listTopUpTransactions
      summary: List Top-Up Transactions
      description: Retrieve a paginated list of all airtime top-up transactions. Supports filtering by date range, phone number, and status.
      tags:
      - Transactions
      parameters:
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/SizeParam'
      - name: startDate
        in: query
        description: Filter from this date (YYYY-MM-DD)
        schema:
          type: string
          format: date
      - name: endDate
        in: query
        description: Filter to this date (YYYY-MM-DD)
        schema:
          type: string
          format: date
      responses:
        '200':
          description: Paginated list of top-up transactions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsPage'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /topups/transactions/{transactionId}:
    get:
      operationId: getTopUpTransaction
      summary: Get Top-Up Transaction
      description: Retrieve details for a specific airtime top-up transaction.
      tags:
      - Transactions
      parameters:
      - name: transactionId
        in: path
        required: true
        description: Unique transaction identifier
        schema:
          type: integer
      responses:
        '200':
          description: Transaction details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TopUpTransaction'
        '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_2'
        '401':
          $ref: '#/components/responses/Unauthorized'
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
    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
    Brand:
      type: object
      properties:
        brandId:
          type: integer
          description: Unique brand identifier
        brandName:
          type: string
          description: Brand display name (e.g., Amazon, Apple, Netflix)
    TopUpTransaction:
      type: object
      properties:
        transactionId:
          type: integer
        status:
          type: string
          enum:
          - SUCCESSFUL
          - REFUNDED
          - FAILED
        operatorTransactionId:
          type: string
          description: Transaction ID from the mobile operator
        customIdentifier:
          type: string
        recipientPhone:
          type: string
        recipientEmail:
          type: string
        senderPhone:
          type: string
        countryCode:
          type: string
        operatorId:
          type: integer
        operatorName:
          type: string
        discount:
          type: number
        discountCurrencyCode:
          type: string
        requestedAmount:
          type: number
        requestedAmountCurrencyCode:
          type: string
        deliveredAmount:
          type: number
        deliveredAmountCurrencyCode:
          type: string
        transactionDate:
          type: string
          format: date-time
    TransactionsPage:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/TopUpTransaction'
        totalElements:
          type: integer
        totalPages:
          type: integer
        last:
          type: boolean
        number:
          type: integer
        size:
          type: integer
    TransactionsPage_2:
      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
    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'
  responses:
    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'
  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
  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