MTN Group Customers API

The Customers API from MTN Group — 21 operation(s) for customers.

Operations 25

POST /customers/{customerId}/loans/advance Gets a loan advance. #
GET /customers/{customerId}/loans/advance/status Gets loan advance status. #
GET /customers/{customerId}/loans/eligibleBundle Retrieves the list of eligible loan. #
GET /customers/{customerId}/locations View customer locations #
GET /customers/{id}/plans/FRI Retrieves a customers FRI #
PATCH /customers/{id}/plans/FRI/state Block and Unblock operations are initiated on Customer FRI #
GET /customers/{customerId}/plans View customer plans
PATCH /customers/{customerId}/plans Tariff plan migration #
GET /customers/{customerId}/plans/{productCode} View customer plans for product
PATCH /customers/{customerId}/plans/refill Airtime Refill #
POST /customers/{id}/plans/provision Provision the customer and return customer details along with MSISDN #
GET /customers/{customerId} View customer profile
GET /customers/upgrade-eligibility/{customerId} Get customer’s upgrade eligibility
GET /customers/{customerId}/tenure Get customer’s tenure
GET /customers/{customerId}/activityStatus Get customer’s activity status
GET /customers/{customerId}/score Get Customer score. #
POST /customers/{customerId}/score/creditinfo Sends Credit Information to CRC #
GET /customers/{customerId}/subscriptions List all Subscriptions #
POST /customers/{customerId}/subscriptions Subscribe the customer to a new service #
DELETE /customers/{customerId}/subscriptions Unsubscribe All Subscriptions for a Customer #
GET /customers/{customerId}/subscriptions/{subscriptionId} Get Subscription details #
DELETE /customers/{customerId}/subscriptions/{subscriptionId} Unsubscribe a specific subscription #
GET /customers/{customerId}/subscriptions/{subscriptionId}/status/{statusId} Get provisioning status of a recently added Subscription #
GET /customers/{customerId}/subscriptions-providers Retrieve subscription providers #

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-customers-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-customers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Mtn Group Customers API
  version: '1.0'
  description: 'Operations tagged Customers across 6 of this provider''s published API definitions: mtn-group-loans-v2.yml, mtn-group-mtn-customer-locations-api-v1.yml, mtn-group-mtn-customer-plans-api-v2.yml, mtn-group-mtn-customer-profiles-api-v2-product.yml, mtn-group-mtn-customer-score.yml, mtn-group-mtn-subscription-api-v2.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.mtn.com/v2
