MTN Group Customer Promotion API

The Customer Promotion API from MTN Group — 3 operation(s) for customer promotion.

Operations 3

GET /tbd/promo some function here
GET /eligibilityCheck/{msisdn} ELigibility check of customer. #
POST /optin This API is used to optin users on campaigns

Documentation

📖
Documentation
https://developers.mtn.com/products/account-decisioning
📖
APIReference
https://developers.mtn.com/products/account-decisioning
📖
Documentation
https://developers.mtn.com/products/tmf-customer-bill-management
📖
APIReference
https://developers.mtn.com/products/tmf-customer-bill-management
📖
Documentation
https://developers.mtn.com/products/mtn-customer-loans-api-v1
📖
APIReference
https://developers.mtn.com/products/mtn-customer-loans-api-v1
📖
Documentation
https://developers.mtn.com/products/subscriber-details
📖
APIReference
https://developers.mtn.com/products/subscriber-details
📖
Documentation
https://developers.mtn.com/products/subscriber-type
📖
APIReference
https://developers.mtn.com/products/subscriber-type
📖
Documentation
https://developers.mtn.com/products/provisioning
📖
APIReference
https://developers.mtn.com/products/provisioning
📖
Documentation
https://developers.mtn.com/products/unified-balance-v1
📖
APIReference
https://developers.mtn.com/products/unified-balance-v1
📖
Documentation
https://developers.mtn.com/products/tmf-resourceinventorymanagement-tmf639
📖
APIReference
https://developers.mtn.com/products/tmf-resourceinventorymanagement-tmf639
📖
Documentation
https://developers.mtn.com/products/sales-management
📖
APIReference
https://developers.mtn.com/products/sales-management
📖
Documentation
https://developers.mtn.com/products/service-activation-and-configuration
📖
APIReference
https://developers.mtn.com/products/service-activation-and-configuration
📖
Documentation
https://developers.mtn.com/products/service-ordering
📖
APIReference
https://developers.mtn.com/products/service-ordering
📖
Documentation
https://developers.mtn.com/products/bss-tt-oauth-v1
📖
APIReference
https://developers.mtn.com/products/bss-tt-oauth-v1
📖
Documentation
https://developers.mtn.com/products/balance-management-v1
📖
APIReference
https://developers.mtn.com/products/balance-management-v1
📖
Documentation
https://developers.mtn.com/products/callmeback-v1
📖
APIReference
https://developers.mtn.com/products/callmeback-v1
📖
Documentation
https://developers.mtn.com/products/callmeback-v2
📖
APIReference
https://developers.mtn.com/products/callmeback-v2
📖
Documentation
https://developers.mtn.com/products/rcs-communication
📖
APIReference
https://developers.mtn.com/products/rcs-communication
📖
Documentation
https://developers.mtn.com/products/communication-management-v1
📖
APIReference
https://developers.mtn.com/products/communication-management-v1
📖
Documentation
https://developers.mtn.com/products/tmf681-communication-management
📖
APIReference
https://developers.mtn.com/products/tmf681-communication-management
📖
Documentation
https://developers.mtn.com/products/ayo-preapproval
📖
APIReference
https://developers.mtn.com/products/ayo-preapproval
📖
Documentation
https://developers.mtn.com/products/content-push
📖
APIReference
https://developers.mtn.com/products/content-push
📖
Documentation
https://developers.mtn.com/products/mtn-customer-bill-management
📖
APIReference
https://developers.mtn.com/products/mtn-customer-bill-management
📖
Documentation
https://developers.mtn.com/products/customer-billing-token-v1
📖
APIReference
https://developers.mtn.com/products/customer-billing-token-v1
📖
Documentation
https://developers.mtn.com/products/mtn-nigeria-data-gifting-v1
📖
APIReference
https://developers.mtn.com/products/mtn-nigeria-data-gifting-v1
📖
Documentation
https://developers.mtn.com/products/mtn-nigeria-customer-datashare
📖
APIReference
https://developers.mtn.com/products/mtn-nigeria-customer-datashare
📖
Documentation
https://developers.mtn.com/products/customer-delivery-booking
📖
APIReference
https://developers.mtn.com/products/customer-delivery-booking
📖
Documentation
https://developers.mtn.com/products/customer-identification-v1
📖
APIReference
https://developers.mtn.com/products/customer-identification-v1
📖
Documentation
https://developers.mtn.com/products/kyc-consent
📖
APIReference
https://developers.mtn.com/products/kyc-consent
📖
Documentation
https://developers.mtn.com/products/customer-loyalty-management
📖
APIReference
https://developers.mtn.com/products/customer-loyalty-management
📖
Documentation
https://developers.mtn.com/products/customer-management-coe-za-preprod
📖
APIReference
https://developers.mtn.com/products/customer-management-coe-za-preprod
📖
Documentation
https://developers.mtn.com/products/customer-pin-management-v2
📖
APIReference
https://developers.mtn.com/products/customer-pin-management-v2
📖
Documentation
https://developers.mtn.com/products/customer-promotion
📖
APIReference
https://developers.mtn.com/products/customer-promotion
📖
Documentation
https://developers.mtn.com/products/customer-survey
📖
APIReference
https://developers.mtn.com/products/customer-survey
📖
Documentation
https://developers.mtn.com/products/customer-data-transfer-ng-prod
📖
APIReference
https://developers.mtn.com/products/customer-data-transfer-ng-prod
📖
Documentation
https://developers.mtn.com/products/mtn-customer-datatransfer
📖
APIReference
https://developers.mtn.com/products/mtn-customer-datatransfer
📖
Documentation
https://developers.mtn.com/products/device-swap-v1
📖
APIReference
https://developers.mtn.com/products/device-swap-v1
📖
Documentation
https://developers.mtn.com/products/tmf-720-digital-identity-management
📖
APIReference
https://developers.mtn.com/products/tmf-720-digital-identity-management
📖
Documentation
https://developers.mtn.com/products/digital-partner-management
📖
APIReference
https://developers.mtn.com/products/digital-partner-management
📖
Documentation
https://developers.mtn.com/products/document-managment
📖
APIReference
https://developers.mtn.com/products/document-managment
📖
Documentation
https://developers.mtn.com/products/tmf-document-management-tmf667
📖
APIReference
https://developers.mtn.com/products/tmf-document-management-tmf667
📖
Documentation
https://developers.mtn.com/products/tmf688-event-management
📖
APIReference
https://developers.mtn.com/products/tmf688-event-management
📖
Documentation
https://developers.mtn.com/products/eec-token-management
📖
APIReference
https://developers.mtn.com/products/eec-token-management
📖
Documentation
https://developers.mtn.com/products/insurance
📖
APIReference
https://developers.mtn.com/products/insurance
📖
Documentation
https://developers.mtn.com/products/iot-device-management
📖
APIReference
https://developers.mtn.com/products/iot-device-management
📖
Documentation
https://developers.mtn.com/products/hcm-v1
📖
APIReference
https://developers.mtn.com/products/hcm-v1
📖
Documentation
https://developers.mtn.com/products/logback-v1
📖
APIReference
https://developers.mtn.com/products/logback-v1
📖
Documentation
https://developers.mtn.com/products/tmf-loyalty-management-tmf658
📖
APIReference
https://developers.mtn.com/products/tmf-loyalty-management-tmf658
📖
Documentation
https://developers.mtn.com/products/rcs-capability
📖
APIReference
https://developers.mtn.com/products/rcs-capability
📖
Documentation
https://developers.mtn.com/products/medallia-sms-v2
📖
APIReference
https://developers.mtn.com/products/medallia-sms-v2
📖
Documentation
https://developers.mtn.com/products/advertising-v2
📖
APIReference
https://developers.mtn.com/products/advertising-v2
📖
Documentation
https://developers.mtn.com/products/mtn-advertising-api-v1
📖
APIReference
https://developers.mtn.com/products/mtn-advertising-api-v1
📖
Documentation
https://developers.mtn.com/products/mobile-customer-information
📖
APIReference
https://developers.mtn.com/products/mobile-customer-information
📖
Documentation
https://developers.mtn.com/products/withdrawals-v1
📖
APIReference
https://developers.mtn.com/products/withdrawals-v1
📖
Documentation
https://developers.mtn.com/products/momo-verification
📖
APIReference
https://developers.mtn.com/products/momo-verification
📖
Documentation
https://developers.mtn.com/products/ayoaccountholderinfo
📖
APIReference
https://developers.mtn.com/products/ayoaccountholderinfo
📖
Documentation
https://developers.mtn.com/products/agent-profile
📖
APIReference
https://developers.mtn.com/products/agent-profile
📖
Documentation
https://developers.mtn.com/products/customer-account-management-v1
📖
APIReference
https://developers.mtn.com/products/customer-account-management-v1
📖
Documentation
https://developers.mtn.com/products/mtn-customer-kyc-api-v1-product
📖
APIReference
https://developers.mtn.com/products/mtn-customer-kyc-api-v1-product
📖
Documentation
https://developers.mtn.com/products/customer-kyc-verification
📖
APIReference
https://developers.mtn.com/products/customer-kyc-verification
📖
Documentation
https://developers.mtn.com/products/loans-v2
📖
APIReference
https://developers.mtn.com/products/loans-v2
📖
Documentation
https://developers.mtn.com/products/mtn-customer-locations-api-v1
📖
APIReference
https://developers.mtn.com/products/mtn-customer-locations-api-v1
📖
Documentation
https://developers.mtn.com/products/customer-management
📖
APIReference
https://developers.mtn.com/products/customer-management
📖
Documentation
https://developers.mtn.com/products/mtn-customer-plans-api-v2
📖
APIReference
https://developers.mtn.com/products/mtn-customer-plans-api-v2
📖
Documentation
https://developers.mtn.com/products/mtn-customer-profiles-api-v2-product
📖
APIReference
https://developers.mtn.com/products/mtn-customer-profiles-api-v2-product
📖
Documentation
https://developers.mtn.com/products/risk-management
📖
APIReference
https://developers.mtn.com/products/risk-management
📖
Documentation
https://developers.mtn.com/products/mtn-customer-score
📖
APIReference
https://developers.mtn.com/products/mtn-customer-score
📖
Documentation
https://developers.mtn.com/products/simverification
📖
APIReference
https://developers.mtn.com/products/simverification
📖
Documentation
https://developers.mtn.com/products/mtn-subscription-api-v2
📖
APIReference
https://developers.mtn.com/products/mtn-subscription-api-v2
📖
Documentation
https://developers.mtn.com/products/g2m
📖
APIReference
https://developers.mtn.com/products/g2m
📖
Documentation
https://developers.mtn.com/products/oauth-v1
📖
APIReference
https://developers.mtn.com/products/oauth-v1
📖
Documentation
https://developers.mtn.com/products/merchant-provisioning-v1
📖
APIReference
https://developers.mtn.com/products/merchant-provisioning-v1
📖
Documentation
https://developers.mtn.com/products/mtn-sms-api-v1
📖
APIReference
https://developers.mtn.com/products/mtn-sms-api-v1
📖
Documentation
https://developers.mtn.com/products/ussd
📖
APIReference
https://developers.mtn.com/products/ussd
📖
Documentation
https://developers.mtn.com/products/mtn-product-offering-api-v2
📖
APIReference
https://developers.mtn.com/products/mtn-product-offering-api-v2
📖
Documentation
https://developers.mtn.com/products/mtn-product-offering-api-v3
📖
APIReference
https://developers.mtn.com/products/mtn-product-offering-api-v3
📖
Documentation
https://developers.mtn.com/products/mtn-ng-retailer-productivity-tracking-v1
📖
APIReference
https://developers.mtn.com/products/mtn-ng-retailer-productivity-tracking-v1
📖
Documentation
https://developers.mtn.com/products/tmf633-shopping-cart-management
📖
APIReference
https://developers.mtn.com/products/tmf633-shopping-cart-management
📖
Documentation
https://developers.mtn.com/products/siebel
📖
APIReference
https://developers.mtn.com/products/siebel
📖
Documentation
https://developers.mtn.com/products/tmf-party-management
📖
APIReference
https://developers.mtn.com/products/tmf-party-management
📖
Documentation
https://developers.mtn.com/products/tmf-usage-management-tmf635
📖
APIReference
https://developers.mtn.com/products/tmf-usage-management-tmf635
📖
Documentation
https://developers.mtn.com/products/usage-management
📖
APIReference
https://developers.mtn.com/products/usage-management
📖
Documentation
https://developers.mtn.com/products/mtnid-getinfo
📖
APIReference
https://developers.mtn.com/products/mtnid-getinfo
📖
Documentation
https://developers.mtn.com/products/notification-production
📖
APIReference
https://developers.mtn.com/products/notification-production
📖
Documentation
https://developers.mtn.com/products/notification-v2
📖
APIReference
https://developers.mtn.com/products/notification-v2
📖
Documentation
https://developers.mtn.com/products/order-fulfillment
📖
APIReference
https://developers.mtn.com/products/order-fulfillment
📖
Documentation
https://developers.mtn.com/products/tmf-party-interaction-tmf683
📖
APIReference
https://developers.mtn.com/products/tmf-party-interaction-tmf683
📖
Documentation
https://developers.mtn.com/products/mtn-party-management
📖
APIReference
https://developers.mtn.com/products/mtn-party-management
📖
Documentation
https://developers.mtn.com/products/rwanda-party-management
📖
APIReference
https://developers.mtn.com/products/rwanda-party-management
📖
Documentation
https://developers.mtn.com/products/payment-methods-management-sa
📖
APIReference
https://developers.mtn.com/products/payment-methods-management-sa
📖
Documentation
https://developers.mtn.com/products/payments-v1
📖
APIReference
https://developers.mtn.com/products/payments-v1
📖
Documentation
https://developers.mtn.com/products/tmf-prepay-balance-management-tmf654
📖
APIReference
https://developers.mtn.com/products/tmf-prepay-balance-management-tmf654
📖
Documentation
https://developers.mtn.com/products/product-catalog-coe
📖
APIReference
https://developers.mtn.com/products/product-catalog-coe
📖
Documentation
https://developers.mtn.com/products/product-catalog-management-v1
📖
APIReference
https://developers.mtn.com/products/product-catalog-management-v1
📖
Documentation
https://developers.mtn.com/products/product-catalogue-management
📖
APIReference
https://developers.mtn.com/products/product-catalogue-management
📖
Documentation
https://developers.mtn.com/products/tmf-product-catalog-tmf620
📖
APIReference
https://developers.mtn.com/products/tmf-product-catalog-tmf620
📖
Documentation
https://developers.mtn.com/products/product-ordering-coe
📖
APIReference
https://developers.mtn.com/products/product-ordering-coe
📖
Documentation
https://developers.mtn.com/products/tmf-product-ordering-tmf622
📖
APIReference
https://developers.mtn.com/products/tmf-product-ordering-tmf622
📖
Documentation
https://developers.mtn.com/products/resource-config-v1
📖
APIReference
https://developers.mtn.com/products/resource-config-v1
📖
Documentation
https://developers.mtn.com/products/tmf-resource-ordering-tmf652
📖
APIReference
https://developers.mtn.com/products/tmf-resource-ordering-tmf652
📖
Documentation
https://developers.mtn.com/products/tmf-service-activation-tmf678
📖
APIReference
https://developers.mtn.com/products/tmf-service-activation-tmf678
📖
Documentation
https://developers.mtn.com/products/job-card-management
📖
APIReference
https://developers.mtn.com/products/job-card-management
📖
Documentation
https://developers.mtn.com/products/ticket
📖
APIReference
https://developers.mtn.com/products/ticket
📖
Documentation
https://developers.mtn.com/products/mtn-sms-interface
📖
APIReference
https://developers.mtn.com/products/mtn-sms-interface
📖
Documentation
https://developers.mtn.com/products/sms-v3-api
📖
APIReference
https://developers.mtn.com/products/sms-v3-api
📖
Documentation
https://developers.mtn.com/products/sim-management-staging
📖
APIReference
https://developers.mtn.com/products/sim-management-staging
📖
Documentation
https://developers.mtn.com/products/sim-swap-verification-v1
📖
APIReference
https://developers.mtn.com/products/sim-swap-verification-v1
📖
Documentation
https://developers.mtn.com/products/subscriber-management
📖
APIReference
https://developers.mtn.com/products/subscriber-management
📖
Documentation
https://developers.mtn.com/products/taxation-v1
📖
APIReference
https://developers.mtn.com/products/taxation-v1
📖
Documentation
https://developers.mtn.com/products/tmf-trouble-ticket-tmf621
📖
APIReference
https://developers.mtn.com/products/tmf-trouble-ticket-tmf621
📖
Documentation
https://developers.mtn.com/products/tmf629-customer-management
📖
APIReference
https://developers.mtn.com/products/tmf629-customer-management
📖
Documentation
https://developers.mtn.com/products/tmf637-product-inventory
📖
APIReference
https://developers.mtn.com/products/tmf637-product-inventory
📖
Documentation
https://developers.mtn.com/products/account-management-coe
📖
APIReference
https://developers.mtn.com/products/account-management-coe
📖
Documentation
https://developers.mtn.com/products/tmf-payment-management-tmf676
📖
APIReference
https://developers.mtn.com/products/tmf-payment-management-tmf676
📖
Documentation
https://developers.mtn.com/products/resource-pool-management
📖
APIReference
https://developers.mtn.com/products/resource-pool-management
📖
Documentation
https://developers.mtn.com/products/tmf-usage-consumption-tmf677
📖
APIReference
https://developers.mtn.com/products/tmf-usage-consumption-tmf677
📖
Documentation
https://developers.mtn.com/products/usage-consumption
📖
APIReference
https://developers.mtn.com/products/usage-consumption

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mtn-group-customer-promotion-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

