Zendit Mobile Top-Up API

Mobile credit top-ups, bundles, and data plans

OpenAPI Specification

zendit-mobile-top-up-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Zendit Account Mobile Top-Up API
  description: The Zendit API provides programmatic access to a global prepaid ecosystem, enabling mobile credit top-ups, data packages, digital gift cards, prepaid utility bill payments, and eSIM products through a unified integration.
  version: 1.0.0
  x-generated-from: documentation
  x-source-url: https://developers.zendit.io/api/
  contact:
    name: Zendit
    url: https://zendit.io
servers:
- url: https://api.zendit.io/v1
  description: Zendit Production
tags:
- name: Mobile Top-Up
  description: Mobile credit top-ups, bundles, and data plans
paths:
  /topups/offers:
    get:
      operationId: listTopupOffers
      summary: Zendit List Topup Offers
      description: List top-up, bundle, and data offers with filters.
      tags:
      - Mobile Top-Up
      parameters:
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Country'
      - name: brand
        in: query
        schema:
          type: string
        example: example-value
      - name: subType
        in: query
        schema:
          type: string
          enum:
          - Mobile Top Up
          - Bundle
          - Data
        example: Mobile Top Up
      responses:
        '200':
          description: List of offers
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferList'
              examples:
                ListTopupOffers200Example:
                  summary: Default listTopupOffers 200 response
                  x-microcks-default: true
                  value:
                    list:
                    - {}
                    offset: 0
                    limit: 100
                    total: 1500
      security:
      - BearerAuth: []
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /topups/offers/{offerId}:
    get:
      operationId: getTopupOffer
      summary: Zendit Get Topup Offer
      description: Retrieve specific top-up offer details.
      tags:
      - Mobile Top-Up
      parameters:
      - $ref: '#/components/parameters/OfferId'
      responses:
        '200':
          description: Offer detail
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Offer'
              examples:
                GetTopupOffer200Example:
                  summary: Default getTopupOffer 200 response
                  x-microcks-default: true
                  value:
                    offerId: offer-12345
                    name: Rebel Prepaid 10 USD
                    brand: rebel-prepaid
                    country: US
                    type: TOPUP
                    subType: Mobile Top Up
                    price:
                      amount: {}
                      currency: {}
                    send:
                      amount: {}
                      currency: {}
                    receive:
                      amount: {}
                      currency: {}
      security:
      - BearerAuth: []
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /topups/purchases:
    get:
      operationId: listTopupPurchases
      summary: Zendit List Topup Purchases
      description: Query top-up transactions with date and status filters.
      tags:
      - Mobile Top-Up
      parameters:
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Status'
      responses:
        '200':
          description: List of purchases
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseList'
              examples:
                ListTopupPurchases200Example:
                  summary: Default listTopupPurchases 200 response
                  x-microcks-default: true
                  value:
                    list:
                    - {}
                    offset: 0
                    limit: 100
                    total: 50
      security:
      - BearerAuth: []
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createTopupPurchase
      summary: Zendit Create Topup Purchase
      description: Create new top-up transaction.
      tags:
      - Mobile Top-Up
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TopupPurchaseRequest'
            examples:
              CreateTopupPurchaseRequestExample:
                summary: Default createTopupPurchase request
                x-microcks-default: true
                value:
                  transactionId: my-txn-abc123
                  offerId: offer-12345
                  subscriberNumber: '+15555550100'
                  sendValue:
                    amount: {}
                    currency: {}
      responses:
        '201':
          description: Purchase created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Purchase'
              examples:
                CreateTopupPurchase201Example:
                  summary: Default createTopupPurchase 201 response
                  x-microcks-default: true
                  value:
                    transactionId: txn-abc123
                    offerId: offer-12345
                    status: DONE
                    type: TOPUP
                    createdAt: '2026-05-01T12:00:00Z'
                    send:
                      amount: {}
                      currency: {}
                    receive:
                      amount: {}
                      currency: {}
                    details: {}
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                CreateTopupPurchase400Example:
                  summary: Default createTopupPurchase 400 response
                  x-microcks-default: true
                  value:
                    code: INVALID_REQUEST
                    description: The request is missing required parameter offerId.
                    message: offerId is required.
      security:
      - BearerAuth: []
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /topups/purchases/{transactionId}:
    get:
      operationId: getTopupPurchase
      summary: Zendit Get Topup Purchase
      description: Fetch top-up transaction status.
      tags:
      - Mobile Top-Up
      parameters:
      - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          description: Purchase detail
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Purchase'
              examples:
                GetTopupPurchase200Example:
                  summary: Default getTopupPurchase 200 response
                  x-microcks-default: true
                  value:
                    transactionId: txn-abc123
                    offerId: offer-12345
                    status: DONE
                    type: TOPUP
                    createdAt: '2026-05-01T12:00:00Z'
                    send:
                      amount: {}
                      currency: {}
                    receive:
                      amount: {}
                      currency: {}
                    details: {}
      security:
      - BearerAuth: []
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    TopupPurchaseRequest:
      type: object
      description: Top-up purchase request.
      required:
      - offerId
      - subscriberNumber
      properties:
        transactionId:
          type: string
          description: Client-provided idempotency key.
          example: my-txn-abc123
        offerId:
          type: string
          description: Offer to purchase.
          example: offer-12345
        subscriberNumber:
          type: string
          description: Recipient phone number in E.164 format.
          example: '+15555550100'
        sendValue:
          $ref: '#/components/schemas/Price'
    Offer:
      type: object
      description: Product offer (top-up, eSIM, voucher).
      properties:
        offerId:
          type: string
          description: Unique offer identifier.
          example: offer-12345
        name:
          type: string
          description: Offer display name.
          example: Rebel Prepaid 10 USD
        brand:
          type: string
          description: Brand identifier.
          example: rebel-prepaid
        country:
          type: string
          description: Country code.
          example: US
        type:
          type: string
          description: Offer type.
          example: TOPUP
        subType:
          type: string
          description: Offer sub-type.
          example: Mobile Top Up
        price:
          $ref: '#/components/schemas/Price'
        send:
          $ref: '#/components/schemas/Price'
        receive:
          $ref: '#/components/schemas/Price'
    Error:
      type: object
      description: Error response.
      properties:
        code:
          type: string
          example: INVALID_REQUEST
        description:
          type: string
          example: The request is missing required parameter offerId.
        message:
          type: string
          example: offerId is required.
    Purchase:
      type: object
      description: Purchase transaction.
      properties:
        transactionId:
          type: string
          example: txn-abc123
        offerId:
          type: string
          example: offer-12345
        status:
          type: string
          enum:
          - DONE
          - FAILED
          - PENDING
          - ACCEPTED
          - AUTHORIZED
          - IN_PROGRESS
          example: DONE
        type:
          type: string
          example: TOPUP
        createdAt:
          type: string
          format: date-time
          example: '2026-05-01T12:00:00Z'
        send:
          $ref: '#/components/schemas/Price'
        receive:
          $ref: '#/components/schemas/Price'
        details:
          type: object
          additionalProperties: true
          description: Product-specific details (top-up subscriber, voucher recipient, eSIM activation code, etc).
          example: {}
    PurchaseList:
      type: object
      description: Paginated purchase list.
      properties:
        list:
          type: array
          items:
            $ref: '#/components/schemas/Purchase'
          example:
          - {}
        offset:
          type: integer
          example: 0
        limit:
          type: integer
          example: 100
        total:
          type: integer
          example: 50
    Price:
      type: object
      description: Monetary amount with currency.
      properties:
        amount:
          type: number
          example: 10.0
        currency:
          type: string
          example: USD
    OfferList:
      type: object
      description: Paginated offer list.
      properties:
        list:
          type: array
          items:
            $ref: '#/components/schemas/Offer'
          example:
          - {}
        offset:
          type: integer
          example: 0
        limit:
          type: integer
          example: 100
        total:
          type: integer
          example: 1500
  parameters:
    Limit:
      name: _limit
      in: query
      required: true
      description: Items per page (1-1024).
      schema:
        type: integer
        minimum: 1
        maximum: 1024
        default: 100
      example: 100
    OfferId:
      name: offerId
      in: path
      required: true
      description: Offer identifier.
      schema:
        type: string
      example: offer-12345
    Offset:
      name: _offset
      in: query
      required: true
      description: Pagination offset.
      schema:
        type: integer
        minimum: 0
        default: 0
      example: 0
    TransactionId:
      name: transactionId
      in: path
      required: true
      description: Transaction identifier.
      schema:
        type: string
      example: txn-abc123
    Country:
      name: country
      in: query
      description: Two-letter ISO country code.
      schema:
        type: string
        minLength: 2
        maxLength: 2
      example: US
    Status:
      name: status
      in: query
      description: Transaction status filter.
      schema:
        type: string
        enum:
        - DONE
        - FAILED
        - PENDING
        - ACCEPTED
        - AUTHORIZED
        - IN_PROGRESS
      example: DONE
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: Bearer token authentication using your Zendit API key.