MTN SIM Management V1

This API provides a comprehensive suite of services for managing SIM-related operations, including SIM swap initiation, status tracking, eligibility checks, and resource management. It ensures secure and efficient handling of customer SIM lifecycle events.

OpenAPI Specification

mtn-group-sim-management-staging.yml Raw ↑
openapi: 3.0.1
info:
  title: Sim Management
  description: "This API provides a comprehensive suite of services for managing SIM-related\
    \ operations, including SIM swap initiation, status tracking, eligibility checks,\
    \ and resource management. It ensures secure and efficient handling of customer\
    \ SIM lifecycle events."
  license:
    name: MADAPI
    url: https://developers.mtn.com/
  version: 3.0.0 - Last updated date:2026-07-15 18:20:11
servers:
- url: https://api.mtn.com/v1
  description: Production Server
security:
- OAuth2: []
tags:
- name: NumberRecycleService
- name: SimManagementService
paths:
  /customers/recycleStatus:
    post:
      tags:
      - NumberRecycleService
      summary: Retrieve Customer Registration Status by specifying the 'customerId'.
      description: "This operation retrieves the current registration status of a\
        \ customer based on their unique 'customerId', providing essential details\
        \ about their service activation and account information."
      operationId: NumberRecycleService_post_customerSimRecycleStatus_customersrecycleStat
      parameters:
      - name: transactionId
        in: header
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              title: SimRecycleRequest
              required:
              - msisdn
              type: object
              properties:
                msisdn:
                  type: string
        required: true
      responses:
        "200":
          description: HTTP 200 indicating the request succeeded; the response body
            follows the documented schema for this operation and includes correlation
            identifiers where applicable for traceability across MTN MADAPI usage
            management flows.
          content:
            application/json:
              schema:
                title: SimRecycleResponse
                type: object
                properties:
                  data:
                    title: SimRecycleStatus
                    type: object
                    properties:
                      recycleStatus:
                        type: string
                      recycleDate:
                        type: string
                        format: date-time
                  transactionId:
                    type: string
                  statusCode:
                    type: string
                  supportMessage:
                    type: string
                  statusMessage:
                    type: string
                  customerId:
                    type: string
                  timestamp:
                    type: string
        "400":
          description: "Bad request. Invalid request parameters, missing required\
            \ fields, or validation errors."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "401":
          description: "Unauthorized. Invalid or missing authorization credentials,\
            \ insufficient permissions, or authentication failure."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "403":
          description: Forbidden. Access denied. The request is valid but the server
            refuses to perform it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "404":
          description: Not found. The requested resource was not found or does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "500":
          description: "Internal server error. Unexpected system failure, database\
            \ connectivity issues, or external service integration problems."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "502":
          description: Bad gateway. The server acting as a gateway received an invalid
            response from an upstream server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "503":
          description: Service unavailable. The server is temporarily unable to handle
            the request due to maintenance or overload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      deprecated: false
  /customers/registration:
    post:
      tags:
      - SimManagementService
      summary: provide the functionality of starter pack registration
      description: "This operation facilitates the registration of new starter packs\
        \ for customers, ensuring that all necessary details are captured and processed\
        \ securely and efficiently for service activation."
      operationId: SimManagementService_post_registration_customersregistratio
      parameters:
      - name: registrationType
        in: query
        required: true
        schema:
          type: string
      - name: transactionId
        in: header
        required: false
        schema:
          type: string
      - name: x-country-code
        in: header
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              title: CustomerRegistrationRequest
              type: object
              properties:
                customerInformation:
                  type: array
                  items:
                    title: CustomerInformation
                    type: object
                    properties:
                      customerType:
                        type: string
                      engagedParty:
                        title: EngagedParty
                        type: object
                        properties:
                          contactMedium:
                            type: array
                            items:
                              title: ContactMedium
                              type: object
                              properties:
                                type:
                                  type: string
                                value:
                                  type: string
                          givenName:
                            type: string
                          middleName:
                            type: string
                          familyName:
                            type: string
                          individualIdentification:
                            type: array
                            items:
                              title: IndividualIdentification
                              type: object
                              properties:
                                placeOfIssue:
                                  type: string
                                issuingDate:
                                  type: string
                                expiryDate:
                                  type: string
                                visaExpiryDate:
                                  type: string
                                documentPurpose:
                                  type: string
                                type:
                                  type: string
                                identificationId:
                                  type: string
                          birthdate:
                            type: string
                          nationality:
                            type: string
                productOfferings:
                  type: array
                  items:
                    title: ProductOffering
                    type: object
                    properties:
                      characteristics:
                        type: array
                        items:
                          title: Characteristic
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            value:
                              type: string
                            type:
                              type: string
                      customFields:
                        title: CustomFields
                        type: object
                        properties:
                          registrationType:
                            type: string
        required: true
      responses:
        "200":
          description: Success
        "400":
          description: "Bad request. Invalid request parameters, missing required\
            \ fields, or validation errors."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "401":
          description: "Unauthorized. Invalid or missing authorization credentials,\
            \ insufficient permissions, or authentication failure."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "403":
          description: Forbidden. Access denied. The request is valid but the server
            refuses to perform it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "404":
          description: Not found. The requested resource was not found or does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "500":
          description: "Internal server error. Unexpected system failure, database\
            \ connectivity issues, or external service integration problems."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "502":
          description: Bad gateway. The server acting as a gateway received an invalid
            response from an upstream server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "503":
          description: Service unavailable. The server is temporarily unable to handle
            the request due to maintenance or overload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      deprecated: false
  /customers/sim/resourcePool:
    get:
      tags:
      - SimManagementService
      summary: Retrieve available Resources.
      description: "This operation retrieves a pool of available resources, such as\
        \ MSISDNs, allowing a customer who needs a new connection to select a desired\
        \ number from the returned list based on their preferences."
      operationId: SimManagementService_get_availableMsisdn_customerssimresource
      parameters:
      - name: numberOfRec
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: pattern
        in: query
        required: false
        schema:
          type: string
      - name: resourceType
        in: query
        required: false
        schema:
          type: string
      - name: transactionId
        in: header
        required: false
        schema:
          type: string
      - name: x-country-code
        in: header
        required: true
        schema:
          type: string
      responses:
        "200":
          description: Success
        "400":
          description: "Bad request. Invalid request parameters, missing required\
            \ fields, or validation errors."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "401":
          description: "Unauthorized. Invalid or missing authorization credentials,\
            \ insufficient permissions, or authentication failure."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "403":
          description: Forbidden. Access denied. The request is valid but the server
            refuses to perform it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "404":
          description: Not found. The requested resource was not found or does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "500":
          description: "Internal server error. Unexpected system failure, database\
            \ connectivity issues, or external service integration problems."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "502":
          description: Bad gateway. The server acting as a gateway received an invalid
            response from an upstream server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "503":
          description: Service unavailable. The server is temporarily unable to handle
            the request due to maintenance or overload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      deprecated: false
  /customers/{customerId}/sim/resourcePool/reserve:
    post:
      tags:
      - SimManagementService
      summary: Reserve a resource such as an MSISDN
      description: Reserve a resource such as an MSISDN so that it cannot be retrieved
        in the operation for retrieving available resources (MSISDN's)
      operationId: SimManagementService_post_reserveResource_customerscustomerIds
      parameters:
      - name: customerId
        in: path
        required: true
        schema:
          type: string
      - name: transactionId
        in: header
        required: false
        schema:
          type: string
      - name: x-country-code
        in: header
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              title: ReserveResourceData
              type: object
              properties:
                numberOfRec:
                  type: integer
                  format: int32
                resources:
                  type: array
                  items:
                    title: Resource
                    type: object
                    properties:
                      id:
                        type: string
                      resourceType:
                        title: ResourceType
                        type: object
                        properties:
                          value:
                            type: string
                      value:
                        type: string
        required: true
      responses:
        "200":
          description: Success
        "400":
          description: "Bad request. Invalid request parameters, missing required\
            \ fields, or validation errors."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "401":
          description: "Unauthorized. Invalid or missing authorization credentials,\
            \ insufficient permissions, or authentication failure."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "403":
          description: Forbidden. Access denied. The request is valid but the server
            refuses to perform it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "404":
          description: Not found. The requested resource was not found or does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "500":
          description: "Internal server error. Unexpected system failure, database\
            \ connectivity issues, or external service integration problems."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "502":
          description: Bad gateway. The server acting as a gateway received an invalid
            response from an upstream server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "503":
          description: Service unavailable. The server is temporarily unable to handle
            the request due to maintenance or overload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      deprecated: false
  /customers/{customerId}/simRecycle/verifyStatus:
    get:
      tags:
      - SimManagementService
      summary: verify sim Recycle status
      description: "This operation allows customers to verify the status of their\
        \ SIM recycle request, providing a confirmation of whether the recycling process\
        \ has been successfully completed or if it is still in progress."
      operationId: SimManagementService_get_simRecycleStatus_customerscustomerIds
      parameters:
      - name: customerId
        in: path
        required: true
        schema:
          type: string
      - name: senderId
        in: query
        required: true
        schema:
          type: string
      - name: transactionId
        in: header
        required: false
        schema:
          type: string
      responses:
        "200":
          description: Success
        "400":
          description: "Bad request. Invalid request parameters, missing required\
            \ fields, or validation errors."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "401":
          description: "Unauthorized. Invalid or missing authorization credentials,\
            \ insufficient permissions, or authentication failure."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "403":
          description: Forbidden. Access denied. The request is valid but the server
            refuses to perform it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "404":
          description: Not found. The requested resource was not found or does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "500":
          description: "Internal server error. Unexpected system failure, database\
            \ connectivity issues, or external service integration problems."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "502":
          description: Bad gateway. The server acting as a gateway received an invalid
            response from an upstream server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "503":
          description: Service unavailable. The server is temporarily unable to handle
            the request due to maintenance or overload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      deprecated: false
  /customers/{customerId}/simSwap:
    put:
      tags:
      - SimManagementService
      summary: Initiate the SIM swap process
      description: "This operation initiates the SIM swap procedure for a customer,\
        \ allowing them to transfer their existing mobile number to a new SIM card\
        \ while maintaining their service."
      operationId: SimManagementService_put_initiateSimSwap_customerscustomerIds
      parameters:
      - name: customerId
        in: path
        required: true
        schema:
          type: string
      - name: targetSystem
        in: header
        required: false
        schema:
          type: string
      - name: transactionId
        in: header
        required: false
        schema:
          type: string
      - name: x-country-code
        in: header
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              title: InitiateSimSwapRequestDto
              type: object
              properties:
                nodeId:
                  type: string
                idNumber:
                  type: string
                dateOfBirth:
                  type: string
                relatedParty:
                  title: RelatedParty
                  type: object
                  properties:
                    id:
                      type: string
                    name:
                      type: string
                    role:
                      type: string
                    geographicLocation:
                      title: GeographicLocation
                      type: object
                      properties:
                        spatialRef:
                          type: string
                        geometry:
                          title: Geometry
                          type: object
                          properties:
                            x:
                              type: string
                            "y":
                              type: string
                            z:
                              type: string
                    '@referredType':
                      type: string
                oldSimNumber:
                  type: string
                newMSISDN:
                  type: string
                newSimNumber:
                  type: string
                reasonCode:
                  type: string
                effectiveFrom:
                  type: string
                lastRechargeDate:
                  type: string
                  format: date-time
                lastRechargeAmount:
                  type: number
                  format: double
                simActivationDate:
                  type: string
                  format: date-time
                frequentlyDialedNumber:
                  type: string
                timestamp:
                  type: string
                mostRecentDeviceName:
                  type: string
                authenticationMethod:
                  type: string
        required: true
      responses:
        "200":
          description: Success
        "400":
          description: "Bad request. Invalid request parameters, missing required\
            \ fields, or validation errors."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "401":
          description: "Unauthorized. Invalid or missing authorization credentials,\
            \ insufficient permissions, or authentication failure."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "403":
          description: Forbidden. Access denied. The request is valid but the server
            refuses to perform it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "404":
          description: Not found. The requested resource was not found or does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "500":
          description: "Internal server error. Unexpected system failure, database\
            \ connectivity issues, or external service integration problems."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "502":
          description: Bad gateway. The server acting as a gateway received an invalid
            response from an upstream server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "503":
          description: Service unavailable. The server is temporarily unable to handle
            the request due to maintenance or overload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      deprecated: false
  /customers/{customerId}/simSwap/details:
    get:
      tags:
      - SimManagementService
      summary: Get sim details
      description: "This operation retrieves detailed information about a customer's\
        \ SIM card, including its current status, associated services, and other relevant\
        \ technical specifications."
      operationId: SimManagementService_get_customerSimDetails_customerscustomerIds
      parameters:
      - name: customerId
        in: path
        required: true
        schema:
          type: string
      - name: targetSystem
        in: header
        required: false
        schema:
          type: string
      - name: transactionId
        in: header
        required: false
        schema:
          type: string
      - name: x-country-code
        in: header
        required: false
        schema:
          type: string
      responses:
        "200":
          description: Success
        "400":
          description: "Bad request. Invalid request parameters, missing required\
            \ fields, or validation errors."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "401":
          description: "Unauthorized. Invalid or missing authorization credentials,\
            \ insufficient permissions, or authentication failure."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "403":
          description: Forbidden. Access denied. The request is valid but the server
            refuses to perform it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "404":
          description: Not found. The requested resource was not found or does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "500":
          description: "Internal server error. Unexpected system failure, database\
            \ connectivity issues, or external service integration problems."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "502":
          description: Bad gateway. The server acting as a gateway received an invalid
            response from an upstream server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "503":
          description: Service unavailable. The server is temporarily unable to handle
            the request due to maintenance or overload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      deprecated: false
  /customers/{customerId}/simSwap/eligibility:
    get:
      tags:
      - SimManagementService
      summary: Get sim swap eligibility
      description: "This operation determines if a customer is eligible for a SIM\
        \ swap based on various criteria such as account status, identification, and\
        \ regulatory requirements."
      operationId: SimManagementService_get_getSimSwapEligibility_customerscustomerIds
      parameters:
      - name: customerId
        in: path
        required: true
        schema:
          type: string
      - name: transactionId
        in: header
        required: false
        schema:
          type: string
      - name: x-country-code
        in: header
        required: false
        schema:
          type: string
      responses:
        "200":
          description: Success
        "400":
          description: "Bad request. Invalid request parameters, missing required\
            \ fields, or validation errors."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "401":
          description: "Unauthorized. Invalid or missing authorization credentials,\
            \ insufficient permissions, or authentication failure."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "403":
          description: Forbidden. Access denied. The request is valid but the server
            refuses to perform it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "404":
          description: Not found. The requested resource was not found or does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "500":
          description: "Internal server error. Unexpected system failure, database\
            \ connectivity issues, or external service integration problems."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "502":
          description: Bad gateway. The server acting as a gateway received an invalid
            response from an upstream server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "503":
          description: Service unavailable. The server is temporarily unable to handle
            the request due to maintenance or overload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      deprecated: false
  /customers/{customerId}/simSwap/nextAuthentication:
    post:
      tags:
      - SimManagementService
      summary: Get next Authentication (Q&A)
      description: "This operation retrieves the next authentication question for\
        \ a given customer, enabling a secure question-and-answer verification process\
        \ during SIM swap requests."
      operationId: SimManagementService_post_getNextauthenticationQuestion_customerscustomerIds
      parameters:
      - name: customerId
        in: path
        required: true
        schema:
          type: string
      - name: transactionId
        in: header
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              title: GetNextAuthenticationQuestionRequestDto
              type: object
              properties:
                previousQuestionsAnswer:
                  title: PreviousQuestionsAnswer
                  type: object
                  properties:
                    questionKey:
                      type: string
                    answerKey:
                      type: string
        required: true
      responses:
        "200":
          description: Success
        "400":
          description: "Bad request. Invalid request parameters, missing required\
            \ fields, or validation errors."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        "401":
          description: "Unauthorized. Invalid or missing authorization credentials,\
            \ insufficient permissions, or authentication failure."
     

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