- url: https://api.mtn.com/v1
tags:
- name: Customers
paths:
  /customers/{customerId}/loans/advance:
    post:
      tags:
      - Customers
      summary: Gets a loan advance.
      description: Get a loan advance for an MTN customer.
      operationId: getLoanAdvance
      parameters:
      - name: customerId
        in: path
        description: ID of the customer. It could be MSISDN, email address, or any other customer identifier
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoanAdvanceResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoanProvisioningDetails'
        required: true
    servers:
    - url: https://api.mtn.com/v2
  /customers/{customerId}/loans/advance/status:
    get:
      tags:
      - Customers
      summary: Gets loan advance status.
      description: Get a loan advance status for an MTN customer.
      operationId: getLoanAdvanceStatus
      parameters:
      - name: customerId
        in: path
        description: ID of the customer. It could be MSISDN, email address, or any other customer identifier
        required: true
        schema:
          type: string
      - name: transactionId
        in: header
        description: The transaction Id used in making the loan advance request
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoanStatusResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      deprecated: false
    servers:
    - url: https://api.mtn.com/v2
  /customers/{customerId}/loans/eligibleBundle:
    get:
      tags:
      - Customers
      summary: Retrieves the list of eligible loan.
      description: Retrieves loan eligibility status of an MTN customer.
      operationId: checkLoanEligibility
      parameters:
      - name: customerId
        in: path
        description: ID of the customer. It could be MSISDN, email address, or any other customer identifier
        required: true
        schema:
          type: string
      - name: type
        in: query
        required: false
        description: Specify the type of eligibility to check for. Returns all if none is specified.
        schema:
          type: string
          enum:
          - AIRTIME
          - DATA
          - VOICE
          - SMS
          - ALL
          default: ALL
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EligibilityResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      deprecated: false
    servers:
    - url: https://api.mtn.com/v2
  /customers/{customerId}/locations:
    get:
      description: Retrieves the Location details of an MTN customer
      summary: View customer locations
      operationId: Retrieves the Location details of an MTN customer
      tags:
      - Customers
      parameters:
      - name: customerId
        in: path
        description: ID of the customer. It could be MSISDN, email address, or any other customer identifier. if id is msisdn, format must be E.123
        required: true
        schema:
          type: string
      responses:
        200:
          description: Customer Locations object. For a successful request, the response will contain all the customers details. If the customer does not have any requested data, then those fields will be null. E.g. if the customer does not any location set, then Country and Operator will be null.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerLocations'
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDefault'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDefault'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDefault'
        404:
          description: Customer not found
          content:
            The data object/envelope will be null:
              example:
                data: null
        405:
          description: Method Not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
      security:
      - ApiKeyAuth: []
    servers:
    - url: https://api.mtn.com/v1
  /customers/{id}/plans/FRI:
    get:
      tags:
      - Customers
      summary: Retrieves a customers FRI
      description: Retrieves FRI for MTN customer.
      operationId: getFRIUsingPOST
      parameters:
      - name: id
        in: path
        description: id
        required: true
        schema:
          type: string
      - name: targetSystem
        in: header
        description: Target System
        required: true
        schema:
          type: string
      - name: transactionId
        in: header
        description: transactionId
        required: true
        schema:
          type: string
      - name: x-country-code
        in: header
        description: x-country-code
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetFRIResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '404':
          description: Customer not found
          content:
            The data object/envelope will be null:
              example:
                data: null
        '405':
          description: Method Not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetFRIRequest'
        description: Financial Resource Information
        required: true
      security:
      - ApiKeyAuth: []
      - OAuth2: []
    servers:
    - url: https://api.mtn.com/v2
  /customers/{id}/plans/FRI/state:
    patch:
      tags:
      - Customers
      summary: Block and Unblock operations are initiated on Customer FRI
      description: By Interpreting value for 'state' MADAPI initiates   Block and Unblock requests on Customer FRI
      operationId: UpdateFRIUsingPATCH
      parameters:
      - name: id
        in: path
        description: ID of the customer. It could be MSISDN, email etc. combination of id and idType defines accountHolderId which will be sent to ECW System as identity
        required: true
        schema:
          type: string
      - name: idType
        in: header
        description: idtype defines the identification type being sent by the 3pp like MSISDN, customer id etc
        schema:
          type: string
          enum:
          - MSISDN
      - name: targetSystem
        in: header
        description: Target System is the backend to which MADAPI Sends th request
        required: true
        schema:
          type: string
      - name: transactionId
        in: header
        description: transactionId is unique identifier for every request, it is sent by source system like SAS to MADAPI
        schema:
          type: string
      - name: x-origin-channelId
        in: header
        description: Source System Details like SAS etc
        schema:
          type: string
      - name: x-authorization
        in: header
        description: Encrypted ECW credentials
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateFRIResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '404':
          description: Customer not found
          content:
            The data object/envelope will be null:
              example:
                data: null
        '405':
          description: Method Not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFRIRequest'
        description: Financial Resource Identifier
        required: true
      security:
      - ApiKeyAuth: []
      - OAuth2: []
    servers:
    - url: https://api.mtn.com/v2
  /customers/{customerId}/plans:
    get:
      description: Retrieves the Billing Plan and related details of an MTN customer.
      summary: View customer plans
      tags:
      - Customers
      parameters:
      - name: customerId
        in: path
        description: ID of the customer. It could be MSISDN, email address, or any other customer identifier. if id is msisdn, format must be Eg.123
        required: true
        schema:
          type: string
      - name: fixedLine
        in: query
        description: Fixed line whose balances is fetched
        required: false
        schema:
          type: string
      - name: plan
        in: query
        description: Plan type to filter list of balances
        required: false
        schema:
          type: string
          enum:
          - VOICE
          - DATA
          - SMS
      - name: momo
        in: query
        description: Indicates whether to query balances for a MoMo Customer
        required: false
        schema:
          type: boolean
      - name: includeReservations
        in: query
        description: Indicates whether reservations should be included in the response. This parameter goes hand in hand with the momo query parameter and will have no use if supplied when momo is not true. Default is false.
        required: false
        schema:
          type: boolean
      - name: referenceid
        in: query
        description: This is required to handle the correlation between the 2 systems
        required: false
        schema:
          type: string
      - name: quoteid
        in: query
        description: Indicates whether a corresponding quote should be considered. This parameter goes hand-in-hand with the momo query parameter and will have no use if supplied when momo is not true.
        required: false
        schema:
          type: string
      - name: targetSystem
        in: query
        description: Name of the backend system
        x-example: EWP
        schema:
          type: string
      - name: segment
        in: query
        required: false
        description: This is the type of customer doing the transaction. This can be  agent, admin , merchant or subscriber
        schema:
          type: string
          enum:
          - subscriber
          - admin
          - agent
          - merchant
      - name: idType
        in: query
        required: false
        description: Type of the customerId in the path.
        schema:
          type: string
          enum:
          - MSISDN
          - USER
      - in: query
        name: prefLanguage
        required: false
        description: The language in which the response is required
        schema:
          type: string
          enum:
          - En
          - Fr
      - in: query
        name: amount
        required: false
        description: The threshold amount against which the actual balance will be compared
        schema:
          type: integer
      - name: transactionId
        in: header
        description: unique ID generated for each transaction
        required: false
        schema:
          type: string
      - name: usageType
        in: query
        required: false
        description: Type of usage to be fetched. 1 – All, 2 – Active, 3 – Inactive
        schema:
          type: number
          enum:
          - 1
          - 2
          - 3
      - name: extRequest
        in: query
        required: false
        description: Define if the request is external or not.
        schema:
          type: string
          enum:
          - true
          - false
      responses:
        '200':
          description: Customer Plans object. For a successful request, the response will contain all the customers details. If the customer does not have any requested data, then those fields will be null. E.g. if the customer does not have a startDate set, then it will be null. If the customer does not have any Balance set, then the Balance array will be null.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerPlans'
        '207':
          description: If there was an error retrieving some part of the request, then the successful request will be shown, and the remaining failed objects will be be excluded. E.g. if there was an error retrieving Balance information, then the balance object will be empty
          content:
            Partially Successfuls Response, showing valid plan data, but balance object is null:
              example:
                data:
                  type: Postpaid
                  status: Active
                  startDate: '2019-04-12T14:31:21.810Z'
                  endDate: '2021-04-12T14:31:21.810Z'
                  language: '1'
                  balance: null
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '404':
          description: Customer not found
          content:
            The data object/envelope will be null:
              example:
                data: null
        '405':
          description: Method Not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
      security:
      - ApiKeyAuth: []
      - OAuth2: []
    patch:
      tags:
      - Customers
      summary: Tariff plan migration
      description: Migrate the customer from one tariff plan to another
      operationId: trariffMigration
      security:
      - ApiKeyAuth: []
      parameters:
      - name: customerId
        in: path
        description: ID of the customer. It could be MSISDN, email address, or any other customer identifier. if id is msisdn, format must be E.123
        required: true
        schema:
          type: string
      - name: transactionId
        in: header
        description: Client generated unique Id to include for tracing requests
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: string
                    description: HTTP error code extension
                    example: '0000'
                  statusMessage:
                    type: string
                    example: Success
                  sequenceNo:
                    type: string
                    description: A unique identifier for tracking all requests
                    example: '1239848898'
                  data:
                    type: object
                    properties:
                      responseType:
                        example: PRODUCT
                      action:
                        example: PRODUCT_BUY
                      planId:
                        example: NACT_NG_others_2
                      productId:
                        example: '2'
                      productName:
                        example: Change Plan
                      productType:
                        example: others
                      amount:
                        type: string
                        description: The whole units of the amount.
                        example: '100'
                      country:
                        type: string
                        example: NG
                      notification:
                        type: string
                        example: You are successfully migrated to xyz paln.
                  _link:
                    type: object
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
                            example: https://api.mtn.com/v1/customers/2348064816493/plans/trariff
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '999':
          description: Unknown Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - planId
              properties:
                planId:
                  type: string
                  example: NACT_NG_others_2
                providerId:
                  type: string
                  enum:
                  - CIS
                  description: Target system meant to process the request
        required: true
    servers:
    - url: https://api.mtn.com/v2
  /customers/{customerId}/plans/{productCode}:
    get:
      description: Retrieves plans for product
      summary: View customer plans for product
      tags:
      - Customers
      security:
      - ApiKeyAuth: []
      parameters:
      - name: customerId
        in: path
        description: ID of the customer. It could be MSISDN, email address, or any other customer identifier. if id is msisdn, format must be E.123
        required: true
        schema:
          type: string
      - name: productCode
        in: path
        description: Product code for data package
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Customer Plans object. For a successful request, the response will contain all the plans details. If the customer does not have any requested data, then those fields will be null. E.g. if the customer does not have a startDate set, then it will be null. If the customer does not have any Balance set, then the Balance array will be null.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerPlans'
        '207':
          description: If there was an error retrieving some part of the request, then the successful request will be shown, and the remaining failed objects will be be excluded. E.g. if there was an error retrieving Balance information, then the balance object will be empty
          content:
            Partially Successfuls Response, showing valid plan data, but balance object is null:
              example:
                data:
                  type: Postpaid
                  status: Active
                  startDate: '2019-04-12T14:31:21.810Z'
                  endDate: '2021-04-12T14:31:21.810Z'
                  language: '1'
                  balance: null
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
    servers:
    - url: https://api.mtn.com/v2
  /customers/{customerId}/plans/refill:
    patch:
      tags:
      - Customers
      summary: Airtime Refill
      description: Will be used by 3rd-party partners (3PP) for airtime recharge of a prepaid subscriber
      operationId: refillAccount
      security:
      - ApiKeyAuth: []
      parameters:
      - name: customerId
        in: path
        description: ID of the customer. It could be MSISDN, email address, or any other customer identifier. if id is msisdn, format must be E.123
        required: true
        schema:
          type: string
      - name: transactionId
        in: header
        description: Client generated unique Id to include for tracing requests
        required: false
        schema:
          type: string
      - name: sourceSystemId
        in: header
        description: Source system Id to include for tracing requests
        required: false
        schema:
          type: string
      - name: channel
        in: header
        schema:
          type: string
          enum:
          - MyMTNApp
          - MOD
      - name: partnerName
        in: header
        description: Partner Name
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: string
                    description: HTTP error code extension
                  statusMessage:
                    type: string
                  sequenceNo:
                    type: string
                    description: A unique identifier for tracking all requests
                    example: '1239948893'
                  data:
                    type: object
                    properties:
                      amount:
                        type: string
                        description: The whole units of the amount. For example if currency is NGN, then 100 unit is
                      currencyCode:
                        type: string
                        description: The 3-letter currency code defined in ISO 4217.
                      serialStatus:
                        type: string
                        description: Status of the voucher being loaded
                      actionStatus:
                        type: string
                        description: Status of the action being taken
                      status:
                        type: string
                        description: Status of the refill
                      addtionalInformation:
                        type: object
                        properties:
                          name:
                            type: string
                            description: Additional information name
                          description:
                            type: string
                            description: Description of the additional information
                  _link:
                    type: object
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
                            example: https://api.mtn.com/v1/customers/2348064816493/refill
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
        '999':
          description: Unknown Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_3'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - refillType
              properties:
                refillType:
                  type: string
                  description: Specify the refill type
                  enum:
                  - voucher
                  - voucherless
                voucherActivationCode:
                  type: string
                  description: Voucher Activation Code, Required if refillType is Voucher Base.
                refillProfileId:
                  type: string
                  description: Refill Profile ID, Required if refillType is Voucherless.
                transactionAmount:
                  type: string
                  description: Required if refillType is Voucherless
                targetSystem:
                  type: string
                  description: Backend system expected to fulfil the request
                  enum:
                  - PPMS
                  - AIR
                serialNumber:
                  type: string
                  description: Serial number of the voucher incase the refill is voucher
        required: true
    servers:
    - url: https://api.mtn.com/v2
  /customers/{id}/plans/provision:
    post:
      tags:
      - Customers
      summary: Provision the customer and return customer details along with MSISDN
      description: Provision the customer and returns customer details along with MSISDN with SIM number as input.
      operationId: getCustomerDetails
      parameters:
      - name: id
        in: path
        description: This could be either MSISDN or Serial number of the SIM of the customer for who the provision request is raised.
        required: true
        schema:
          type: string
      - 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., ex-'Online, USSD, MyMTNApp, Payjoy'
        required: false
        schema:
          type: string
      - name: idType
        in: query
        description: Mention the type of id- MSISDN or Serial number of the SIM.
        required: true
        schema:
          type: string
          enum:
          - MSISDN
          - SerialNumber
      responses:
        '200':
          description: IBF Provision Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/provisionResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
   

# --- truncated at 32 KB (177 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mtn-group/refs/heads/main/openapi/mtn-group-customers-api-openapi.yml