mtn-group-customer-promotion-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Placeholder Customer Promotion API
  description: API Documentation
  version: '0.1'
servers:
- url: https://za.api.mtn.com/customerPromotion/v1
security:
- ApiKeyAuth: []
- OAuth2: []
tags:
- name: Customer Promotion
paths:
  /tbd/promo:
    get:
      summary: some function here
      description: promotion description
      tags:
      - Customer Promotion
      responses:
        '200':
          description: Success
  /eligibilityCheck/{msisdn}:
    get:
      tags:
      - Customer Promotion
      summary: ELigibility check of customer.
      description: ELigibility check for recharge and Win campaign. This API is used to retreive customer profile.
      operationId: getUserProfile
      parameters:
      - name: transactionId
        in: header
        description: Unique ID for the transaction.
        required: true
        schema:
          type: string
      - name: sourceIdentifier
        in: query
        description: This field denotes the channel that is initiating request to SOA like USSD, MyMTNApp
        required: true
        schema:
          type: string
      - name: msisdn
        in: path
        description: MSISDN of the customer whose eligibility check needs to be done
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Eligibility check success Response
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/eligibilityCheckResponse'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error400'
        '401':
          description: Unauthorised
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error401'
        '404':
          description: Not Found
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error404'
        '415':
          description: Unsupported Media Type
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error415'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error500'
  /optin:
    post:
      summary: This API is used to optin users on campaigns
      tags:
      - Customer Promotion
      parameters:
      - name: transactionId
        in: header
        description: Unique ID for the transaction.
        required: true
        schema:
          type: string
      - name: sourceIdentifier
        in: query
        description: This field denotes the channel that is initiating request to SOA like USSD, MyMTNApp
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success response for optin
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/optinResponse'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error400'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error401'
        '404':
          description: Not Found
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error404'
        '415':
          description: Unsupported Media Type
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error415'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error500'
      requestBody:
        content:
          application/json;charset=utf-8:
            schema:
              $ref: '#/components/schemas/optinRequest'
        description: Request parameters for customer Opt-In
        required: true
