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