openapi: 3.0.1 info: title: Product V3 description: "AN MTN API that displays the catalog of products available for customers\ \ to browse and purchase, tailored to their region." license: name: MADAPI url: https://developers.mtn.com/ version: 3.0.0 - Last updated date:2026-10-22 19:37:59 servers: - url: https://api.mtn.com/v1 description: Production Server security: - OAuth2: [] tags: - name: GroupShare - name: ProductService paths: /products: post: tags: - ProductService summary: Set product offers using offer ID and request parameters. description: "Processes a product offer request by setting the offers based\ \ on provided identifiers, country code, and request type." operationId: ProductService_post_setOffersUsingId_products parameters: - name: countryCode in: header required: false schema: type: string - name: languageCode in: header required: false schema: type: string - name: requestType in: query required: false schema: type: string - name: targetSystem in: query required: false schema: type: string - name: transactionId in: header required: false schema: type: string requestBody: content: application/json: schema: title: ProductOfferRequest type: object properties: productId: type: string customerId: type: string startDateTime: type: string productType: type: integer format: int32 VoiceAmount: type: number format: double DataAmount: type: number format: double productBenefitInfo: type: array items: title: ProductBenefitInfo type: object properties: Amount: type: string Validity: type: string Frequency: type: string Category: type: string ValidityInDays: type: integer format: int32 VoiceAmount: type: number format: double DataAmount: type: number format: double 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: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_offer_OfferResponse' "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /products/beneficiaries: get: tags: - GroupShare summary: List all group share beneficiaries. description: Get all group share beneficiary to the group so the beneficiary can enjoy the available data packages for the group. operationId: GroupShare_get_addGroupShareBeneficiary_productsbeneficiarie parameters: - name: targetSystem in: header required: true schema: type: string - name: transactionId in: header required: true schema: type: string - name: x-country-code in: header required: true schema: type: string - name: x-requester-id in: header required: true schema: type: string 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: BeneficiaryResponse type: object properties: statusCode: type: string customerId: type: string error: title: APIError type: object properties: statusMessage: type: string supportMessage: type: string transactionId: type: string timestamp: type: string path: type: string method: type: string statusCode: type: string downstreamStatusCode: type: integer format: int32 sequenceNo: type: string data: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string timeStamp: type: string path: type: string method: type: string sequenceNo: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false post: tags: - GroupShare summary: Add new group share beneficiary. description: Add a new group share beneficiary to the group so the beneficiary can enjoy the available data packages for the group. operationId: GroupShare_post_addGroupShareBeneficiary_productsbeneficiarie parameters: - name: targetSystem in: header required: true schema: type: string - name: transactionId in: header required: true schema: type: string - name: x-country-code in: header required: true schema: type: string - name: x-requester-id in: header required: true schema: type: string requestBody: content: application/json: schema: title: AddBeneficiaryListRequest type: object properties: data: type: array items: title: AddBeneficiaryRequest type: object properties: msisdn: type: string name: 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: AddBeneficiaryResponse type: object properties: statusCode: type: string customerId: type: string error: $ref: '#/components/schemas/com_mtn_madapi_commons_models_error_APIError' data: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string timeStamp: type: string path: type: string method: type: string sequenceNo: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /products/productOfferings: get: tags: - ProductService summary: View product catalogue offers. description: "Retrieves the catalogue of Products that are available for purchase,\ \ with support for filtering and top offer selection." operationId: ProductService_get_getContractOffers_productsproductOffer parameters: - name: countryCode in: header required: false schema: type: string - name: limit in: query required: false schema: type: integer format: int32 - name: partnerName in: header required: false schema: type: string - name: senderId in: header required: true schema: type: string - name: siteId in: query required: true schema: type: string - name: topOffers in: query required: false schema: type: boolean - name: transactionId in: header required: false schema: type: string - name: x-authorization-claims in: header required: false schema: type: string - name: yelloTraderId in: query required: false schema: type: string 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: ContractOffersResponse type: object properties: statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string sequenceNo: type: string cookie: type: string Offers: type: array items: title: Offer type: object properties: id: type: string offerRank: type: integer format: int32 offerPrice: title: OfferPrice type: object properties: unit: type: string value: type: number format: double href: type: string description: type: string simOnly: type: boolean name: type: string statusReason: type: string version: type: string offerProductId: type: string duration: type: string yelloTraderId: type: string prodSpecCharValueUse: type: array items: title: ProdSpecCharValueUse type: object properties: description: type: string deviceSize: type: integer format: int32 deviceSizeUOM: type: string name: type: string deviceBrandName: type: string deviceRank: type: integer format: int32 devicePrice: title: DevicePrice type: object properties: unit: type: string value: type: number format: double deviceType: type: string productSpecCharacteristicValue: type: array items: title: ProductSpecCharacteristicValue type: object properties: deviceColor: type: string deviceColorCode: type: string deviceSkuId: type: string imageURL: type: string lowStock: type: boolean productSpecification: title: ProductSpecification type: object properties: id: type: string name: type: string type: type: string validity: type: string planPrice: title: PlanPrice type: object properties: unit: type: string value: type: number format: double planSize: type: string planFreebies: title: PlanFreebies type: object properties: id: type: string name: type: string type: type: string validity: type: string planPrice: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_PlanPrice' validFor: title: ValidFor type: object properties: endDateTime: type: string format: date-time startDateTime: type: string format: date-time productOfferingAdditionalAttributes: type: array items: title: ProductOfferingAdditionalAttribute type: object properties: id: type: string name: type: string type: type: string validity: type: string planPrice: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_PlanPrice' validFor: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_ValidFor' topOffers: type: array items: title: TopOffer type: object properties: id: type: string offerRank: type: integer format: int32 offerPrice: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_OfferPrice' href: type: string description: type: string simOnly: type: boolean name: type: string statusReason: type: string version: type: string offerProductId: type: string duration: type: string yelloTraderId: type: string prodSpecCharValueUse: type: array items: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_ProdSpecCharValueUse' productOfferingAdditionalAttributes: type: array items: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_ProductOfferingAdditionalAttribute' validFor: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_ValidFor' _link: title: Link type: object properties: self: title: Self type: object properties: href: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /products/{customerId}: delete: tags: - ProductService summary: Delete product offers. description: This deletes a specific product offer for a customer that is based on the provided identifiers and optional parameters. operationId: ProductService_delete_deleteOffers_productscustomerId parameters: - name: countryCode in: header required: false schema: type: string - name: customerId in: path required: true schema: type: string - name: id in: query required: false schema: type: string - name: targetSystem in: query required: false schema: type: string - name: transactionId in: query required: false schema: type: string 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: OfferResponse type: object properties: statusCode: type: string statusMessage: type: string transactionId: type: string sequenceNo: type: string customerId: type: string data: type: array items: title: Offer type: object properties: validityPeriod: type: integer format: int32 expireTime: type: string message: type: string messageLanguage: type: string messageEncoding: type: string id: type: string validityUnit: type: string category: type: string subCategory: type: string description: type: string offerType: type: string order: type: string shortMessage: type: string name: type: string nodeId: type: string label: type: string validity: type: string volume: type: integer format: int32 unit: type: string additionalParams: title: AdditionalParams type: object properties: offerPrice: type: string offerId: type: string rewardValidity: type: string productId: type: string activationId: type: string buyForOthers: type: boolean bonus: type: boolean dataAmount: type: string dataValidityDays: type: string voiceAmount: type: string voiceValidityDays: type: string provisionSrc: type: string subscriptionManager: type: string bundle: title: Bundle type: object properties: type: type: string family: type: string category: type: string Group: type: string currency: type: string productId: type: string productId: type: string productType: type: string additionalInformation: title: AdditionalInformation type: object properties: name: type: string value: type: string startDateTime: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /products/{customerId}/beneficiaries: get: tags: - GroupShare summary: Get group share beneficiary information description: "Retrieve detailed information about beneficiaries in the group\ \ share program, including their association and entitlements." operationId: GroupShare_get_getGroupShareBeneficiaryInfo_productscustomerIdbe parameters: - name: customerId in: path required: true schema: type: string - name: targetSystem in: header required: true schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-country-code in: header required: true schema: type: string - name: x-requester-id in: header required: true schema: type: string 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: BeneficiaryInfoResponse type: object properties: statusCode: type: string customerId: type: string error: $ref: '#/components/schemas/com_mtn_madapi_commons_models_error_APIError' data: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string timeStamp: type: string path: type: string method: type: string sequenceNo: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /products/{customerId}/blacklist/{productId}: post: tags: - ProductService summary: Blacklist customer for product/service description: "Blacklist the customer from consuming a specific product or service,\ \ with support for optional targeting parameters." operationId: ProductService_post_blacklistSubscriber_productscustomerIdbl parameters: - name: customerId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string - name: sequenceNo in: header required: false schema: type: string - name: startTime in: query required: false schema: type: string - name: targetSystem in: query required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-origin-channelid in: header required: false schema: type: string requestBody: content: application/json: schema: title: BlacklistRequest type: object properties: nodeId: type: string productType: type: string productCategory: type: string registrationChannel: 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: BlacklistSubscriberResponse type: object properties: statusCode: type: string statusMessage: type: string transactionId: type: string customerId: type: string sequenceNo: type: string nodeId: type: string registrationChannel: type: string notification: type: string path: type: string eligible: type: boolean data: title: ResponseData type: object properties: id: type: string name: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /products/{customerId}/category: get: tags: - ProductService summary: Get MTN4ME product category description: "Retrieves the list of product categories that are available to\ \ a subscriber, based on product type and system filters." operationId: ProductService_get_getCategoryCisTechnoMerge_productscustomerIdca parameters: - name: countryCode in: header required: false schema: type: string - name: customerId in: path required: true schema: type: string - name: nodeId in: query required: true schema: type: string - name: partnerName in: header required: false schema: type: string - name: productProviderId in: query required: false schema: type: string - name: productType in: query required: true schema: type: string - name: targetSystem in: query required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-authorization-claims in: header required: false schema: type: string 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: CategoryResponse type: object properties: statusCode: type: string statusMessage: type: string transactionId: type: string data: type: array items: type: string sequenceNo: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /products/{customerId}/checkBalance: get: tags: - ProductService summary: Get All Type of balance for a subscriber product. description: "Fetches and returns the list of available balances associated\ \ with a subscriber's product, including optional filters." operationId: ProductService_get_getBalances_productscustomerIdch parameters: - name: appCpid in: query required: false schema: type: string - name: customerId in: path required: true schema: type: string - name: nodeId in: query required: false schema: type: string - name: productId in: query required: false schema: type: string - name: productType in: query required: true schema: type: string - name: transactionId in: header required: true schema: type: string 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: ACSProductBalancesResponse type: object properties: statusCode: type: string message: type: string transactionId: type: string success: type: boolean data: title: ACSProductBalances type: object properties: dataBalance: type: string voiceOnnet: type: string voiceOffnet: type: string smsOnnet: type: string smsOffnet: type: string international: type: string money: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /products/{customerId}/dormant: post: tags: - ProductService summary: Dormant status description: "This sets the user's status to Dormant which indicates user inactivity\ \ or suspension, with optional system targeting." operationId: ProductService_post_setDormantStatus_productscustomerIddo parameters: - name: countryCode in: header required: false schema: type: string - name: customerId in: path required: true schema: type: string - name: targetSystem in: query required: false schema: type: string - name: transactionId in: query required: false schema: type: string - name: x-origin-channelid in: header required: false schema: type: string requestBody: content: application/json: schema: title: DormantStatusRequest type: object properties: nodeId: type: string registrationChannel: 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: BundleEligibility type: object properties: statusCode: type: string statusMessage: type: string transactionId: type: string sequenceNo: type: string customerId: type: string notification: type: string nodeId: type: string registrationChannel: type: string eligible: type: string data: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_Product' "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /products/{customerId}/eligibility/{productId}: get: tags: - ProductService summary: Get product price. description: "Retrieves the price and eligibility details of a product for a\ \ specific customer, based on system and product type filters." operationId: ProductService_get_getBundleEligibility_productscustomerIdel parameters: - name: Credentials in: header required: false schema: type: string - name: countryCode in: header required: false schema: type: string - name: customerId in: path required: true schema: type: string - name: nodeId in: query required: false schema: type: string - name: productCategory in: query required: false schema: type: string - name: productId in: path required: true schema: type: string - name: productType in: query required: false schema: type: string - name: registrationChannel in: query required: false schema: type: string - name: requesterId in: query required: false schema: type: string - name: targetSystem in: query required: false schema: type: string - name: transactionId in: query required: false schema: type: string - name: viewType in: query required: false schema: type: string - name: x-authorization-claims in: header required: false schema: type: string - name: x-origin-channelid in: header required: false schema: type: string 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: BundlePrice type: object properties: statusCode: type: string customerId: type: string data: title: Product type: object properties: id: type: string name: type: string currency: type: string amount: type: string bundleCategory: type: string bundleType: type: string bundleValidity: type: string minAmount: type: string maxAmount: type: string displayName: type: string isFlexy: type: boolean cost: title: CostValue type: object properties: amount: type: string currency: type: string status: type: string message: type: string transactionId: type: string sequenceNo: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /products/{customerId}/eligible: get: tags: - ProductService summary: Get MTN4ME offers. description: "Retrieves eligible MTN4ME and CVM product offers for a subscriber,\ \ filtered by product type, offer category, node identifier, and related system\ \ parameters." operationId: ProductService_get_getOffer_productscustomerIdel parameters: - name: appCpid in: query required: false schema: type: string - name: budget in: query required: false schema: type: integer format: int32 - name: bundleType in: query required: false schema: type: string - name: countryCode in: header required: false schema: type: string - name: credentials in: header required: false schema: type: string - name: customerId in: path required: true schema: type: string - name: idType in: query required: false schema: type: string - name: location in: query required: false schema: type: string - name: lookUp3PP in: query required: false schema: type: boolean - name: nodeId in: query required: false schema: type: string - name: offerCategory in: query required: false schema: type: string - name: partnerName in: header required: false schema: type: string - name: prefLanguage in: query required: false schema: type: string - name: productType in: query required: true schema: type: string - name: targetSystem in: query required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: validityPeriod in: query required: false schema: type: string - name: validityUnit in: query required: false schema: type: string - name: volume in: query required: false schema: type: integer format: int32 - name: x-authorization-claims in: header required: false schema: type: string 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: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_offer_OfferResponse' "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /products/{customerId}/{productId}: get: tags: - ProductService summary: Get product price. description: "Retrieves the price of a product available for purchase for a\ \ customer, with optional filters like provider and promotion code." operationId: ProductService_get_getProductPriceMerge_productscustomerIdpr parameters: - name: Credentials in: header required: false schema: type: string - name: countryCode in: header required: false schema: type: string - name: customerId in: path required: true schema: type: string - name: nodeId in: query required: false schema: type: string - name: partnerName in: header required: false schema: type: string - name: productId in: path required: true schema: type: string - name: productProviderId in: query required: false schema: type: string - name: promotionCode in: query required: false schema: type: string - name: transactionId in: query required: false schema: type: string - name: x-authorization-claims in: header required: false schema: type: string 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: type: object "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /products/{id}: get: tags: - ProductService summary: View product catalogue. description: "Retrieves the catalogue of products available for purchase, including\ \ filtering options by category, provider, and offer type." operationId: ProductService_get_getCatalogue_productsid parameters: - name: Credentials in: header required: false schema: type: string - name: agentId in: query required: false schema: type: string - name: amount in: query required: false schema: type: string - name: autoRenewal in: query required: false schema: type: string - name: bundleCategory in: query required: false schema: type: string - name: category in: query required: false schema: type: string - name: channel in: query required: false schema: type: string - name: countryCode in: header required: false schema: type: string - name: extRequest in: query required: false schema: type: string - name: filterByMABand in: query required: false schema: type: boolean - name: id in: path required: true schema: type: string - name: languageCode in: header required: false schema: type: string - name: nodeId in: query required: false schema: type: string - name: offerName in: query required: false schema: type: string - name: offerQuantity in: query required: false schema: type: string - name: offerType in: query required: false schema: type: string - name: pageNumber in: query required: false schema: type: string - name: pageSize in: query required: false schema: type: string - name: partnerName in: header required: false schema: type: string - name: prefLanguage in: query required: false schema: type: string - name: productProviderId in: query required: false schema: type: string - name: productRef in: query required: false schema: type: string - name: requestType in: query required: false schema: type: string - name: serviceClass in: query required: false schema: type: string - name: subCategory in: query required: false schema: type: string - name: targetSystem in: query required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: validity in: query required: false schema: type: string - name: x-authorization-claims in: header required: false schema: type: string - name: x-requester-id in: header required: false schema: type: string 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: type: object "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /products/{id}/comvCatalogue: get: tags: - ProductService summary: View product catalogue offers for Comviva. description: "Retrieves the catalogue of Products that are available for purchase\ \ for Comviva, with optional filters enabled to refine results." operationId: ProductService_get_getProductCatalogueComv_productsidcomvCatalo parameters: - name: countryCode in: header required: false schema: type: string - name: id in: path required: true schema: type: string - name: partnerName in: header required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-authorization-claims in: header required: false schema: type: string 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: ServiceInfoResponseData type: object properties: serviceId: type: string serviceType: type: string spId: type: string spName: type: string secondarySpId: type: string secondarySpName: type: string tenantId: type: string tenantName: type: string serviceName: type: string serviceDesc: type: string beareList: type: array items: title: BeareList type: object properties: bearerId: type: string bearerName: type: string status: type: string cli: type: string isCallBackReq: type: string primaryURL: type: string category: type: string chargingMode: type: string serviceValidity: type: string planMapList: type: array items: title: PlanMapList type: object properties: planId: type: string renPlanId: type: string planName: type: string planDesc: type: string subPrice: type: string renPrice: type: string subAdjustmentCode: type: string renAdjustmentCode: type: string pricePoint: type: string renPricePoint: type: string lifeCycleId: type: string renLifeCycleId: type: string subKeywords: type: string unsubKeyWords: type: string shortcode: type: string validityPeriod: type: string gracePeriod: type: string suspendPeriod: type: string parkingPeriod: type: string allowInGrace: type: string disableFallback: type: string autoRenew: type: string isfallBackReq: type: string startDate: type: string endDate: type: string isFoc: type: string fbPlan: title: FbPlan type: object properties: planId: type: string maPlanId: type: string parentPlanId: type: string planName: type: string planDesc: type: string price: type: string adjustmentCode: type: string pricePoint: type: string lifeCycleId: type: string validityPeriod: type: string gracePeriod: type: string suspendPeriod: type: string parkingPeriod: type: string isfallBackReq: type: string renValPeriod: type: string isGenPlanBulkUpload: type: boolean fbPlan: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_comvcatalogue_FbPlan' fbType: type: string timeDurationList: type: array items: type: string specialDaysList: type: array items: type: string focDaysList: type: array items: type: string renValPeriod: type: string planMsgList: type: array items: title: PlanMsgList type: object properties: msgTypeId: type: string msgTypeName: type: string isFreqReq: type: string frequencyId: type: string frequency: type: string msgList: type: array items: title: MsgList type: object properties: msgId: type: string msgTypeId: type: string langCode: type: string langName: type: string msg: type: string isFilled: type: string isActive: type: string isRenFbReq: type: string renFbPlan: title: RenFbPlan type: object properties: planId: type: string maPlanId: type: string parentPlanId: type: string planName: type: string planDesc: type: string price: type: string adjustmentCode: type: string pricePoint: type: string lifeCycleId: type: string validityPeriod: type: string gracePeriod: type: string suspendPeriod: type: string parkingPeriod: type: string isfallBackReq: type: string fbPlan: type: array items: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_comvcatalogue_FbPlan' renValPeriod: type: string fbType: type: string isGenPlanBulkUpload: type: boolean isPlanLinked: type: string isGraceChargeable: type: string isSuspendChargeable: type: string allowInSuspend: type: string isParkingChargeable: type: string allowInParking: type: string deactivationMode: type: string periodicityPlan: type: string periodicityPeriod: type: string resubsAllowed: type: string isGenPlanBulkUpload: type: boolean validityType: type: string serviceMsgList: type: array items: type: string status: type: string activeStatus: type: string serviceAction: type: string typeOfService: type: string isConsentReq: type: string consentKeywords: type: string consentChannels: type: array items: title: ConsentChannel type: object properties: bearerId: type: string bearerName: type: string consentChannelId: type: string consentChannelName: type: string smscCharging: type: string freeCounter: type: string isPriceQueryReq: type: string isBalanceQueryReq: type: string accessTo: type: string isFreeMOService: type: string isReady: type: string subMtCpPerDay: type: string mtPushEnabled: type: string isDirectSub: type: string isThirdConsentReq: type: string isPlanLinked: type: string isServiceTypeUserDef: type: string error: title: APIError type: object properties: status: type: string message: type: string transactionId: type: string timestamp: type: string error: type: string path: type: string sequenceNo: type: string statusCode: type: string statusMessage: type: string sequenceNo: type: string transactionId: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /saved-products: get: tags: - ProductService summary: View saved product catalogue. description: "Retrieves the saved product catalogue containing a list of products\ \ available for purchase, based on partner and country context." operationId: ProductService_get_getCatalogue_savedproducts parameters: - name: countryCode in: header required: true schema: type: string - name: partner in: header required: true schema: type: string - name: requestType in: query required: true schema: type: string - name: transactionId in: header required: true schema: type: string 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: ProductListResponse type: object properties: statusMessage: type: string supportMessage: type: string transactionId: type: string statusCode: type: string customerId: type: string data: type: array items: title: ProductDetail type: object properties: id: type: string type: type: string name: type: string validity: type: string validityType: type: string amount: type: string category: type: string description: type: string sequenceNo: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "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' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false components: schemas: za_co_mtn_aggregator_model_response_atgcatalogue_ProdSpecCharValueUse: title: ProdSpecCharValueUse type: object properties: description: type: string deviceSize: type: integer format: int32 deviceSizeUOM: type: string name: type: string deviceBrandName: type: string deviceRank: type: integer format: int32 devicePrice: title: DevicePrice type: object properties: unit: type: string value: type: number format: double deviceType: type: string productSpecCharacteristicValue: type: array items: title: ProductSpecCharacteristicValue type: object properties: deviceColor: type: string deviceColorCode: type: string deviceSkuId: type: string imageURL: type: string lowStock: type: boolean productSpecification: title: ProductSpecification type: object properties: id: type: string name: type: string type: type: string validity: type: string planPrice: title: PlanPrice type: object properties: unit: type: string value: type: number format: double planSize: type: string planFreebies: title: PlanFreebies type: object properties: id: type: string name: type: string type: type: string validity: type: string planPrice: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_PlanPrice' validFor: title: ValidFor type: object properties: endDateTime: type: string format: date-time startDateTime: type: string format: date-time za_co_mtn_aggregator_model_response_databundle_ProductDetail: title: ProductDetail type: object properties: id: type: string type: type: string name: type: string validity: type: string validityType: type: string amount: type: string category: type: string description: type: string za_co_mtn_aggregator_model_response_comvcatalogue_MsgList: title: MsgList type: object properties: msgId: type: string msgTypeId: type: string langCode: type: string langName: type: string msg: type: string isFilled: type: string za_co_mtn_aggregator_model_response_blacklist_BlacklistSubscriberResponse: title: BlacklistSubscriberResponse type: object properties: statusCode: type: string statusMessage: type: string transactionId: type: string customerId: type: string sequenceNo: type: string nodeId: type: string registrationChannel: type: string notification: type: string path: type: string eligible: type: boolean data: title: ResponseData type: object properties: id: type: string name: type: string za_co_mtn_aggregator_model_response_comvcatalogue_PlanMsgList: title: PlanMsgList type: object properties: msgTypeId: type: string msgTypeName: type: string isFreqReq: type: string frequencyId: type: string frequency: type: string msgList: type: array items: title: MsgList type: object properties: msgId: type: string msgTypeId: type: string langCode: type: string langName: type: string msg: type: string isFilled: type: string isActive: type: string za_co_mtn_aggregator_model_groupshare_BeneficiaryInfoResponse: title: BeneficiaryInfoResponse type: object properties: statusCode: type: string customerId: type: string error: $ref: '#/components/schemas/com_mtn_madapi_commons_models_error_APIError' data: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string timeStamp: type: string path: type: string method: type: string sequenceNo: type: string za_co_mtn_aggregator_model_response_atgcatalogue_OfferPrice: title: OfferPrice type: object properties: unit: type: string value: type: number format: double za_co_mtn_aggregator_model_response_atgcatalogue_ProductSpecCharacteristicValue: title: ProductSpecCharacteristicValue type: object properties: deviceColor: type: string deviceColorCode: type: string deviceSkuId: type: string imageURL: type: string lowStock: type: boolean APIError: title: APIError required: - statusCode - statusMessage type: object properties: statusCode: type: string description: Error status code statusMessage: type: string description: Human-readable error message supportMessage: type: string description: Technical support message or error code for troubleshooting transactionId: type: string description: Transaction identifier for tracking and correlation sequenceNo: type: string description: Sequence number for request tracking timestamp: type: string description: Error timestamp in ISO 8601 format format: date-time path: type: string description: API endpoint path where the error occurred method: type: string description: HTTP method of the request that caused the error downstreamStatusCode: type: string description: Downstream service error code if applicable description: Generic MADAPI error response structure za_co_mtn_aggregator_model_groupshare_AddBeneficiaryListRequest: title: AddBeneficiaryListRequest type: object properties: data: type: array items: title: AddBeneficiaryRequest type: object properties: msisdn: type: string name: type: string za_co_mtn_aggregator_model_groupshare_AddBeneficiaryResponse: title: AddBeneficiaryResponse type: object properties: statusCode: type: string customerId: type: string error: $ref: '#/components/schemas/com_mtn_madapi_commons_models_error_APIError' data: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string timeStamp: type: string path: type: string method: type: string sequenceNo: type: string za_co_mtn_aggregator_model_response_atgcatalogue_Offer: title: Offer type: object properties: id: type: string offerRank: type: integer format: int32 offerPrice: title: OfferPrice type: object properties: unit: type: string value: type: number format: double href: type: string description: type: string simOnly: type: boolean name: type: string statusReason: type: string version: type: string offerProductId: type: string duration: type: string yelloTraderId: type: string prodSpecCharValueUse: type: array items: title: ProdSpecCharValueUse type: object properties: description: type: string deviceSize: type: integer format: int32 deviceSizeUOM: type: string name: type: string deviceBrandName: type: string deviceRank: type: integer format: int32 devicePrice: title: DevicePrice type: object properties: unit: type: string value: type: number format: double deviceType: type: string productSpecCharacteristicValue: type: array items: title: ProductSpecCharacteristicValue type: object properties: deviceColor: type: string deviceColorCode: type: string deviceSkuId: type: string imageURL: type: string lowStock: type: boolean productSpecification: title: ProductSpecification type: object properties: id: type: string name: type: string type: type: string validity: type: string planPrice: title: PlanPrice type: object properties: unit: type: string value: type: number format: double planSize: type: string planFreebies: title: PlanFreebies type: object properties: id: type: string name: type: string type: type: string validity: type: string planPrice: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_PlanPrice' validFor: title: ValidFor type: object properties: endDateTime: type: string format: date-time startDateTime: type: string format: date-time productOfferingAdditionalAttributes: type: array items: title: ProductOfferingAdditionalAttribute type: object properties: id: type: string name: type: string type: type: string validity: type: string planPrice: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_PlanPrice' validFor: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_ValidFor' za_co_mtn_aggregator_model_response_acs_ACSProductBalancesResponse: title: ACSProductBalancesResponse type: object properties: statusCode: type: string message: type: string transactionId: type: string success: type: boolean data: title: ACSProductBalances type: object properties: dataBalance: type: string voiceOnnet: type: string voiceOffnet: type: string smsOnnet: type: string smsOffnet: type: string international: type: string money: type: string za_co_mtn_aggregator_model_groupshare_AddBeneficiaryRequest: title: AddBeneficiaryRequest type: object properties: msisdn: type: string name: type: string za_co_mtn_aggregator_model_response_offer_Bundle: title: Bundle type: object properties: type: type: string family: type: string category: type: string Group: type: string currency: type: string productId: type: string za_co_mtn_aggregator_model_response_atgcatalogue_TopOffer: title: TopOffer type: object properties: id: type: string offerRank: type: integer format: int32 offerPrice: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_OfferPrice' href: type: string description: type: string simOnly: type: boolean name: type: string statusReason: type: string version: type: string offerProductId: type: string duration: type: string yelloTraderId: type: string prodSpecCharValueUse: type: array items: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_ProdSpecCharValueUse' productOfferingAdditionalAttributes: type: array items: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_ProductOfferingAdditionalAttribute' validFor: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_ValidFor' za_co_mtn_aggregator_model_response_comvcatalogue_FbPlan: title: FbPlan type: object properties: planId: type: string maPlanId: type: string parentPlanId: type: string planName: type: string planDesc: type: string price: type: string adjustmentCode: type: string pricePoint: type: string lifeCycleId: type: string validityPeriod: type: string gracePeriod: type: string suspendPeriod: type: string parkingPeriod: type: string isfallBackReq: type: string renValPeriod: type: string isGenPlanBulkUpload: type: boolean fbPlan: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_comvcatalogue_FbPlan' fbType: type: string za_co_mtn_aggregator_model_response_offer_AdditionalInformation: title: AdditionalInformation type: object properties: name: type: string value: type: string za_co_mtn_aggregator_model_response_price_BundlePrice: title: BundlePrice type: object properties: statusCode: type: string customerId: type: string data: title: Product type: object properties: id: type: string name: type: string currency: type: string amount: type: string bundleCategory: type: string bundleType: type: string bundleValidity: type: string minAmount: type: string maxAmount: type: string displayName: type: string isFlexy: type: boolean cost: title: CostValue type: object properties: amount: type: string currency: type: string status: type: string message: type: string transactionId: type: string sequenceNo: type: string za_co_mtn_aggregator_model_request_DormantStatusRequest: title: DormantStatusRequest type: object properties: nodeId: type: string registrationChannel: type: string za_co_mtn_aggregator_model_response_comvcatalogue_BeareList: title: BeareList type: object properties: bearerId: type: string bearerName: type: string status: type: string za_co_mtn_aggregator_model_request_BlacklistRequest: title: BlacklistRequest type: object properties: nodeId: type: string productType: type: string productCategory: type: string registrationChannel: type: string za_co_mtn_aggregator_model_response_blacklist_ResponseData: title: ResponseData type: object properties: id: type: string name: type: string za_co_mtn_aggregator_model_request_ProductBenefitInfo: title: ProductBenefitInfo type: object properties: Amount: type: string Validity: type: string Frequency: type: string Category: type: string ValidityInDays: type: integer format: int32 VoiceAmount: type: number format: double DataAmount: type: number format: double za_co_mtn_aggregator_model_response_atgcatalogue_ContractOffersResponse: title: ContractOffersResponse type: object properties: statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string sequenceNo: type: string cookie: type: string Offers: type: array items: title: Offer type: object properties: id: type: string offerRank: type: integer format: int32 offerPrice: title: OfferPrice type: object properties: unit: type: string value: type: number format: double href: type: string description: type: string simOnly: type: boolean name: type: string statusReason: type: string version: type: string offerProductId: type: string duration: type: string yelloTraderId: type: string prodSpecCharValueUse: type: array items: title: ProdSpecCharValueUse type: object properties: description: type: string deviceSize: type: integer format: int32 deviceSizeUOM: type: string name: type: string deviceBrandName: type: string deviceRank: type: integer format: int32 devicePrice: title: DevicePrice type: object properties: unit: type: string value: type: number format: double deviceType: type: string productSpecCharacteristicValue: type: array items: title: ProductSpecCharacteristicValue type: object properties: deviceColor: type: string deviceColorCode: type: string deviceSkuId: type: string imageURL: type: string lowStock: type: boolean productSpecification: title: ProductSpecification type: object properties: id: type: string name: type: string type: type: string validity: type: string planPrice: title: PlanPrice type: object properties: unit: type: string value: type: number format: double planSize: type: string planFreebies: title: PlanFreebies type: object properties: id: type: string name: type: string type: type: string validity: type: string planPrice: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_PlanPrice' validFor: title: ValidFor type: object properties: endDateTime: type: string format: date-time startDateTime: type: string format: date-time productOfferingAdditionalAttributes: type: array items: title: ProductOfferingAdditionalAttribute type: object properties: id: type: string name: type: string type: type: string validity: type: string planPrice: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_PlanPrice' validFor: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_ValidFor' topOffers: type: array items: title: TopOffer type: object properties: id: type: string offerRank: type: integer format: int32 offerPrice: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_OfferPrice' href: type: string description: type: string simOnly: type: boolean name: type: string statusReason: type: string version: type: string offerProductId: type: string duration: type: string yelloTraderId: type: string prodSpecCharValueUse: type: array items: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_ProdSpecCharValueUse' productOfferingAdditionalAttributes: type: array items: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_ProductOfferingAdditionalAttribute' validFor: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_ValidFor' _link: title: Link type: object properties: self: title: Self type: object properties: href: type: string za_co_mtn_aggregator_model_response_atgcatalogue_ValidFor: title: ValidFor type: object properties: endDateTime: type: string format: date-time startDateTime: type: string format: date-time za_co_mtn_aggregator_model_groupshare_BeneficiaryResponse: title: BeneficiaryResponse type: object properties: statusCode: type: string customerId: type: string error: title: APIError type: object properties: statusMessage: type: string supportMessage: type: string transactionId: type: string timestamp: type: string path: type: string method: type: string statusCode: type: string downstreamStatusCode: type: integer format: int32 sequenceNo: type: string data: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string timeStamp: type: string path: type: string method: type: string sequenceNo: type: string za_co_mtn_aggregator_model_response_atgcatalogue_Link: title: Link type: object properties: self: title: Self type: object properties: href: type: string za_co_mtn_aggregator_model_response_offer_OfferResponse: title: OfferResponse type: object properties: statusCode: type: string statusMessage: type: string transactionId: type: string sequenceNo: type: string customerId: type: string data: type: array items: title: Offer type: object properties: validityPeriod: type: integer format: int32 expireTime: type: string message: type: string messageLanguage: type: string messageEncoding: type: string id: type: string validityUnit: type: string category: type: string subCategory: type: string description: type: string offerType: type: string order: type: string shortMessage: type: string name: type: string nodeId: type: string label: type: string validity: type: string volume: type: integer format: int32 unit: type: string additionalParams: title: AdditionalParams type: object properties: offerPrice: type: string offerId: type: string rewardValidity: type: string productId: type: string activationId: type: string buyForOthers: type: boolean bonus: type: boolean dataAmount: type: string dataValidityDays: type: string voiceAmount: type: string voiceValidityDays: type: string provisionSrc: type: string subscriptionManager: type: string bundle: title: Bundle type: object properties: type: type: string family: type: string category: type: string Group: type: string currency: type: string productId: type: string productId: type: string productType: type: string additionalInformation: title: AdditionalInformation type: object properties: name: type: string value: type: string startDateTime: type: string za_co_mtn_aggregator_model_response_atgcatalogue_PlanFreebies: title: PlanFreebies type: object properties: id: type: string name: type: string type: type: string validity: type: string planPrice: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_PlanPrice' za_co_mtn_aggregator_model_response_atgcatalogue_ProductOfferingAdditionalAttribute: title: ProductOfferingAdditionalAttribute type: object properties: id: type: string name: type: string type: type: string validity: type: string planPrice: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_PlanPrice' za_co_mtn_aggregator_model_response_Product: title: Product type: object properties: id: type: string name: type: string currency: type: string amount: type: string bundleCategory: type: string bundleType: type: string bundleValidity: type: string minAmount: type: string maxAmount: type: string displayName: type: string isFlexy: type: boolean cost: title: CostValue type: object properties: amount: type: string currency: type: string za_co_mtn_aggregator_model_response_atgcatalogue_PlanPrice: title: PlanPrice type: object properties: unit: type: string value: type: number format: double za_co_mtn_aggregator_model_response_comvcatalogue_ServiceInfoResponseData: title: ServiceInfoResponseData type: object properties: serviceId: type: string serviceType: type: string spId: type: string spName: type: string secondarySpId: type: string secondarySpName: type: string tenantId: type: string tenantName: type: string serviceName: type: string serviceDesc: type: string beareList: type: array items: title: BeareList type: object properties: bearerId: type: string bearerName: type: string status: type: string cli: type: string isCallBackReq: type: string primaryURL: type: string category: type: string chargingMode: type: string serviceValidity: type: string planMapList: type: array items: title: PlanMapList type: object properties: planId: type: string renPlanId: type: string planName: type: string planDesc: type: string subPrice: type: string renPrice: type: string subAdjustmentCode: type: string renAdjustmentCode: type: string pricePoint: type: string renPricePoint: type: string lifeCycleId: type: string renLifeCycleId: type: string subKeywords: type: string unsubKeyWords: type: string shortcode: type: string validityPeriod: type: string gracePeriod: type: string suspendPeriod: type: string parkingPeriod: type: string allowInGrace: type: string disableFallback: type: string autoRenew: type: string isfallBackReq: type: string startDate: type: string endDate: type: string isFoc: type: string fbPlan: title: FbPlan type: object properties: planId: type: string maPlanId: type: string parentPlanId: type: string planName: type: string planDesc: type: string price: type: string adjustmentCode: type: string pricePoint: type: string lifeCycleId: type: string validityPeriod: type: string gracePeriod: type: string suspendPeriod: type: string parkingPeriod: type: string isfallBackReq: type: string renValPeriod: type: string isGenPlanBulkUpload: type: boolean fbPlan: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_comvcatalogue_FbPlan' fbType: type: string timeDurationList: type: array items: type: string specialDaysList: type: array items: type: string focDaysList: type: array items: type: string renValPeriod: type: string planMsgList: type: array items: title: PlanMsgList type: object properties: msgTypeId: type: string msgTypeName: type: string isFreqReq: type: string frequencyId: type: string frequency: type: string msgList: type: array items: title: MsgList type: object properties: msgId: type: string msgTypeId: type: string langCode: type: string langName: type: string msg: type: string isFilled: type: string isActive: type: string isRenFbReq: type: string renFbPlan: title: RenFbPlan type: object properties: planId: type: string maPlanId: type: string parentPlanId: type: string planName: type: string planDesc: type: string price: type: string adjustmentCode: type: string pricePoint: type: string lifeCycleId: type: string validityPeriod: type: string gracePeriod: type: string suspendPeriod: type: string parkingPeriod: type: string isfallBackReq: type: string fbPlan: type: array items: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_comvcatalogue_FbPlan' renValPeriod: type: string fbType: type: string isGenPlanBulkUpload: type: boolean isPlanLinked: type: string isGraceChargeable: type: string isSuspendChargeable: type: string allowInSuspend: type: string isParkingChargeable: type: string allowInParking: type: string deactivationMode: type: string periodicityPlan: type: string periodicityPeriod: type: string resubsAllowed: type: string isGenPlanBulkUpload: type: boolean validityType: type: string serviceMsgList: type: array items: type: string status: type: string activeStatus: type: string serviceAction: type: string typeOfService: type: string isConsentReq: type: string consentKeywords: type: string consentChannels: type: array items: title: ConsentChannel type: object properties: bearerId: type: string bearerName: type: string consentChannelId: type: string consentChannelName: type: string smscCharging: type: string freeCounter: type: string isPriceQueryReq: type: string isBalanceQueryReq: type: string accessTo: type: string isFreeMOService: type: string isReady: type: string subMtCpPerDay: type: string mtPushEnabled: type: string isDirectSub: type: string isThirdConsentReq: type: string isPlanLinked: type: string isServiceTypeUserDef: type: string error: title: APIError type: object properties: status: type: string message: type: string transactionId: type: string timestamp: type: string error: type: string path: type: string sequenceNo: type: string statusCode: type: string statusMessage: type: string sequenceNo: type: string transactionId: type: string za_co_mtn_aggregator_model_response_atgcatalogue_ProductSpecification: title: ProductSpecification type: object properties: id: type: string name: type: string type: type: string validity: type: string planPrice: title: PlanPrice type: object properties: unit: type: string value: type: number format: double planSize: type: string planFreebies: title: PlanFreebies type: object properties: id: type: string name: type: string type: type: string validity: type: string planPrice: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_atgcatalogue_PlanPrice' za_co_mtn_aggregator_model_response_offer_Offer: title: Offer type: object properties: validityPeriod: type: integer format: int32 expireTime: type: string message: type: string messageLanguage: type: string messageEncoding: type: string id: type: string validityUnit: type: string category: type: string subCategory: type: string description: type: string offerType: type: string order: type: string shortMessage: type: string name: type: string nodeId: type: string label: type: string validity: type: string volume: type: integer format: int32 unit: type: string additionalParams: title: AdditionalParams type: object properties: offerPrice: type: string offerId: type: string rewardValidity: type: string productId: type: string activationId: type: string buyForOthers: type: boolean bonus: type: boolean dataAmount: type: string dataValidityDays: type: string voiceAmount: type: string voiceValidityDays: type: string provisionSrc: type: string subscriptionManager: type: string bundle: title: Bundle type: object properties: type: type: string family: type: string category: type: string Group: type: string currency: type: string productId: type: string productId: type: string productType: type: string additionalInformation: title: AdditionalInformation type: object properties: name: type: string value: type: string startDateTime: type: string za_co_mtn_aggregator_model_response_comvcatalogue_RenFbPlan: title: RenFbPlan type: object properties: planId: type: string maPlanId: type: string parentPlanId: type: string planName: type: string planDesc: type: string price: type: string adjustmentCode: type: string pricePoint: type: string lifeCycleId: type: string validityPeriod: type: string gracePeriod: type: string suspendPeriod: type: string parkingPeriod: type: string isfallBackReq: type: string fbPlan: type: array items: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_comvcatalogue_FbPlan' renValPeriod: type: string fbType: type: string isGenPlanBulkUpload: type: boolean com_mtn_madapi_commons_models_error_APIError: title: APIError type: object properties: statusMessage: type: string supportMessage: type: string transactionId: type: string timestamp: type: string path: type: string method: type: string statusCode: type: string downstreamStatusCode: type: integer format: int32 sequenceNo: type: string za_co_mtn_aggregator_model_response_eligibility_BundleEligibility: title: BundleEligibility type: object properties: statusCode: type: string statusMessage: type: string transactionId: type: string sequenceNo: type: string customerId: type: string notification: type: string nodeId: type: string registrationChannel: type: string eligible: type: string data: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_Product' za_co_mtn_aggregator_model_response_flytxt_CategoryResponse: title: CategoryResponse type: object properties: statusCode: type: string statusMessage: type: string transactionId: type: string data: type: array items: type: string sequenceNo: type: string za_co_mtn_aggregator_model_response_comvcatalogue_ConsentChannel: title: ConsentChannel type: object properties: bearerId: type: string bearerName: type: string consentChannelId: type: string consentChannelName: type: string za_co_mtn_aggregator_model_response_databundle_ProductListResponse: title: ProductListResponse type: object properties: statusMessage: type: string supportMessage: type: string transactionId: type: string statusCode: type: string customerId: type: string data: type: array items: title: ProductDetail type: object properties: id: type: string type: type: string name: type: string validity: type: string validityType: type: string amount: type: string category: type: string description: type: string sequenceNo: type: string za_co_mtn_aggregator_model_error_APIError: title: APIError type: object properties: status: type: string message: type: string transactionId: type: string timestamp: type: string error: type: string path: type: string sequenceNo: type: string za_co_mtn_aggregator_model_response_offer_AdditionalParams: title: AdditionalParams type: object properties: offerPrice: type: string offerId: type: string rewardValidity: type: string productId: type: string activationId: type: string buyForOthers: type: boolean bonus: type: boolean dataAmount: type: string dataValidityDays: type: string voiceAmount: type: string voiceValidityDays: type: string provisionSrc: type: string subscriptionManager: type: string za_co_mtn_aggregator_model_response_acs_ACSProductBalances: title: ACSProductBalances type: object properties: dataBalance: type: string voiceOnnet: type: string voiceOffnet: type: string smsOnnet: type: string smsOffnet: type: string international: type: string money: type: string za_co_mtn_aggregator_model_response_comvcatalogue_PlanMapList: title: PlanMapList type: object properties: planId: type: string renPlanId: type: string planName: type: string planDesc: type: string subPrice: type: string renPrice: type: string subAdjustmentCode: type: string renAdjustmentCode: type: string pricePoint: type: string renPricePoint: type: string lifeCycleId: type: string renLifeCycleId: type: string subKeywords: type: string unsubKeyWords: type: string shortcode: type: string validityPeriod: type: string gracePeriod: type: string suspendPeriod: type: string parkingPeriod: type: string allowInGrace: type: string disableFallback: type: string autoRenew: type: string isfallBackReq: type: string startDate: type: string endDate: type: string isFoc: type: string fbPlan: title: FbPlan type: object properties: planId: type: string maPlanId: type: string parentPlanId: type: string planName: type: string planDesc: type: string price: type: string adjustmentCode: type: string pricePoint: type: string lifeCycleId: type: string validityPeriod: type: string gracePeriod: type: string suspendPeriod: type: string parkingPeriod: type: string isfallBackReq: type: string renValPeriod: type: string isGenPlanBulkUpload: type: boolean fbPlan: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_comvcatalogue_FbPlan' fbType: type: string timeDurationList: type: array items: type: string specialDaysList: type: array items: type: string focDaysList: type: array items: type: string renValPeriod: type: string planMsgList: type: array items: title: PlanMsgList type: object properties: msgTypeId: type: string msgTypeName: type: string isFreqReq: type: string frequencyId: type: string frequency: type: string msgList: type: array items: title: MsgList type: object properties: msgId: type: string msgTypeId: type: string langCode: type: string langName: type: string msg: type: string isFilled: type: string isActive: type: string isRenFbReq: type: string renFbPlan: title: RenFbPlan type: object properties: planId: type: string maPlanId: type: string parentPlanId: type: string planName: type: string planDesc: type: string price: type: string adjustmentCode: type: string pricePoint: type: string lifeCycleId: type: string validityPeriod: type: string gracePeriod: type: string suspendPeriod: type: string parkingPeriod: type: string isfallBackReq: type: string fbPlan: type: array items: $ref: '#/components/schemas/za_co_mtn_aggregator_model_response_comvcatalogue_FbPlan' renValPeriod: type: string fbType: type: string isGenPlanBulkUpload: type: boolean isPlanLinked: type: string isGraceChargeable: type: string isSuspendChargeable: type: string allowInSuspend: type: string isParkingChargeable: type: string allowInParking: type: string deactivationMode: type: string periodicityPlan: type: string periodicityPeriod: type: string resubsAllowed: type: string isGenPlanBulkUpload: type: boolean validityType: type: string za_co_mtn_aggregator_model_response_CostValue: title: CostValue type: object properties: amount: type: string currency: type: string za_co_mtn_aggregator_model_request_ProductOfferRequest: title: ProductOfferRequest type: object properties: productId: type: string customerId: type: string startDateTime: type: string productType: type: integer format: int32 VoiceAmount: type: number format: double DataAmount: type: number format: double productBenefitInfo: type: array items: title: ProductBenefitInfo type: object properties: Amount: type: string Validity: type: string Frequency: type: string Category: type: string ValidityInDays: type: integer format: int32 VoiceAmount: type: number format: double DataAmount: type: number format: double za_co_mtn_aggregator_model_response_atgcatalogue_DevicePrice: title: DevicePrice type: object properties: unit: type: string value: type: number format: double za_co_mtn_aggregator_model_response_atgcatalogue_Self: title: Self type: object properties: href: type: string securitySchemes: OAuth2: type: oauth2 flows: clientCredentials: tokenUrl: https://api.mtn.com/v1/oauth/access_token scopes: {} Bearer: type: http description: Bearer token received from OAuth2.0 authentication with the MADAPI scheme: bearer bearerFormat: JWT