MTN Group PIN API

The PIN API from MTN Group — 2 operation(s) for pin.

Operations 6

POST /customer/{customerId}/pin To create Pin customer will provide mandatory(customerId, secret, alternateNumber, securityQuestion, tncDetails,channel,transId) attributes. Also will provide emailID as optional i #
GET /customer/{customerId}/pin To validate Pin Details user will enter (customerId, secret, channel, transId) Attributes #
PUT /customer/{customerId}/pin To change Pin Details user will enter (customerId, operationType, currentSecret, newSecret,channel,transId) Attributes #
PATCH /customer/{customerId}/pin To reset Pin Details user will enter (customerId, operationType, validateAnswers, motherName,dateOfBirth,stateOfOrigin,channel,transId) Attributes #
PUT /customer/{customerId}/pinProfile To change Pin Details user will enter (customerId, operationType,securityQuestion,securityAnswer,channel,emailID,tncDetails) Attributes #
GET /customer/{customerId}/pinProfile To get Pin profile Details user will enter (customerId, operationType,securityQuestion,securityAnswer,channel) Attributes #

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-pin-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-pin-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: To facilitate the capability for customer to create/validate/change Pin Information.
  version: 1.0.2
  title: Customer Management PIN API
servers:
- url: https://api.mtn.com/customerPinManagement/v2
security:
- ApiKeyAuth: []
- OAuth2: []
tags:
- name: PIN
paths:
  /customer/{customerId}/pin:
    post:
      tags:
      - PIN
      summary: To create Pin customer will provide mandatory(customerId, secret, alternateNumber, securityQuestion, tncDetails,channel,transId) attributes. Also will provide emailID as optional input
      description: create Pin Details, user must enter the MSISDN/Service Number of Customer, the PIN number, alternate mobile Number , Answer for the Security Question and valid channel id. Finally the user will enter the Unique Trans ID as per below format yyyymmddhhmmss<UniqueSequenceNumber> i.e 20200711123459103
      operationId: createCutomerPin
      parameters:
      - name: transactionId
        in: header
        description: Client generated Id to include for tracing requests.
        required: false
        x-example: 6f0bece6-7df3-4da4-af02-5e7f16e5e6fc
        schema:
          type: string
      - name: customerId
        in: path
        required: true
        description: Customer id will be act as serviceNumber and it can Customer's msisdn, serviceId, accountId, or invoiceId.
        schema:
          type: string
      - name: countryCode
        in: header
        description: Country ISO code. Must be ISO 3166-1 alpha-3 codes (It is a 3 character string)
        required: false
        schema:
          type: string
          enum:
          - NGA
          - UGA
          - ZAF
          - RWA
      - name: secret
        in: header
        description: PIN number to be set
        required: true
        x-example: MTIzNDU2Nzg5MTA=
        schema:
          type: string
          format: base64
      - name: repeatedSecret
        in: header
        description: A repeated secret to validate the provided  secret
        required: false
        x-example: '1234455'
        schema:
          type: string
      - name: emailID
        in: header
        description: Customer’s Email ID
        required: false
        x-example: sharma.anuj@tecnotree.com
        schema:
          type: string
      - name: alternateNumber
        in: header
        description: An alternative identifier associated with the customer, ie. a mobile number, a repeat of secret etc.
        required: false
        x-example: '12345678910'
        schema:
          type: string
      - name: tncDetails
        in: header
        description: Terms & Condition should be “1.0” or as configured for the channel, not required if target system is EWP for PSB IVR
        required: false
        x-example: '1.0'
        schema:
          type: string
      - name: channel
        in: header
        description: Name of the channel, can be a channel information, a credential type depending on the backend system
        x-example: CONVIVA
        required: true
        schema:
          type: string
      - name: targetSystem
        in: query
        description: The backend system expected to fulfil the request
        schema:
          type: string
          enum:
          - EWP
      - name: X-Authorization
        in: header
        description: Client credentials to be authenticated by EWP or ECW
        schema:
          type: string
      - name: description
        in: header
        description: A request info, can be a bank domain name etc.
        x-example: TESTYDFS
        schema:
          type: string
      - name: currency
        in: query
        description: A currency
        x-example: NGN
        schema:
          type: string
      - name: invitationCode
        in: query
        description: An invitation code associated with the PIN creation
        x-example: '12345'
        schema:
          type: string
      - name: segment
        in: query
        required: false
        description: This is the type of customer doing the transaction. This can be customer, agent or admin
        schema:
          type: string
      - name: idType
        in: query
        required: false
        description: Type of the customerId in the path.
        schema:
          type: string
          enum:
          - MSISDN
          - USER
      responses:
        '200':
          description: Success
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/CreatePinResponse'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Customer not found
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not allowed
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json;charset=utf-8:
            schema:
              $ref: '#/components/schemas/SecurityQuestionAnswers'
        description: Security Question and Answer Details, not required when target system is EWP for PSB IVR
    get:
      tags:
      - PIN
      summary: To validate Pin  Details  user will enter (customerId, secret, channel, transId) Attributes
      description: To validate Pin Details, user must enter the MSISDN/Service Number of Customer, the PIN number, channel id. Finally the user will enter the Unique Trans ID as per below format yyyymmddhhmmss<UniqueSequenceNumber> i.e 20200711123459104
      operationId: validateCutomerPin
      parameters:
      - name: transactionId
        in: header
        description: Client generated Id to include for tracing requests.
        required: false
        x-example: 6f0bece6-7df3-4da4-af02-5e7f16e5e6fc
        schema:
          type: string
      - name: customerId
        in: path
        required: true
        description: Customer id will be act as serviceNumber and it can Customer's msisdn, serviceId, accountId, or invoiceId.
        schema:
          type: string
      - name: countryCode
        in: header
        description: Country ISO code. Must be ISO 3166-1 alpha-3 codes (It is a 3 character string)
        required: false
        schema:
          type: string
          enum:
          - NGA
          - UGA
          - ZAF
          - RWA
      - name: secret
        in: header
        description: PIN number to be set
        required: true
        x-example: MTIzNDU2Nzg5MTA=
        schema:
          type: string
          format: base64
      - name: channel
        in: header
        description: channel
        required: true
        x-example: '12345678910'
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/ValidatePinResponse'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Customer not found
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not allowed
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
      - PIN
      summary: To change Pin  Details user will enter (customerId, operationType, currentSecret, newSecret,channel,transId) Attributes
      description: To change Pin Details, user must enter the 'MSISDN/Service Number of Customer'. User has to enter the 'current Secret/PIN' and 'New Secret/PIN'. User will enter Security Answer selected during first time Secret/PIN Creation. Finally the user will enter the 'channel id' & 'Unique Trans ID as per below format yyyymmddhhmmss<UniqueSequenceNumber> i.e 20200711123459105
      operationId: changeCutomerPin
      parameters:
      - name: transactionId
        in: header
        description: Client generated Id to include for tracing requests.
        required: false
        x-example: 6f0bece6-7df3-4da4-af02-5e7f16e5e6fc
        schema:
          type: string
      - name: customerId
        in: path
        required: true
        description: Customer id will be act as serviceNumber and it can Customer's msisdn, serviceId, accountId, or invoiceId.
        schema:
          type: string
      - name: countryCode
        in: header
        description: Country ISO code. Must be ISO 3166-1 alpha-3 codes (It is a 3 character string)
        required: false
        schema:
          type: string
          enum:
          - NGA
          - UGA
          - ZAF
          - RWA
      - name: currentSecret
        in: header
        description: Customers current secret/pin
        required: false
        x-example: MTIzNDU2Nzg5MTA=
        schema:
          type: string
          format: base64
      - name: repeatedSecret
        in: header
        description: Customers repeated password
        required: false
        x-example: '1234'
        schema:
          type: string
      - name: newSecret
        in: header
        description: Customers new secret/pin
        required: true
        x-example: MTIzNDU2Nzg5MTA=
        schema:
          type: string
          format: base64
      - name: securityAnswer
        in: header
        description: Give secured answer
        required: false
        x-example: BMW
        schema:
          type: string
      - name: channel
        in: header
        description: channel
        required: false
        x-example: '12345678910'
        schema:
          type: string
      - name: targetSystem
        in: query
        required: false
        description: The backend system expected to fulfil the request
        schema:
          type: string
          enum:
          - CIS
          - EWP
      - name: X-Authorization
        in: header
        description: Client credentials to be authenticated by EWP or ECW
        schema:
          type: string
      - name: segment
        in: query
        required: false
        description: This is the type of customer doing the transaction. This can be customer, agent or admin
        schema:
          type: string
      - name: idType
        in: query
        required: false
        description: Type of the customerId in the path.
        schema:
          type: string
          enum:
          - MSISDN
          - USER
      - name: requestType
        in: query
        description: The type of operation being performed in the change
        schema:
          type: string
          enum:
          - CHANGE_PIN
          - RESET_PIN
      responses:
        '200':
          description: Success
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/ChangePinResponse'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Customer not found
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not allowed
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
    patch:
      tags:
      - PIN
      summary: To reset Pin  Details user will enter (customerId, operationType, validateAnswers, motherName,dateOfBirth,stateOfOrigin,channel,transId) Attributes
      description: To reset Pin Details, user must enter the 'MSISDN/Service Number of Customer'. User has to enter the Y-indicates validate security answer, N-indicates no validation for Validate Answers'. User will enter Mothers maiden name also will enter the Date of Birth in format YYYY-MM-DD and State of Origin code. Finally the user will enter the 'channel id' & 'Unique Trans ID as per below format yyyymmddhhmmss<UniqueSequenceNumber> i.e 20200711123459105
      operationId: resetCutomerPin
      parameters:
      - name: transactionId
        in: header
        description: Client generated Id to include for tracing requests.
        required: false
        x-example: 6f0bece6-7df3-4da4-af02-5e7f16e5e6fc
        schema:
          type: string
      - name: customerId
        in: path
        required: true
        description: Customer id will be act as serviceNumber and it can Customer's msisdn, serviceId, accountId, or invoiceId.
        schema:
          type: string
      - name: countryCode
        in: header
        description: Country ISO code. Must be ISO 3166-1 alpha-3 codes (It is a 3 character string)
        required: false
        schema:
          type: string
          enum:
          - NGA
          - UGA
          - ZAF
          - RWA
      - name: validateAnswers
        in: header
        description: Y-indicates validate security answer, N-indicates no validation
        required: false
        x-example: Y
        schema:
          type: string
      - name: motherName
        in: query
        description: Mothers maiden name
        required: false
        x-example: abcd
        schema:
          type: string
      - name: dateOfBirth
        in: query
        description: Date of Birth in format YYYY-MM-DD
        required: false
        x-example: '2020-10-13'
        schema:
          type: string
      - name: stateOfOrigin
        in: query
        description: State of Origin code
        required: false
        x-example: '+91'
        schema:
          type: string
      - name: channel
        in: header
        description: channel
        required: true
        x-example: '12345678910'
        schema:
          type: string
      - name: idNumber
        in: query
        description: Customer ID
        required: false
        x-example: '12345678910'
        schema:
          type: string
      - name: description
        in: query
        required: false
        schema:
          type: string
      - name: targetSystem
        in: query
        required: false
        schema:
          type: string
          enum:
          - CIS
      responses:
        '200':
          description: Success
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/resetPinResponse'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Customer not found
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not allowed
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
  /customer/{customerId}/pinProfile:
    put:
      tags:
      - PIN
      summary: To change Pin  Details user will enter (customerId, operationType,securityQuestion,securityAnswer,channel,emailID,tncDetails) Attributes
      description: To change Pin Details, user must enter the 'MSISDN/Service Number of Customer'. User will enter Security Answer to be updated. Finally the user will enter the 'channel id'
      operationId: chanageSecurityQnACutomerPin
      parameters:
      - name: transactionId
        in: header
        description: Client generated Id to include for tracing requests.
        required: false
        x-example: 6f0bece6-7df3-4da4-af02-5e7f16e5e6fc
        schema:
          type: string
      - name: customerId
        in: path
        required: true
        description: Customer id will be act as serviceNumber and it can Customer's msisdn, serviceId, accountId, or invoiceId.
        schema:
          type: string
      - name: countryCode
        in: header
        description: Country ISO code. Must be ISO 3166-1 alpha-3 codes (It is a 3 character string)
        required: false
        schema:
          type: string
          enum:
          - NGA
          - UGA
          - ZAF
          - RWA
      - name: channel
        in: query
        description: channel
        required: false
        x-example: '12345678910'
        schema:
          type: string
      - name: operationType
        in: query
        description: Specify the operation of the request
        required: true
        x-example: updateQA
        schema:
          type: string
          enum:
          - UpdateQA
          - UpdateEmailID
          - UpdateTNC
      - name: emailID
        in: header
        description: Customer’s Email ID
        required: false
        schema:
          type: string
      - name: tncDetails
        in: header
        description: Terms & Condition should be “1.0” or as configured for the channel
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/ValidateSecurityAnswerResponse'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Customer not found
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not allowed
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json;charset=utf-8:
            schema:
              $ref: '#/components/schemas/SecurityQuestionAnswers'
        description: Security Question and Answer Details
    get:
      tags:
      - PIN
      summary: To get Pin profile Details user will enter (customerId, operationType,securityQuestion,securityAnswer,channel) Attributes
      description: To get Pin Details, user must enter the 'MSISDN/Service Number of Customer'. User will enter Security Answer to be updated. Finally the user will enter the 'channel id'
      operationId: getProfileDetails
      parameters:
      - name: transactionId
        in: header
        description: Client generated Id to include for tracing requests.
        required: false
        x-example: 6f0bece6-7df3-4da4-af02-5e7f16e5e6fc
        schema:
          type: string
      - name: customerId
        in: path
        required: true
        description: Customer id will be act as serviceNumber and it can Customer's msisdn, serviceId, accountId, or invoiceId.
        schema:
          type: string
      - name: countryCode
        in: header
        description: Country ISO code. Must be ISO 3166-1 alpha-3 codes (It is a 3 character string)
        required: false
        schema:
          type: string
          enum:
          - NGA
          - UGA
          - ZAF
          - RWA
      - name: channel
        in: query
        description: channel
        required: false
        x-example: '12345678910'
        schema:
          type: string
      - name: operationType
        in: query
        description: Specify the operation of the request
        required: true
        x-example: QueryTNC
        schema:
          type: string
          enum:
          - QueryProfile
          - QueryTNC
      responses:
        '200':
          description: Success
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/GetProfileDetailsResponse'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Customer not found
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not allowed
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    ResetPinResponseData:
      type: object
      title: ResetPinResponseData
      properties:
        message:
          type: string
          example: pin changed and SMS sent to customer Successfully
          description: API Success Message.i.e. Pin changed and SMS sent to customer Successfully
        amountCharged:
          type: object
          properties:
            value:
              type: number
            unit:
              type: string
    securityquestionAnswer:
      type: object
      required:
      - name
      properties:
        securityQuestion:
          type: string
          example: string
          description: user will enter security question
        securityAnswer:
          type: string
          example: string
          description: user will enter answer for security question
    ValidateSecurityAnswerResponse:
      type: object
      required:
      - name
      properties:
        statusCode:
          type: string
          example: '0000'
          description: Success API code. '0000' in case of success
        statusMessage:
          type: string
          example: String
        transactionId:
          type: string
          example: String
        data:
          type: object
          $ref: '#/components/schemas/ValidateSecurityAnswerResponseData'
    ChangePinResponse:
      type: object
      required:
      - name
      properties:
        statusCode:
          type: string
          example: '0000'
          description: Success API code. '0000' in case of success
        statusMessage:
          type: string
          example: String
        transactionId:
          type: string
          example: String
        customerId:
          type: string
          example: String
        data:
          type: object
          $ref: '#/components/schemas/ChangePinResponseData'
    ValidatePinResponseData:
      type: object
      title: ValidatePinResponseData
      properties:
        message:
          type: string
          example: Subscriber secret authenticated successfully
          description: API Success Message. i.e. Subscriber secret authenticated successfully
        forcePasswordChange:
          type: string
          example: 'false'
          description: true/false
        securityQuestionAvailable:
          type: string
          example: 'true'
        emailID:
          type: string
          example: sharma.anuj@tecnotree.com
        tncAccepted:
          type: array
          items:
            type: string
          example:
          - Version: '2.0'
            AcceptedDate: '2020-07-11T13:43:30.830Z'
        tncLastUpdtdate:
          type: string
          example: '2020-07-01T10:10:11.830Z'
        tncLastUpdtversion:
          type: string
          example: '2.0'
    SecurityQuestionAnswers:
      type: array
      items:
        type: object
        properties:
          SecurityQuestionAnswer:
            $ref: '#/components/schemas/securityquestionAnswer'
    ValidatePinResponse:
      type: object
      required:
      - name
      properties:
        statusCode:
          type: string
          example: '0000'
          description: Success API code. '0000' in case of success
        statusMessage:
          type: string
          example: String
        transactionId:
          type: string
          example: String
        data:
          type: object
          $ref: '#/components/schemas/ValidatePinResponseData'
    GetProfileDetailsResponseData:
      type: object
      title: GetProfileDetailsResponseData
      properties:
        message:
          type: string
          example: Terms & Conditions retreived Successfully
          description: API Success Message. i.e. This is Smartapp Terms & Conditions
    CreatePinResponse:
      type: object
      required:
      - name
      properties:
        statusCode:
          type: string
          example: '0000'
          description: Success API code. '0000' in case of success
        statusMessage:
          type: string
          example: String
        transactionId:
          type: string
          example: String
        data:
          type: object
          $ref: '#/components/schemas/CreatePinResponseData'
    CreatePinResponseData:
      type: object
      title: CreatePinResponseData
      properties:
        message:
          type: string
          example: Subscriber secret created successfully
          description: API Success Message. i.e. Subscriber secret created successfully
    ValidateSecurityAnswerResponseData:
      type: object
      title: ValidateSecurityAnswerResponseData
      properties:
        message:
          type: string
          example: Subscriber answer validated successfully
          description: API Success Message.i.e. Subscriber answer validated successfully
    ChangePinResponseData:
      type: object
      title: ChangePinResponseData
      properties:
        message:
          type: string
          example: Subscriber secret has been changed and SMS sent successfully
          description: API Success Message.i.e. Subscriber secret has been changed and SMS sent successfully
        amountCharged:
          type: object
          properties:
            value:
              type: number
            unit:
              type: string
    resetPinResponse:
      type: object
      required:
      - name
      properties:
        statusCode:
          type: string
          example: '0000'
          description: Success API code. '0000' in case of success
        statusMessage:
          type: string
          example: String
        transactionId:
          type: string
          example: String
        data:
          type: object
          $ref: '#/components/schemas/ResetPinResponseData'
    GetProfileDetailsResponse:
      type: object
      required:
      - name
      properties:
        statusCode:
          type: string
          example: '0000'
          description: Success API code. '0000' in case of success
        statusMessage:
          type: string
          example: String
        transactionId:
          type: string
          example: String
        data:
          type: object
          $ref: '#/components/schemas/GetProfileDetailsResponseData'
    Error:
      type: object
      required:
      - statusCode
      - statusMessage
      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: '1000'
        statusMessage:
          type: string
          description: More details and corrective actions related to the error which can be shown to a client
        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: This is the same transactionId that is sent in the request
          example: cdfa7bc3-cbcd-473b-a743-4fc90dcc91e4
        timestamp:
          type: string
          format: date-time
          description: Timestamp that the error occurred
          example: 2020-08-01T12:34
        path:
          type: string
          description: The path that caused the error
          example: /customers/234805738473/pin
        method:
          type: string
          description: The HTTP method type that was used
          example: GET
  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/accesstoken?grant_type=client_credentials