openapi: 3.0.1 info: title: Subscription V2 description: "Subscription V2 service exposes RESTful APIs to manage customer subscriptions,\ \ unsubscriptions, updates, broadband products and history across multiple downstream\ \ systems in the MADAPI ecosystem." license: name: MADAPI url: https://developers.mtn.com/ version: 3.0.0 - Last updated date:2026-09-18 17:30:42 servers: - url: https://api.mtn.com/v1 description: Production Server security: - OAuth2: [] tags: - name: BatchSubscription - name: Broadband - name: DeleteSubscription - name: OtherSubscription - name: Subscription - name: UpdateSubscription - name: ViewSubscription paths: /callback/subscription: post: tags: - OtherSubscription summary: Receive subscription callbacks from downstream systems description: "Receives asynchronous subscription callbacks from downstream systems,\ \ enriches the callback context with generated transaction and sequence identifiers\ \ for observability and delegates the payload to the subscription service\ \ so that channel partners can track subscription outcomes reliably." operationId: OtherSubscriptionService_post_hsdpCallback_callbacksubscription parameters: - name: x-origin-channelid in: header required: false schema: type: string requestBody: content: application/json: schema: title: SubscriptionCallbackResponse type: object properties: statusCode: type: string status: type: string message: type: string msisdn: type: string channelId: type: string productId: type: string serviceId: type: string transactionId: 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_response_SubscriptionCallbackResponse' "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 /customers/bulk/subscriptions: post: tags: - BatchSubscription summary: Create bulk subscriptions for multiple customers in a single request description: "Creates bulk subscriptions for multiple customers in a single\ \ request by accepting a batch payload, logging the first customer identifier\ \ for traceability and delegating to the subscription services layer, which\ \ orchestrates downstream provisioning and returns a consolidated batch result." operationId: BatchSubscription_post_batchSubscribe_customersbulksubscri parameters: - name: transactionId in: header required: true schema: type: string requestBody: content: application/json: schema: title: BatchSubscription type: object properties: subscriptionProviderId: type: string bulkIds: type: array items: title: BulkIds type: object properties: customerIds: type: array items: type: string subscriptionId: type: integer format: int64 subscriptionName: type: string subscriptionDescription: type: string subscriptionStatus: title: CreateSubscriptionStatus type: object properties: subscriptionStatusCode: type: string subscriptionStatus: type: string description: type: string subscriptionType: title: SubscriptionType type: object properties: name: type: string subscriptionLength: type: string registrationChannel: type: string startDate: type: string endDate: type: string email: type: string subscriptionPaymentSource: type: string sendSMSNotification: type: boolean beneficiaryId: type: string autoRenew: type: boolean 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 statusCode: type: string is_charged: type: string nodeId: type: string partnerId: type: string partnerName: type: string lastDeductionChargeDate: type: string _links: title: Link type: object properties: self: title: Self type: object properties: href: 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 subscription v2 flows. content: application/json: schema: title: BatchSubscribe type: object properties: description: type: string response: title: BatchSubscribeResponse type: object properties: data: type: array items: title: Data type: object properties: msisdn: type: string product: type: integer format: int32 status: type: string message: type: string success: type: boolean message: type: string statusCode: type: integer format: int32 transactionId: type: integer format: int64 error: title: APIError type: object properties: status: type: string statusCode: type: string error: type: string returnCode: type: string message: type: string description: type: string timestamp: type: string path: type: string transactionId: type: string sequenceNo: type: string statusMessage: type: string method: type: string downstreamStatusCode: type: integer format: int32 supportMessage: type: string Data: type: array items: type: object nodeId: type: string mergerData: type: object additionalProperties: type: string responseEntity: title: ResponseEntity type: object properties: status: title: HttpStatusCode type: object headers: type: object additionalProperties: type: object body: type: string statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string Data: type: array items: type: object nodeId: type: string sequenceNo: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' "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 /customers/list/subscriptions: get: tags: - ViewSubscription summary: List subscriptions available for a country and provider description: "Retrieves the catalog of subscriptions or bundles available for\ \ a given country, node and subscription provider by delegating to the CIS-backed\ \ listing flow and returning a canonical API response for downstream channel\ \ consumption." operationId: ViewSubscriptionService_get_getSubscriptionList_customerslistsubscri parameters: - name: menuCode in: query required: true schema: type: string - name: nodeId in: query required: false schema: type: string - name: partnerName in: header required: false schema: type: string - name: sequenceNo in: header required: false schema: type: string - name: subscriptionProviderId in: query required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-country-code in: header required: true schema: type: string responses: "200": description: 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_APIResponse' "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 /customers/menu-codes/subscriptions: get: tags: - ViewSubscription summary: List supported menu codes for subscription discovery description: Retrieves the supported menu codes used for subscription discovery and navigation for the supplied country context by delegating to the CIS menu code service and returning the canonical API response. operationId: ViewSubscriptionService_get_getMenuCodes_customersmenucodessu parameters: - name: transactionId in: header required: true schema: type: string - name: x-country-code 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_APIResponse' "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 /customers/subscribe: post: tags: - Subscription summary: Subscribe a customer to data bundles through the MADAPI aggregation layer description: "Subscribes a customer to data bundles via the MADAPI aggregation\ \ layer, enriching the request with transaction metadata, partner information\ \ and sequence numbers before delegating to downstream services, and returning\ \ an asynchronous data subscription response that aligns with the platform’\ s canonical API contract." operationId: SubscriptionService_post_subscribe_customerssubscribe parameters: - name: nodeId in: header required: false schema: type: string - name: partnerName in: header required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-country-code in: header required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_subscriptions_view_Subscription' 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 subscription v2 flows. content: application/json: schema: title: ApiDataResponse type: object properties: statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string sequenceNo: type: string data: title: SubscribeResponseData type: object properties: subscriptionId: type: string subscriptionName: type: string subscriptionType: type: string amountCharged: type: string bundleType: type: string chargeDescription: type: string countryCode: type: string products: type: array items: $ref: '#/components/schemas/za_co_mtn_aggregator_models_subscriptions_view_Product' Data: type: array items: type: object nodeId: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' "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 /customers/subscriptions/{subscriptionId}/status/{statusId}: get: tags: - ViewSubscription summary: Get status for a specific subscription transaction description: "Retrieves the status of a specific subscription transaction or\ \ activation by calling the appropriate downstream status endpoint, validating\ \ phone numbers, and returning either a canonical subscription status view\ \ or a structured error when the provider configuration is invalid or unavailable." operationId: ViewSubscriptionService_get_getSubscriptionStatus_customerssubscriptio parameters: - name: credentials in: header required: false schema: type: string - name: customerId in: query required: false schema: type: string - name: nodeId in: query required: false schema: type: string - name: queryType in: query required: false schema: type: string - name: statusId in: path required: true schema: type: string - name: subscriptionId in: path required: true schema: type: string - name: subscriptionProviderId in: query required: false schema: type: string - name: transactionDate in: query required: false schema: type: string - name: transactionId in: header required: true schema: type: string - name: transactionTime in: query required: false schema: type: string - name: x-authorization in: header 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_APIResponse' "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 /customers/{customerId}/subscriptions-providers: get: tags: - ViewSubscription summary: Retrieve subscription details from providers description: "Retrieves subscription details (status, plan, history) by delegating\ \ to the Bango connector search endpoint and returning a canonical response." operationId: ViewSubscriptionService_get_getSubscriptionsProviders_customerscustomerIds parameters: - name: customerId in: path required: true schema: type: string - name: transactionId 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_APIResponse' "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 /customers/{customerId}/subscriptions/charging: post: tags: - OtherSubscription summary: Initiate charging for value added service subscriptions description: "Initiates charging for value added service subscriptions such\ \ as recurring offers by accepting subscription details and authorization\ \ credentials, forwarding the request to the downstream charging engine and\ \ returning a pending status response that indicates the charging workflow\ \ has been triggered asynchronously." operationId: OtherSubscriptionService_post_charging_customerscustomerIds parameters: - name: customerId in: path required: true schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-authorization in: header required: true schema: type: string - name: x-origin-channelid in: header required: false schema: type: string requestBody: content: application/json: schema: title: Subscription type: object properties: responseCode: type: string leapTransactionId: type: string ecwTransactionId: type: string subscriptionId: type: string subscriptionProviderId: type: string subscriptionName: type: string subscriptionDescription: type: string subscriptionStatus: title: SubscriptionStatus type: object properties: status: type: string subscriptionType: $ref: '#/components/schemas/za_co_mtn_aggregator_constants_SubscriptionType' subscriptionLength: type: string registrationChannel: type: string customerDetails: type: array items: title: CustomerDetails type: object properties: name: type: string value: type: string startDate: type: string endDate: type: string email: type: string amountCharged: type: string productCost: type: string subscriptionPaymentSource: type: string sendSMSNotification: type: boolean beneficiaryId: type: string bundleType: title: BundleType type: object properties: name: type: string autoRenew: type: boolean transactionId: type: string statusDescription: type: string nodeId: type: string isCVMoffer: type: boolean statusCode: type: string statusMessage: type: string supportMessage: type: string callbackUrl: type: string recharge: type: string vasCode: type: string sysProcessedTime: type: string adjustmentType: type: string amountBefore: type: number format: double amountAfter: type: number format: double transaction: type: string correlationId: type: string validity: type: string frequency: type: string partnerId: type: string partnerName: type: string lastDeductionChargeDate: type: string chargeDescription: type: string limitCategory: type: string newLimitThreshold: type: string units: type: string imsi: type: string pin: type: string groupName: type: string isAWUF4U: type: boolean products: type: array items: title: Product type: object properties: productId: type: string count: type: string auto-renew: type: boolean productName: type: string productType: type: string discount: type: string cost: title: Cost type: object properties: data: type: string voice: type: string name: type: string validity: title: Validity type: object properties: data: type: string voice: type: string frequency: type: string price: type: string timestamp: type: string thresholdNotification: type: string dynamic: title: Dynamic type: object properties: voiceAmount: type: number format: double dataAmount: type: number format: double smsAmount: type: number format: double sequenceNo: type: string shortCode: type: string nonGSM: type: boolean targetSystem: type: string subscriberId: type: string countryCode: type: string status: type: string dataSpeed: type: string extRequest: type: string volume: type: string service: type: string requestType: type: string voiceType: type: string finalValue: type: string customerId: type: string userId: type: string is_subscribed: type: string is_charged: type: string created_at: type: string updated_at: type: string product_id: type: string retrial: type: string headerEnriched: type: string utId: type: string utValue: type: string ucId: type: string ucValue: type: string offerId: type: string languageId: type: string preCharged: type: string subscriptionCharge: type: string promoCode: type: string isBalanceAvailable: type: boolean productId: type: integer format: int64 productExpiry: type: string offerDetails: title: OfferDetails type: object properties: offerId: type: integer format: int64 expiryDate: type: string daDetails: title: DaDetails type: object properties: daId: type: integer format: int64 daValue: type: integer format: int64 startDate: type: string endDate: type: string unitType: type: string code: type: integer format: int64 dataVolume: type: string sequenceId: type: string serialNumber: type: string remark: type: string action: type: string optionalOffers: type: array items: title: OptionalOffer type: object properties: id: type: string operationType: type: string usecase: type: string source: type: string isDataConfirmationRequired: type: boolean customerInformation: title: CustomerInfo type: object properties: name: type: string email: type: string companyName: type: string street: type: string city: type: string state: type: string zipCode: type: string country: type: string payPeriod: type: string orderId: type: string paymentTransactionId: type: string skipCharge: type: boolean id: type: string terminationDate: type: string productOffering: title: ProductOffering type: object properties: id: type: string productPrice: type: array items: title: ProductPrice type: object properties: priceType: type: string price: title: Price type: object properties: dutyFreeAmount: title: DutyFreeAmount type: object properties: unit: type: string value: type: string productCharacteristic: type: array items: title: ProductCharacteristic type: object properties: name: type: string value: type: string realizingResource: type: array items: title: RealizingResource type: object properties: id: type: string type: type: string caller: type: string contentType: type: string setting: type: string operation: type: string jukeBox: type: integer format: int32 toneId: type: string subPlanId: type: string tonePlanId: type: string overRideTonePlan: type: string autoRenewalFlag: type: string Data: type: array items: type: object downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' 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 subscription v2 flows. content: application/json: schema: title: CustomerSubscriptions type: object properties: customerId: type: string statusMessage: type: string transactionId: type: string supportMessage: type: string beneficiaryId: type: string newPin: type: integer format: int32 services: type: object additionalProperties: title: SubscriptionService type: object properties: statusCode: type: string data: type: array items: $ref: '#/components/schemas/za_co_mtn_aggregator_models_subscriptions_view_Subscription' subscriptionProviderId: type: string subscriptionProviderName: type: string subscriptionProviderDescription: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string Data: type: array items: type: object nodeId: type: string sequenceNo: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' apiError: $ref: '#/components/schemas/za_co_mtn_aggregator_models_error_APIError' data: type: array items: title: SubscriptionData type: object properties: nodeId: type: string subscriptionId: type: string subscriptionName: type: string subscriptionDescription: type: string amountCharged: type: string registrationChannel: type: string statusCode: type: string adjustmentType: type: string startDate: type: string endDate: type: string recharge: type: string transaction: type: string subscriptionStatus: type: string subscriptionItems: type: array items: title: SubscriptionItems type: object properties: id: type: string type: type: string name: type: string price: type: string count: type: string requestTransactionId: type: string timestamp: type: string path: type: string status: type: string error: type: string message: type: string code: type: string statusCode: type: string Data: type: array items: type: object nodeId: type: string sequenceNo: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' "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 /customers/{customerId}/subscriptions/getLimit: get: tags: - OtherSubscription summary: Retrieve service spend limits for a customer description: "Retrieves spend limits for a customer, including channel specific\ \ categories and barring statuses, by delegating to the subscription service\ \ limit endpoint and mapping the result into a canonical response whose HTTP\ \ status reflects the underlying system status code." operationId: OtherSubscriptionService_get_getSpendLimitApiResponse_customerscustomerIds parameters: - name: customerId in: path required: true schema: type: string - name: nodeId 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 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_subscriptions_view_CustomerSubscriptions' "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 /customers/{customerId}/subscriptions/setBarringFlag: put: tags: - OtherSubscription summary: Update the barring flag for a customer’s subscriptions description: "Updates the barring flag for a customer’s subscriptions by accepting\ \ the desired barring state and subscriber type, logging the change request\ \ and invoking the subscription service so that barring status is consistently\ \ reflected in the billing and provisioning layers." operationId: OtherSubscriptionService_put_setBarringFlag_customerscustomerIds parameters: - name: barFlag in: query required: false schema: type: string - name: customerId in: path required: true schema: type: string - name: subscriberType 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 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_subscriptions_view_CustomerSubscriptions' "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 /customers/{customerId}/subscriptions/setLimit: post: tags: - OtherSubscription summary: Set spend limits for a customer across subscription categories description: "Sets spend limits for a customer across subscription categories\ \ by accepting a list of subscription limit configurations, logging the request\ \ with transaction metadata and delegating to the subscription service, which\ \ applies the limits in the downstream system and returns a status aligned\ \ to the canonical error model." operationId: OtherSubscriptionService_post_setSpendLimit_customerscustomerIds parameters: - name: customerId in: path required: true 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: $ref: '#/components/schemas/za_co_mtn_aggregator_models_subscriptions_view_Subscription' 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_subscriptions_view_CustomerSubscriptions' "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 /customers/{customerId}/subscriptions/{subscriptionId}: put: tags: - UpdateSubscription summary: Update a specific customer subscription instance description: "Updates a specific customer subscription instance identified by\ \ customerId and subscriptionId, delegating to the subscription services to\ \ perform the update against the targeted provider and enriching the response\ \ with HATEOAS links that point back to the MADAPI experience layer." operationId: UpdateSubscriptionService_put_updateSubscription_customerscustomerIds parameters: - name: customerId in: path required: true schema: type: string - name: subscriptionId in: path required: true schema: type: string - name: subscriptionProviderId in: query required: true 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: $ref: '#/components/schemas/za_co_mtn_aggregator_models_subscriptions_view_Subscription' 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_subscriptions_view_CustomerSubscriptions' "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 /customers/{id}/subscriptions: get: tags: - ViewSubscription summary: List all active subscriptions for a customer description: "Lists active subscriptions for a customer by orchestrating calls\ \ to multiple downstream systems, merging responses from MSAP, DSM, ECW and\ \ other providers, handling country specific flows such as Ghana, Nigeria\ \ and Benin, and producing a unified subscription list with consistent status\ \ and pagination semantics." operationId: ViewSubscriptionService_get_getSubscriptions_customersidsubscript parameters: - name: channelId in: query required: true schema: type: string - name: credentials in: header required: false schema: type: string - name: description in: query required: true schema: type: string - name: id in: path required: true schema: type: string - name: language in: query required: true schema: type: string - name: limit in: query required: true schema: type: string - name: nodeId in: query required: true schema: type: string - name: nonGsm in: query required: false schema: type: boolean - name: pageNo in: query required: true schema: type: string - name: queryType in: query required: true schema: type: string - name: startDate in: query required: true schema: type: string - name: subscriptionId in: query required: true schema: type: string - name: subscriptionProviderId in: query required: true schema: type: string - name: systemId in: query required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: voidTimeout in: query required: false schema: type: boolean - name: x-authorization in: header 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_APIResponse' "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 put: tags: - UpdateSubscription summary: Update a customer’s subscriptions and related caller-feel settings description: "Updates a customer’s subscriptions and related caller-feel settings\ \ by resolving the correct downstream system endpoints, validating MSISDN\ \ and subscription identifiers, and orchestrating MSAP, CSM, CANALPLUS and\ \ Benin specific flows while returning a canonical API response that captures\ \ HTTP status and diagnostic context." operationId: UpdateSubscriptionService_put_updateSubscriptions_customersidsubscript parameters: - name: id in: path required: true schema: type: string - name: languageCode in: header required: false schema: type: string - name: partnerName in: header required: false schema: type: string - name: targetSource in: header required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: updateType in: query required: false schema: type: string - name: x-authorization in: header required: false schema: type: string - name: x-country-code in: header required: true schema: type: string requestBody: content: application/json: schema: title: CallerSubscriptionRequest type: object properties: subscriptionId: type: string beneficiaryId: type: string amountCharged: type: string correlationId: type: string subscriptionProviderId: type: string subscriptionName: type: string subscriptionDescription: type: string subscriberId: type: string offerId: type: string nodeId: type: string registrationChannel: type: string startDate: type: string endDate: type: string units: type: string subscriptionLength: type: string countryCode: type: string targetSystem: type: string updateType: type: string subscriptionType: type: string customerId: 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_APIResponse' "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: - Subscription summary: Create or manage a subscription for a customer across supported systems description: "Creates or manages a subscription for a customer across supported\ \ systems such as CIS, MSAP, ECW, NEON or CRBT, applying country specific\ \ rules, payment validations, skip-charge behaviour and callback registration\ \ while returning a canonical subscription response that captures status,\ \ support messaging and sequence tracking information." operationId: SubscriptionService_post_subscribe_customersidsubscript parameters: - name: credentials in: header required: false schema: type: string - name: id in: path required: true schema: type: string - name: isOptedData in: query required: false schema: type: boolean - name: languageCode in: header required: false schema: type: string - name: nodeId in: header required: false schema: type: string - name: quantity in: query required: false schema: type: integer format: int32 - name: rules in: query required: true schema: type: boolean - name: skipChargeCmr in: header required: false schema: type: boolean - name: source in: query required: false schema: type: string - name: targetSource in: header required: false schema: type: string - name: transactionId in: header required: true schema: type: string - name: x-authorization in: header required: false schema: type: string - name: x-authorization-claims in: header required: false schema: type: string - name: x-comviva-precharged in: header required: false schema: type: string - name: x-country-code in: header required: true schema: type: string - name: x-origin-channelid in: header required: false schema: type: string - name: x-registration-channel-id in: header required: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_subscriptions_view_Subscription' 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_APIResponse' "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 delete: tags: - DeleteSubscription summary: Delete all subscriptions belonging to a customer description: "Deletes all subscriptions belonging to a customer across supported\ \ systems, applying country specific routing logic, MSAP and CRBT behaviours,\ \ callback handling and canonical error mapping so that bulk unsubscription\ \ flows behave consistently for MADAPI clients." operationId: UnSubscriptionService_delete_removeSubscriptions_customersidsubscript parameters: - name: correlationId in: query required: false schema: type: string - name: id in: path required: true schema: type: string - name: language in: query required: false schema: type: string - name: nodeId in: query required: false schema: type: string - name: registrationChannel in: query required: false schema: type: string - name: startDate in: query required: false schema: type: string - name: subscriptionDescription in: query required: false schema: type: string - name: subscriptionId in: query required: false schema: type: string - name: subscriptionProviderId 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 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_APIResponse' "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 /customers/{id}/subscriptions/delete/{item}: delete: tags: - DeleteSubscription summary: Delete a caller tune for a customer subscription description: "Deletes a caller tune for a customer subscription by constructing\ \ the appropriate system-layer endpoint path, enriching the request with correlation\ \ identifiers and partner metadata, and delegating to the CRBT helper to execute\ \ the downstream delete operation." operationId: UnSubscriptionService_delete_deleteTune_customersidsubscript parameters: - name: description in: query required: false schema: type: string - name: id in: path required: true schema: type: string - name: item in: path required: true schema: type: string - name: systemId in: query required: true schema: type: string - name: transactionId 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_APIResponse' "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 /customers/{id}/subscriptions/easy-download/{item}: get: tags: - Subscription summary: Trigger an easy caller tune download for a customer subscription description: "Triggers an easy caller tune download for the specified customer\ \ and item by delegating to the appropriate system layer endpoint, while logging\ \ the transaction, partner details and correlation identifiers for traceability\ \ and downstream troubleshooting across MADAPI platforms." operationId: SubscriptionService_get_easyDownload_customersidsubscript parameters: - name: id in: path required: true schema: type: string - name: item in: path required: true schema: type: string - name: systemId in: query required: true schema: type: string - name: transactionId in: header required: true 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 subscription v2 flows. content: application/json: schema: title: APIResponse type: object properties: statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string Data: type: array items: type: object nodeId: type: string sequenceNo: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' "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 /customers/{id}/subscriptions/flexiCalculator: post: tags: - Broadband summary: Calculate broadband data offers using the Flexi calculator description: "Calculates broadband data offers using the Flexi calculator by\ \ validating the broadband identifier, resolving the FTTX system endpoint\ \ for the customer’s country and forwarding the request payload to the system\ \ layer, returning a structured response that includes packages, pricing and\ \ calculation metadata." operationId: BroadbandService_post_calculateBroadbandData_customersidsubscript parameters: - name: id in: path required: true 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: FlexiCalculatorRequest type: object properties: amount: type: string category: 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 subscription v2 flows. content: application/json: schema: title: FlexiCalculatorResponse type: object properties: success: type: boolean exception: type: string options: type: array items: title: OptionValueItem type: object properties: optionValue: type: string responseBody: type: string statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string Data: type: array items: type: object nodeId: type: string sequenceNo: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' "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 /customers/{id}/subscriptions/history: get: tags: - ViewSubscription summary: List subscription history for a customer across supported systems description: "Retrieves subscription history for the specified customer across\ \ supported downstream systems, applying MSISDN validation, country specific\ \ routing, MSAP and MTNTV handling and optional filtering by date, provider\ \ and node while returning results in a canonical subscription history representation." operationId: ViewSubscriptionService_get_getSubscriptionsHistory_customersidsubscript parameters: - name: endDate in: query required: false schema: type: string - name: filterResponseById in: query required: false schema: type: boolean - name: id in: path required: true schema: type: string - name: limit in: query required: false schema: type: integer format: int32 - name: menuCode in: query required: true schema: type: string - name: nodeId in: query required: false schema: type: string - name: nonGsm in: query required: false schema: type: boolean - name: pageNo in: query required: false schema: type: integer format: int32 - name: startDate in: query required: false schema: type: string - name: subscriptionId in: header required: true schema: type: string - name: subscriptionProviderId in: query required: false schema: type: string - name: transactionId in: header required: true schema: type: string - name: x-authorization-claims in: header required: false schema: type: string - name: x-country-code 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_subscriptions_view_CustomerSubscriptions' "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 /customers/{id}/subscriptions/paired-numbers: get: tags: - Broadband summary: Retrieve broadband or vehicle data numbers paired to a mobile identifier description: "Retrieves broadband or vehicle data numbers paired to a mobile\ \ identifier by deriving the appropriate operation type, resolving the FTTX\ \ endpoint for the customer’s country and returning a canonical response describing\ \ the paired relationships and any applicable validation messages." operationId: BroadbandService_get_getPairedBroadbandNumbers_customersidsubscript parameters: - name: email in: query required: false schema: type: string - name: id in: path required: true schema: type: string - name: operation 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 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 subscription v2 flows. content: application/json: schema: title: PairedNumbersResponse type: object properties: success: type: boolean exception: type: string accounts: type: array items: title: Account type: object properties: fttxMsisdn: type: string accountType: type: string accountCategory: type: string statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string Data: type: array items: type: object nodeId: type: string sequenceNo: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' "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: - Broadband summary: Pair a broadband number with a mobile identifier description: "Pairs a broadband number with a mobile identifier by validating\ \ both MSISDN values, resolving the FTTX endpoint, invoking the system layer\ \ pairing API and returning a canonical pair numbers response that captures\ \ operation status and error details where applicable." operationId: BroadbandService_post_pairNumbers_customersidsubscript parameters: - name: beneficiaryId in: query required: true schema: type: string - name: id in: path required: true schema: type: string - name: transactionId 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 subscription v2 flows. content: application/json: schema: title: PairNumbersResponse type: object properties: statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string Data: type: array items: type: object nodeId: type: string sequenceNo: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' "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 delete: tags: - Broadband summary: Unpair a broadband number from a mobile identifier description: "Unpairs a broadband number from a mobile identifier by validating\ \ both identifiers, determining the correct FTTX endpoint for the customer’\ s country and delegating to the system layer delete operation while returning\ \ a canonical response that indicates success or failure." operationId: BroadbandService_delete_unpairNumbers_customersidsubscript parameters: - name: beneficiaryId in: query required: true schema: type: string - name: id in: path 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_broadband_PairNumbersResponse' "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 /customers/{id}/subscriptions/query-tone: get: tags: - ViewSubscription summary: Query available caller tunes for a customer description: "Queries available caller tunes for a customer by delegating to\ \ the CRBT subscription service, validating system configuration and wrapping\ \ the downstream result or error in a canonical API structure so caller tune\ \ discovery can be integrated consistently by MADAPI clients." operationId: ViewSubscriptionService_get_queryTone_customersidsubscript parameters: - name: id in: path required: true schema: type: string - name: systemId in: query required: true schema: type: string - name: toneName in: query required: true schema: type: string - name: transactionId 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 subscription v2 flows. content: application/json: schema: title: QueryToneAPIResponse 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 /customers/{id}/subscriptions/tunes/unsubscribe: delete: tags: - DeleteSubscription summary: Unsubscribe a customer from caller tune services description: "Unsubscribes a customer from caller tune services by generating\ \ trace identifiers, logging the unsubscribe request and invoking the CRBT\ \ helper against the targeted systemId, ensuring that caller tune entitlements\ \ are cleanly removed and the result is traceable." operationId: UnSubscriptionService_delete_unsubscribeTune_customersidsubscript parameters: - name: id in: path required: true schema: type: string - name: systemId in: query required: true schema: type: string - name: transactionId 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_APIResponse' "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 /customers/{id}/subscriptions/validation: get: tags: - Broadband summary: Validate a broadband number and retrieve available packages description: "Validates a broadband number for eligibility and retrieves all\ \ available data packages for subscription by routing to the broadband system\ \ layer, handling invalid identifiers gracefully and mapping the result into\ \ a canonical validation response." operationId: BroadbandService_get_validateBroadbandNumberAndGetAvailablePackages_customersidsubscript parameters: - name: id in: path required: true schema: type: string - name: transactionId 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 subscription v2 flows. content: application/json: schema: title: ValidateNumberResponse type: object properties: success: type: boolean exception: type: string accountType: type: string bundleCategories: type: array items: title: BundleCategory type: object properties: category: type: string displayName: type: string flexyAllowed: type: boolean minAmount: type: number format: double maxAmount: type: number format: double staticBundles: type: array items: title: StaticBundle type: object properties: category: type: string displayName: type: string amount: type: number format: double statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string Data: type: array items: type: object nodeId: type: string sequenceNo: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' "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 /customers/{id}/subscriptions/{subscriptionId}: get: tags: - ViewSubscription summary: Get details of a specific subscription for a customer description: "Retrieves detailed information for a specific subscription belonging\ \ to a customer by resolving the correct system endpoint based on MSISDN country,\ \ guarding against invalid combinations and mapping downstream responses into\ \ the MADAPI subscription model enriched with HATEOAS links." operationId: ViewSubscriptionService_get_getSubscription_customersidsubscript parameters: - name: id in: path required: true schema: type: string - name: subscriptionId in: path required: true schema: type: string - name: systemId in: query required: true schema: type: string - name: transactionId 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_APIResponse' "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 delete: tags: - DeleteSubscription summary: Delete a specific subscription for a customer description: "Deletes a specific subscription for a customer by resolving the\ \ correct downstream system endpoint, validating subscription identifiers\ \ for MSAP and CIS use cases, and propagating transaction, sequence and partner\ \ details so that unsubscription actions can be audited reliably." operationId: UnSubscriptionService_delete_removeSubscription_customersidsubscript parameters: - name: beneficiaryId in: query required: false schema: type: string - name: correlationId in: query required: false schema: type: string - name: credentials in: header required: false schema: type: string - name: description in: query required: false schema: type: string - name: effectiveDate in: query required: false schema: type: string - name: id in: path required: true schema: type: string - name: imsi in: query required: false schema: type: string - name: language in: query required: false schema: type: string - name: nodeId in: query required: false schema: type: string - name: reason in: query required: false schema: type: string - name: registrationChannel in: query required: false schema: type: string - name: subscriptionDescription in: query required: false schema: type: string - name: subscriptionId in: path required: true schema: type: string - name: subscriptionProviderId 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 - name: x-country-code in: header required: false schema: type: string - name: x-origin-channelid in: header required: false schema: type: string - name: xAuthorization 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_APIResponse' "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 /customers/{id}/subscriptions/{subscriptionId}/pause: post: tags: - UpdateSubscription summary: Pause a customer entitlement description: "Suspends an active customer entitlement by resolving the subscription\ \ provider and delegating to the Bango connector, propagating the transaction\ \ and partner identifiers for downstream tracing and returning a canonical\ \ response." operationId: UpdateSubscriptionService_post_pauseEntitlement_customersidsubscript parameters: - name: id in: path required: true schema: type: string - name: subscriptionId in: path required: true schema: type: string - name: subscriptionProviderId in: query required: false schema: type: string - name: transactionId in: header required: true 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_APIResponse' "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 /subscriptions/{subscriptionId}/resume: post: tags: - UpdateSubscription summary: Resume a customer entitlement description: "Reactivates a previously paused customer entitlement by resolving\ \ the subscription provider and delegating to the Bango connector, propagating\ \ the transaction and partner identifiers for downstream tracing and returning\ \ a canonical response." operationId: UpdateSubscriptionService_post_resumeEntitlement_subscriptionssubscri parameters: - name: subscriptionId in: path required: true schema: type: string - name: subscriptionProviderId in: query required: false schema: type: string - name: transactionId in: header required: true 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 subscription v2 flows. content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_aggregator_models_APIResponse' "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_models_subscriptions_view_BatchSubscription_Link: title: Link type: object properties: self: title: Self type: object properties: href: type: string za_co_mtn_aggregator_constants_SubscriptionStatus: title: SubscriptionStatus type: object properties: status: type: string za_co_mtn_aggregator_models_batchsubscription_BatchSubscribeResponse_Data: title: Data type: object properties: msisdn: type: string product: type: integer format: int32 status: type: string message: type: string za_co_mtn_aggregator_models_subscriptions_queryTone_QueryToneAPIResponse: title: QueryToneAPIResponse 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_models_subscriptions_view_BatchSubscription_BulkIds: title: BulkIds type: object properties: customerIds: type: array items: type: string subscriptionId: type: integer format: int64 za_co_mtn_aggregator_models_response_SubscriptionCallbackResponse: title: SubscriptionCallbackResponse type: object properties: statusCode: type: string status: type: string message: type: string msisdn: type: string channelId: type: string productId: type: string serviceId: type: string transactionId: type: string za_co_mtn_aggregator_models_error_APIError: title: APIError type: object properties: status: type: string statusCode: type: string error: type: string returnCode: type: string message: type: string description: type: string timestamp: type: string path: type: string transactionId: type: string sequenceNo: type: string statusMessage: type: string method: type: string downstreamStatusCode: type: integer format: int32 supportMessage: type: string Data: type: array items: type: object nodeId: type: string mergerData: type: object additionalProperties: type: string responseEntity: title: ResponseEntity type: object properties: status: title: HttpStatusCode type: object headers: type: object additionalProperties: type: object body: type: string za_co_mtn_aggregator_models_batchsubscription_BatchSubscribeResponse: title: BatchSubscribeResponse type: object properties: data: type: array items: title: Data type: object properties: msisdn: type: string product: type: integer format: int32 status: type: string message: type: string success: type: boolean message: type: string statusCode: type: integer format: int32 transactionId: type: integer format: int64 za_co_mtn_aggregator_models_subscriptions_view_BatchSubscription: title: BatchSubscription type: object properties: subscriptionProviderId: type: string bulkIds: type: array items: title: BulkIds type: object properties: customerIds: type: array items: type: string subscriptionId: type: integer format: int64 subscriptionName: type: string subscriptionDescription: type: string subscriptionStatus: title: CreateSubscriptionStatus type: object properties: subscriptionStatusCode: type: string subscriptionStatus: type: string description: type: string subscriptionType: title: SubscriptionType type: object properties: name: type: string subscriptionLength: type: string registrationChannel: type: string startDate: type: string endDate: type: string email: type: string subscriptionPaymentSource: type: string sendSMSNotification: type: boolean beneficiaryId: type: string autoRenew: type: boolean 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 statusCode: type: string is_charged: type: string nodeId: type: string partnerId: type: string partnerName: type: string lastDeductionChargeDate: type: string _links: title: Link type: object properties: self: title: Self type: object properties: href: type: string za_co_mtn_aggregator_models_subscriptions_view_Subscription: title: Subscription type: object properties: responseCode: type: string leapTransactionId: type: string ecwTransactionId: type: string subscriptionId: type: string subscriptionProviderId: type: string subscriptionName: type: string subscriptionDescription: type: string subscriptionStatus: title: SubscriptionStatus type: object properties: status: type: string subscriptionType: $ref: '#/components/schemas/za_co_mtn_aggregator_constants_SubscriptionType' subscriptionLength: type: string registrationChannel: type: string customerDetails: type: array items: title: CustomerDetails type: object properties: name: type: string value: type: string startDate: type: string endDate: type: string email: type: string amountCharged: type: string productCost: type: string subscriptionPaymentSource: type: string sendSMSNotification: type: boolean beneficiaryId: type: string bundleType: title: BundleType type: object properties: name: type: string autoRenew: type: boolean transactionId: type: string statusDescription: type: string nodeId: type: string isCVMoffer: type: boolean statusCode: type: string statusMessage: type: string supportMessage: type: string callbackUrl: type: string recharge: type: string vasCode: type: string sysProcessedTime: type: string adjustmentType: type: string amountBefore: type: number format: double amountAfter: type: number format: double transaction: type: string correlationId: type: string validity: type: string frequency: type: string partnerId: type: string partnerName: type: string lastDeductionChargeDate: type: string chargeDescription: type: string limitCategory: type: string newLimitThreshold: type: string units: type: string imsi: type: string pin: type: string groupName: type: string isAWUF4U: type: boolean products: type: array items: title: Product type: object properties: productId: type: string count: type: string auto-renew: type: boolean productName: type: string productType: type: string discount: type: string cost: title: Cost type: object properties: data: type: string voice: type: string name: type: string validity: title: Validity type: object properties: data: type: string voice: type: string frequency: type: string price: type: string timestamp: type: string thresholdNotification: type: string dynamic: title: Dynamic type: object properties: voiceAmount: type: number format: double dataAmount: type: number format: double smsAmount: type: number format: double sequenceNo: type: string shortCode: type: string nonGSM: type: boolean targetSystem: type: string subscriberId: type: string countryCode: type: string status: type: string dataSpeed: type: string extRequest: type: string volume: type: string service: type: string requestType: type: string voiceType: type: string finalValue: type: string customerId: type: string userId: type: string is_subscribed: type: string is_charged: type: string created_at: type: string updated_at: type: string product_id: type: string retrial: type: string headerEnriched: type: string utId: type: string utValue: type: string ucId: type: string ucValue: type: string offerId: type: string languageId: type: string preCharged: type: string subscriptionCharge: type: string promoCode: type: string isBalanceAvailable: type: boolean productId: type: integer format: int64 productExpiry: type: string offerDetails: title: OfferDetails type: object properties: offerId: type: integer format: int64 expiryDate: type: string daDetails: title: DaDetails type: object properties: daId: type: integer format: int64 daValue: type: integer format: int64 startDate: type: string endDate: type: string unitType: type: string code: type: integer format: int64 dataVolume: type: string sequenceId: type: string serialNumber: type: string remark: type: string action: type: string optionalOffers: type: array items: title: OptionalOffer type: object properties: id: type: string operationType: type: string usecase: type: string source: type: string isDataConfirmationRequired: type: boolean customerInformation: title: CustomerInfo type: object properties: name: type: string email: type: string companyName: type: string street: type: string city: type: string state: type: string zipCode: type: string country: type: string payPeriod: type: string orderId: type: string paymentTransactionId: type: string skipCharge: type: boolean id: type: string terminationDate: type: string productOffering: title: ProductOffering type: object properties: id: type: string productPrice: type: array items: title: ProductPrice type: object properties: priceType: type: string price: title: Price type: object properties: dutyFreeAmount: title: DutyFreeAmount type: object properties: unit: type: string value: type: string productCharacteristic: type: array items: title: ProductCharacteristic type: object properties: name: type: string value: type: string realizingResource: type: array items: title: RealizingResource type: object properties: id: type: string type: type: string caller: type: string contentType: type: string setting: type: string operation: type: string jukeBox: type: integer format: int32 toneId: type: string subPlanId: type: string tonePlanId: type: string overRideTonePlan: type: string autoRenewalFlag: type: string Data: type: array items: type: object downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' za_co_mtn_aggregator_models_subscriptions_cis_ApiDataResponse: title: ApiDataResponse type: object properties: statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string sequenceNo: type: string data: title: SubscribeResponseData type: object properties: subscriptionId: type: string subscriptionName: type: string subscriptionType: type: string amountCharged: type: string bundleType: type: string chargeDescription: type: string countryCode: type: string products: type: array items: $ref: '#/components/schemas/za_co_mtn_aggregator_models_subscriptions_view_Product' Data: type: array items: type: object nodeId: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' za_co_mtn_aggregator_models_batchsubscription_BatchSubscribe: title: BatchSubscribe type: object properties: description: type: string response: title: BatchSubscribeResponse type: object properties: data: type: array items: title: Data type: object properties: msisdn: type: string product: type: integer format: int32 status: type: string message: type: string success: type: boolean message: type: string statusCode: type: integer format: int32 transactionId: type: integer format: int64 error: title: APIError type: object properties: status: type: string statusCode: type: string error: type: string returnCode: type: string message: type: string description: type: string timestamp: type: string path: type: string transactionId: type: string sequenceNo: type: string statusMessage: type: string method: type: string downstreamStatusCode: type: integer format: int32 supportMessage: type: string Data: type: array items: type: object nodeId: type: string mergerData: type: object additionalProperties: type: string responseEntity: title: ResponseEntity type: object properties: status: title: HttpStatusCode type: object headers: type: object additionalProperties: type: object body: type: string statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string Data: type: array items: type: object nodeId: type: string sequenceNo: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' 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 org_springframework_http_ResponseEntity: title: ResponseEntity type: object properties: status: title: HttpStatusCode type: object headers: type: object additionalProperties: type: object body: type: string za_co_mtn_aggregator_models_broadband_FlexiCalculatorRequest: title: FlexiCalculatorRequest type: object properties: amount: type: string category: type: string za_co_mtn_aggregator_models_subscriptions_view_CustomerSubscriptions: title: CustomerSubscriptions type: object properties: customerId: type: string statusMessage: type: string transactionId: type: string supportMessage: type: string beneficiaryId: type: string newPin: type: integer format: int32 services: type: object additionalProperties: title: SubscriptionService type: object properties: statusCode: type: string data: type: array items: $ref: '#/components/schemas/za_co_mtn_aggregator_models_subscriptions_view_Subscription' subscriptionProviderId: type: string subscriptionProviderName: type: string subscriptionProviderDescription: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string Data: type: array items: type: object nodeId: type: string sequenceNo: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' apiError: $ref: '#/components/schemas/za_co_mtn_aggregator_models_error_APIError' data: type: array items: title: SubscriptionData type: object properties: nodeId: type: string subscriptionId: type: string subscriptionName: type: string subscriptionDescription: type: string amountCharged: type: string registrationChannel: type: string statusCode: type: string adjustmentType: type: string startDate: type: string endDate: type: string recharge: type: string transaction: type: string subscriptionStatus: type: string subscriptionItems: type: array items: title: SubscriptionItems type: object properties: id: type: string type: type: string name: type: string price: type: string count: type: string requestTransactionId: type: string timestamp: type: string path: type: string status: type: string error: type: string message: type: string code: type: string statusCode: type: string Data: type: array items: type: object nodeId: type: string sequenceNo: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' za_co_mtn_aggregator_models_subscriptions_cbp_ProductPrice: title: ProductPrice type: object properties: priceType: type: string price: title: Price type: object properties: dutyFreeAmount: title: DutyFreeAmount type: object properties: unit: type: string value: type: string za_co_mtn_aggregator_models_broadband_PairedNumbersResponse: title: PairedNumbersResponse type: object properties: success: type: boolean exception: type: string accounts: type: array items: title: Account type: object properties: fttxMsisdn: type: string accountType: type: string accountCategory: type: string statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string Data: type: array items: type: object nodeId: type: string sequenceNo: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' com_mtn_madapi_models_request_OptionalOffer: title: OptionalOffer type: object properties: id: type: string operationType: type: string za_co_mtn_aggregator_models_subscriptions_view_SubscriptionService: title: SubscriptionService type: object properties: statusCode: type: string data: type: array items: $ref: '#/components/schemas/za_co_mtn_aggregator_models_subscriptions_view_Subscription' subscriptionProviderId: type: string subscriptionProviderName: type: string subscriptionProviderDescription: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string Data: type: array items: type: object nodeId: type: string sequenceNo: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' za_co_mtn_aggregator_models_subscriptions_cbp_ProductOffering: title: ProductOffering type: object properties: id: type: string za_co_mtn_aggregator_models_broadband_StaticBundle: title: StaticBundle type: object properties: category: type: string displayName: type: string amount: type: number format: double za_co_mtn_aggregator_models_subscriptions_create_CustomerInfo: title: CustomerInfo type: object properties: name: type: string email: type: string companyName: type: string street: type: string city: type: string state: type: string zipCode: type: string country: type: string za_co_mtn_aggregator_models_subscriptions_cbp_ProductCharacteristic: title: ProductCharacteristic type: object properties: name: type: string value: type: string za_co_mtn_aggregator_models_broadband_OptionValueItem: title: OptionValueItem type: object properties: optionValue: type: string za_co_mtn_aggregator_constants_CreateSubscriptionStatus: title: CreateSubscriptionStatus type: object properties: subscriptionStatusCode: type: string subscriptionStatus: type: string description: type: string za_co_mtn_aggregator_models_response_OfferDetails: title: OfferDetails type: object properties: offerId: type: integer format: int64 expiryDate: type: string za_co_mtn_aggregator_models_customer_CustomerDetails: title: CustomerDetails type: object properties: name: type: string value: type: string za_co_mtn_aggregator_models_response_SubscriptionItems: title: SubscriptionItems type: object properties: id: type: string type: type: string name: type: string price: type: string count: type: string za_co_mtn_aggregator_models_response_DaDetails: title: DaDetails type: object properties: daId: type: integer format: int64 daValue: type: integer format: int64 startDate: type: string endDate: type: string unitType: type: string za_co_mtn_aggregator_models_subscriptions_acs_Cost: title: Cost type: object properties: data: type: string voice: type: string za_co_mtn_aggregator_models_subscriptions_cis_SubscribeResponseData: title: SubscribeResponseData type: object properties: subscriptionId: type: string subscriptionName: type: string subscriptionType: type: string amountCharged: type: string bundleType: type: string chargeDescription: type: string countryCode: type: string products: type: array items: $ref: '#/components/schemas/za_co_mtn_aggregator_models_subscriptions_view_Product' za_co_mtn_aggregator_models_subscriptions_view_SubscriptionData: title: SubscriptionData type: object properties: nodeId: type: string subscriptionId: type: string subscriptionName: type: string subscriptionDescription: type: string amountCharged: type: string registrationChannel: type: string statusCode: type: string adjustmentType: type: string startDate: type: string endDate: type: string recharge: type: string transaction: type: string subscriptionStatus: type: string subscriptionItems: type: array items: title: SubscriptionItems type: object properties: id: type: string type: type: string name: type: string price: type: string count: type: string requestTransactionId: type: string za_co_mtn_aggregator_models_subscriptions_cbp_Price: title: Price type: object properties: dutyFreeAmount: title: DutyFreeAmount type: object properties: unit: type: string value: type: string za_co_mtn_aggregator_models_subscriptions_view_BatchSubscription_Self: title: Self type: object properties: href: type: string za_co_mtn_aggregator_models_broadband_BundleCategory: title: BundleCategory type: object properties: category: type: string displayName: type: string flexyAllowed: type: boolean minAmount: type: number format: double maxAmount: type: number format: double za_co_mtn_aggregator_models_broadband_FlexiCalculatorResponse: title: FlexiCalculatorResponse type: object properties: success: type: boolean exception: type: string options: type: array items: title: OptionValueItem type: object properties: optionValue: type: string responseBody: type: string statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string Data: type: array items: type: object nodeId: type: string sequenceNo: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' za_co_mtn_aggregator_constants_BundleType: title: BundleType type: object properties: name: type: string za_co_mtn_aggregator_models_broadband_Account: title: Account type: object properties: fttxMsisdn: type: string accountType: type: string accountCategory: type: string org_springframework_http_HttpStatusCode: title: HttpStatusCode type: object za_co_mtn_aggregator_models_broadband_PairNumbersResponse: title: PairNumbersResponse type: object properties: statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string Data: type: array items: type: object nodeId: type: string sequenceNo: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' za_co_mtn_aggregator_models_APIResponse: title: APIResponse type: object properties: statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string Data: type: array items: type: object nodeId: type: string sequenceNo: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' za_co_mtn_aggregator_models_subscriptions_callerFeel_CallerSubscriptionRequest: title: CallerSubscriptionRequest type: object properties: subscriptionId: type: string beneficiaryId: type: string amountCharged: type: string correlationId: type: string subscriptionProviderId: type: string subscriptionName: type: string subscriptionDescription: type: string subscriberId: type: string offerId: type: string nodeId: type: string registrationChannel: type: string startDate: type: string endDate: type: string units: type: string subscriptionLength: type: string countryCode: type: string targetSystem: type: string updateType: type: string subscriptionType: type: string customerId: type: string za_co_mtn_aggregator_models_subscriptions_acs_Validity: title: Validity type: object properties: data: type: string voice: type: string za_co_mtn_aggregator_models_subscriptions_view_Product: title: Product type: object properties: productId: type: string count: type: string auto-renew: type: boolean productName: type: string productType: type: string discount: type: string cost: title: Cost type: object properties: data: type: string voice: type: string name: type: string validity: title: Validity type: object properties: data: type: string voice: type: string frequency: type: string price: type: string 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_models_subscriptions_view_Dynamic: title: Dynamic type: object properties: voiceAmount: type: number format: double dataAmount: type: number format: double smsAmount: type: number format: double za_co_mtn_aggregator_constants_SubscriptionType: title: SubscriptionType type: object properties: name: type: string za_co_mtn_aggregator_models_subscriptions_cbp_RealizingResource: title: RealizingResource type: object properties: id: type: string type: type: string za_co_mtn_aggregator_models_subscriptions_cbp_DutyFreeAmount: title: DutyFreeAmount type: object properties: unit: type: string value: type: string za_co_mtn_aggregator_models_broadband_ValidateNumberResponse: title: ValidateNumberResponse type: object properties: success: type: boolean exception: type: string accountType: type: string bundleCategories: type: array items: title: BundleCategory type: object properties: category: type: string displayName: type: string flexyAllowed: type: boolean minAmount: type: number format: double maxAmount: type: number format: double staticBundles: type: array items: title: StaticBundle type: object properties: category: type: string displayName: type: string amount: type: number format: double statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string Data: type: array items: type: object nodeId: type: string sequenceNo: type: string downstreamStatusCode: type: integer format: int32 mergerData: type: object additionalProperties: type: string responseEntity: $ref: '#/components/schemas/org_springframework_http_ResponseEntity' 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