components:
  schemas:
    Error400:
      properties:
        statusCode:
          type: integer
          description: Status code from target system to indicate transaction status
          example: 5000
        statusMessage:
          type: string
          description: Status message from target system to indicate transaction status.
        supportMessage:
          type: string
          description: detail message from target system to indicate transaction status.
        transactionId:
          type: string
          description: This is the same transactionId that is sent in the request
          example: 0d1e1b18-1b6d-4792-8417-72d337f42a1c
    optinRequest:
      allOf:
      - required:
        - msisdn
        properties:
          optin:
            type: boolean
            description: this is true or false for user optin.
            example: true
          campaign:
            type: string
            description: Identifies the campaign you would like to optin or optout to.
            example: RECHARGE_AND_WIN
          msisdn:
            description: MSISDN of the customer who wants to redeem their reward. This will be cross-checked against the play id as pre provision safety measure
            type: string
            example: 27605220405
    RechargeOptions:
      required:
      - optin
      - nextRechargeBefore
      properties:
        optin:
          type: boolean
          example: true
        nextRechargeBefore:
          format: date-time
    balanceType:
      required:
      - type
      - balance
      properties:
        type:
          type: string
          enum:
          - DAILY
          - LOYALTY_SPEND_1
          - LOYALTY_SPEND_2
          - LOYALTY_SPEND_3
          - LIVE_DRAW
          description: Type of the balance that the customer is having in their profile
        balance:
          type: integer
          description: The amount of plays available
      description: "status:\n * `DAILY` - Daily plays awarded\n * `LOYALTY_SPEND_1` - plays awarded for loyalty points redeptions of less than 50 points\n * `LOYALTY_SPEND_2` - plays awarded for loyalty points redeptions of less than 250 points\n * `LOYALTY_SPEND_3` - plays awarded for loyalty points redeptions of more than 250 points\n * `LIVE_DRAW` - Plays awarded for visiting the draw announcement page during the live announcement window\n"
    reward:
      properties:
        redeemId:
          type: string
          example: '922625'
          description: The redeem id of the reward
        pool:
          type: string
          example: UNCONDITIONAL_GIFT
          description: The pool of the reward
        category:
          type: string
          example: Grocery
          description: The category of the reward
        subCategory:
          type: string
          example: Checkers
          description: The subcategory of the reward
        shortDescription:
          type: string
          example: ''
          description: The short description of the reward
        description:
          type: string
          example: R5000 CHECKERS VOUCHER
          description: The description of the reward
        properties:
          type: object
          properties:
            type:
              type: string
              example: VOUCHERCHECKERS
              description: The type of the reward
            value:
              type: integer
              example: 5000
              description: The value of the reward
            valueUnit:
              type: string
              example: R
              description: The unit of the reward value
            validity:
              type: integer
              example: 60
              description: The validity of the reward
            validityUnit:
              type: string
              example: Days
              description: The unit of the reward validity
            valueCents:
              type: integer
              example: 0
              description: The cost of redeeming the reward in cents
            valueFormatted:
              type: string
              example: R0
              description: The formatted cost of redeeming the reward
            discount:
              type: string
              example: 100%
              description: The discount applied to the reward
        awardedAt:
          type: string
          format: date-time
          example: '2023-11-07T07:00:23.559Z'
          description: The time when the reward was awarded
        redeemed:
          type: boolean
          example: false
          description: Whether the reward has been redeemed or not
        redeemedAt:
          type: string
          format: date-time
          example: ''
          description: The time when the reward was redeemed
        expired:
          type: boolean
          example: true
          description: Whether the reward has expired or not
        expiresAt:
          type: string
          format: date-time
          example: '2023-11-07T07:00:40.339Z'
          description: The time when the reward expires
        source:
          type: string
          example: GIFT
          description: The source of the reward
      description: "source:\n * `DAILY` - A prize won when playing the game using daily plays\n * `LOYALTY_SPEND_1` - A prize won when playing the game using low value loyalty spend plays\n * `LOYALTY_SPEND_2` - A prize won when playing the game using medium value loyalty spend plays\n * `LOYALTY_SPEND_3` - A prize won when playing the game using high value loyalty spend plays\n * `LIVE_DRAW` - A prize won when playing the game made available during the announcement window\n * `GIFT` - A reward gifted to the user via the gigting endpoint\n * `DRAW` - A prize in the weekly/monthly draw\n"
    Recharges:
      required:
      - SOID
      - price
      - location
      - date
      properties:
        SOID:
          type: string
          example: '1234'
        price:
          type: string
          example: '49'
        location:
          type: string
          example: Randburg
        date:
          type: string
          format: date-time
    reward1:
      properties:
        redeemId:
          type: string
          example: '922625'
          description: The redeem id of the reward
        pool:
          type: string
          example: UNCONDITIONAL_GIFT
          description: The pool of the reward
        category:
          type: string
          example: Grocery
          description: The category of the reward
        subCategory:
          type: string
          example: Checkers
          description: The subcategory of the reward
        shortDescription:
          type: string
          example: ''
          description: The short description of the reward
        description:
          type: string
          example: R5000 CHECKERS VOUCHER
          description: The description of the reward
        properties:
          type: object
          properties:
            type:
              type: string
              example: VOUCHERCHECKERS
              description: The type of the reward
            value:
              type: integer
              example: 5000
              description: The value of the reward
            valueUnit:
              type: string
              example: R
              description: The unit of the reward value
            validity:
              type: integer
              example: 60
              description: The validity of the reward
            validityUnit:
              type: string
              example: Days
              description: The unit of the reward validity
            valueCents:
              type: integer
              example: 0
              description: The cost of redeeming the reward in cents
            valueFormatted:
              type: string
              example: R0
              description: The formatted cost of redeeming the reward
            discount:
              type: string
              example: 100%
              description: The discount applied to the reward
        awardedAt:
          type: string
          format: date-time
          example: '2023-11-07T07:00:23.559Z'
          description: The time when the reward was awarded
        redeemed:
          type: boolean
          example: false
          description: Whether the reward has been redeemed or not
        redeemedAt:
          type: string
          format: date-time
          example: ''
          description: The time when the reward was redeemed
        expired:
          type: boolean
          example: true
          description: Whether the reward has expired or not
        expiresAt:
          type: string
          format: date-time
          example: '2023-11-07T07:00:40.339Z'
          description: The time when the reward expires
        source:
          type: string
          example: GIFT
          description: The source of the reward
      description: "source:\n * `DAILY` - A prize won when playing the game using daily plays\n * `LOYALTY_SPEND_1` - A prize won when playing the game using low value loyalty spend plays\n * `LOYALTY_SPEND_2` - A prize won when playing the game using medium value loyalty spend plays\n * `LOYALTY_SPEND_3` - A prize won when playing the game using high value loyalty spend plays\n * `LIVE_DRAW` - A prize won when playing the game made available during the announcement window\n * `GIFT` - A reward gifted to the user via the gigting endpoint\n * `DRAW` - A prize in the weekly/monthly draw     \n"
    Error401:
      properties:
        statusCode:
          type: integer
          description: Status code from target system to indicate transaction status
          example: 4000
        statusMessage:
          type: string
          description: Status message from target system to indicate transaction status.
          example: Unauthorised
        supportMessage:
          type: string
          description: detail message from target system to indicate transaction status.
          example: Please verify token environment and key
        faultMessage1:
          type: string
          description: ''
        faultMessage2:
          type: string
          description: fault message
    optinResponse:
      allOf:
      - required:
        - statusCode
        - statusMessage
        - transactionId
        - supportMessage
        properties:
          statusCode:
            type: string
            description: This is the MADAPI Canonical Error Code (it is 4 characters long and it is not the HTTP Status Code which is 3 characters long). Back-end system errors are mapped to specific canonical error codes which are returned. More information on these mappings can be found on the MADAPI Confluence Page 'Response Codes'
            example: '0000'
            maxLength: 30
          statusMessage:
            type: string
            description: More details and corrective actions related to the error which can be shown to a client. Success for 200.
          supportMessage:
            type: string
            description: Internal message meant for consumers of the API to troubleshoot the error (could possible include the back-end system error code in the message if it would be useful)
          transactionId:
            type: string
            description: Unique reference number
            example: '100000172429605'
    Error415:
      properties:
        timestamp:
          type: string
          format: date-time
          description: Timestamp that the error occurred
          example: '2021-07-21T17:32:28Z'
        status:
          type: integer
          description: Status code from target system to indicate transaction status
          example: 415
        error:
          type: string
          description: error message
          example: Unsupported Media Type
        message:
          type: string
          description: details
        path:
          type: string
          description: The path that caused the error
    eligibilityCheckResponse:
      type: object
      properties:
        statusCode:
          type: string
          description: This is the MADAPI Canonical Error Code (it is 4 characters long and it is not the HTTP Status Code which is 3 characters long). Back-end system errors are mapped to specific canonical error codes which are returned. More information on these mappings can be found on the MADAPI Confluence Page 'Response Codes',
          example: '0000'
          maxLength: 30
        statusMessage:
          type: string
          description: More details and corrective actions related to the error which can be shown to a client. Success for 200.
        supportMessage:
          type: string
          description: Internal message meant for consumers of the API to troubleshoot the error (could possible include the back-end system error code in the message if it would be useful)
        transactionId:
          type: string
          description: Unique reference number
          example: '100000172429605'
        balances:
          type: array
          items:
            $ref: '#/components/schemas/balanceType'
          description: '''The amount of plays the user has available per game type. Balances expire daily at 12AM (midnight) The balance is redeemed by using the play endpoint to win a prize. Plays are not transferable between MSISDNs or game types''  '
        wallet:
          type: array
          items:
            $ref: '#/components/schemas/category1'
          description: "The user's rewards wallet that contains a collection of awarded prizes/gifts by category (redeemed and non-redeemed).\nThese rewards may come from various sources, e.g. playing one of the games, gift campaigns or prizes won in the live draw \nRewards are not transferable between MSISDNs.\nOrdered by awardedAt in descending order.   \n"
        draws:
          type: array
          items:
            $ref: '#/components/schemas/Draw'
          description: "A breakdown of draws, past and present that shows the number of entries a customer has aquired per draw.\nIf the user has won a prize in one of the respective draws, the details pertaining to the prize awarded are included \nA maximum of three draws will be shown, ordered by entriesOpenAt in descending order.\n"
        history:
          $ref: '#/components/schemas/History'
        rechargeOptions:
          $ref: '#/components/schemas/RechargeOptions'
        recharges:
          type: array
          items:
            $ref: '#/components/schemas/Recharges'
          description: 'A breakdown of draws, past and present that shows the number of entries a customer has aquired per draw.

            If the user has won a prize in one of the respective draws, the details pertaining to the prize awarded are included

            A maximum of three draws will be shown, ordered by entriesOpenAt in descending order.

            '
    Error500:
      properties:
        timestamp:
          type: string
          format: date-time
          description: Timestamp that the error occurred
          example: '2021-07-21T17:32:28Z'
        status:
          type: string
          description: status code from backend
          example: '500'
        error:
          type: string
          description: Type of error
          example: Internal Server Error
        message:
          type: string
          description: More details and corrective actions related to the error which can be shown to a client
          example: Internal Server Error
        path:
          type: string
          description: The path that caused the error
    LogHistory:
      properties:
        recharge:
          type: string
          description: The time of recharge transaction
          format: date-time
        bundle:
          type: string
          example: BUY-1-500MB-1D-R500
        value:
          type: integer
          format: int32
          description: The value will be returned cents from Infinity and will be convered to Rand
          example: 500
        valueUom:
          type: string
          format: Rand
          description: The unit of measure of the value
          example: Rand
    History:
      required:
      - anniversary
      - lastRecharges
      - firstRecharge
      - log
      properties:
        anniversary:
          type: string
          format: date-time
        lastRecharges:
          type: string
          format: date-time
        firstRecharge:
          type: string
          format: date-time
        log:
          type: array
          items:
            $ref: '#/components/schemas/LogHistory'
    Draw:
      required:
      - entries
      - drawStatus
      - entriesOpenAt
      - entriesCloseAt
      - announcementStartAt
      - announcementEndAt
      properties:
        entries:
          type: integer
          format: int32
          description: 'The number of entries that have been awarded to the customer in question (Only applicalbe to draws shown in customer profile)

            '
        winner:
          type: boolean
          description: 'Whether the customer in question has won a pize in the draw (Only applicalbe to draws shown in customer profile)

            '
        drawStatus:
          type: string
          enum:
          - OPEN
          - CLOSED
          - LIVE
        entriesOpenAt:
          type: string
          format: date-time
          description: This field defines the time when the draws open for entries
        entriesCloseAt:
          type: string
          format: date-time
          description: When the draw no longer accepts entries
        announcementStartAt:
          type: string
          format: date-time
          description: When the live draw starts
        announcementEndAt:
          type: string
          format: date-time
          description: When the live draw ends
        prizes:
          type: array
          description: 'A list of prizes that pertain to the draw


            Draws shown in customer profile will only show prizes that pertain to the customer in question

            '
          items:
            required:
            - msisdn
            - reward
            properties:
              msisdn:
                type: string
                description: The msisdn of the winner of the prize. The value will be in international format i.e., 27867583465 [MQ] - Is the msisdn of the customer querying the service or the prize winner? [SOA] This is the winner
              reward:
                $ref: '#/components/schemas/reward'
      description: "drawStatus:\n * `OPEN` - The draw is accepting entries\n * `CLOSED` - The draw is no longer accepting entries\n * `LIVE` - The draw winners are being announced     \n"
    category1:
      $ref: '#/components/schemas/reward1'
    Error404:
      properties:
        timestamp:
          type: string
          format: date-time
          description: Timestamp that the error occurred
          example: '2021-07-21T17:32:28Z'
        status:
          type: integer
          description: Status code from target system to indicate transaction status
          example: 404
        error:
          type: string
          description: error message
          example: Not found
        message:
          type: string
          description: details
        path:
          type: string
          description: The path that caused the error
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      name: X-API-Key
      in: header
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: https://api.mtn.com/v1/oauth/access_token