openapi: 3.0.1 info: title: MTN TMF620 Product Catalogue Aggregator Service V1 description: "This service provides comprehensive product catalogue management capabilities\ \ following TMF620 standards for MTN operations. It handles product information\ \ management, catalogue browsing, product lifecycle management, and pricing information,\ \ serving as the central aggregator for all product catalogue operations across\ \ the MTN ecosystem." license: name: MADAPI url: https://developers.mtn.com/ version: 1.0.0 servers: - url: https://api.mtn.com/v1 description: Production Server security: - OAuth2: [] tags: - name: TMF620 Product Catalogue paths: /catalog/{id}: get: tags: - TMF620 Product Catalogue summary: Retrieve Category by ID description: "This operation retrieves a specific Category entity by ID with\ \ comprehensive attribute selection enabled. The endpoint supports filtering\ \ by fields, target system specification, and various business parameters\ \ for optimized data retrieval." operationId: ProductCatalogueAggregator_get_getCategory_catalogid parameters: - name: id in: path required: true schema: type: string - name: transactionId in: header required: false schema: type: string - name: countryCode in: header required: false schema: type: string - name: target in: query required: false schema: type: string - name: fields in: query required: false schema: type: string - name: senderId in: query required: false schema: type: string - name: serviceNumber in: query required: false schema: type: string - name: custom in: query required: false schema: type: string responses: "200": description: Success "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: title: APIError required: - statusCode - statusMessage type: object properties: path: type: string description: API endpoint path where the error occurred example: /api/v1/resource downstreamStatusCode: type: string description: Downstream service error code if applicable sequenceNo: type: string description: Sequence number for request tracking example: "20250115120000001" method: type: string description: HTTP method of the request that caused the error example: POST statusMessage: type: string description: Human-readable error message example: Bad request. Invalid parameters provided. transactionId: type: string description: Transaction identifier for tracking and correlation example: "1234567890" statusCode: type: string description: Error status code example: "400" supportMessage: type: string description: Technical support message or error code for troubleshooting example: VALIDATION_ERROR timestamp: type: string description: Error timestamp in ISO 8601 format format: date-time example: 2025-01-15T12:00:00Z description: Generic MADAPI error response structure example: sequenceNo: "20250115120000001" statusMessage: "Bad request. Invalid request parameters, missing\ \ required fields, or validation errors." transactionId: "1234567890" statusCode: "400" supportMessage: API_ERROR timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: title: APIError required: - statusCode - statusMessage type: object properties: path: type: string description: API endpoint path where the error occurred example: /api/v1/resource downstreamStatusCode: type: string description: Downstream service error code if applicable sequenceNo: type: string description: Sequence number for request tracking example: "20250115120000001" method: type: string description: HTTP method of the request that caused the error example: POST statusMessage: type: string description: Human-readable error message example: Bad request. Invalid parameters provided. transactionId: type: string description: Transaction identifier for tracking and correlation example: "1234567890" statusCode: type: string description: Error status code example: "400" supportMessage: type: string description: Technical support message or error code for troubleshooting example: VALIDATION_ERROR timestamp: type: string description: Error timestamp in ISO 8601 format format: date-time example: 2025-01-15T12:00:00Z description: Generic MADAPI error response structure example: sequenceNo: "20250115120000001" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." transactionId: "1234567890" statusCode: "401" supportMessage: API_ERROR 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: title: APIError required: - statusCode - statusMessage type: object properties: path: type: string description: API endpoint path where the error occurred example: /api/v1/resource downstreamStatusCode: type: string description: Downstream service error code if applicable sequenceNo: type: string description: Sequence number for request tracking example: "20250115120000001" method: type: string description: HTTP method of the request that caused the error example: POST statusMessage: type: string description: Human-readable error message example: Bad request. Invalid parameters provided. transactionId: type: string description: Transaction identifier for tracking and correlation example: "1234567890" statusCode: type: string description: Error status code example: "400" supportMessage: type: string description: Technical support message or error code for troubleshooting example: VALIDATION_ERROR timestamp: type: string description: Error timestamp in ISO 8601 format format: date-time example: 2025-01-15T12:00:00Z description: Generic MADAPI error response structure example: sequenceNo: "20250115120000001" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. transactionId: "1234567890" statusCode: "403" supportMessage: API_ERROR timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: title: APIError required: - statusCode - statusMessage type: object properties: path: type: string description: API endpoint path where the error occurred example: /api/v1/resource downstreamStatusCode: type: string description: Downstream service error code if applicable sequenceNo: type: string description: Sequence number for request tracking example: "20250115120000001" method: type: string description: HTTP method of the request that caused the error example: POST statusMessage: type: string description: Human-readable error message example: Bad request. Invalid parameters provided. transactionId: type: string description: Transaction identifier for tracking and correlation example: "1234567890" statusCode: type: string description: Error status code example: "400" supportMessage: type: string description: Technical support message or error code for troubleshooting example: VALIDATION_ERROR timestamp: type: string description: Error timestamp in ISO 8601 format format: date-time example: 2025-01-15T12:00:00Z description: Generic MADAPI error response structure example: sequenceNo: "20250115120000001" statusMessage: Not found. The requested resource was not found or does not exist. transactionId: "1234567890" statusCode: "404" supportMessage: API_ERROR 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: title: APIError required: - statusCode - statusMessage type: object properties: path: type: string description: API endpoint path where the error occurred example: /api/v1/resource downstreamStatusCode: type: string description: Downstream service error code if applicable sequenceNo: type: string description: Sequence number for request tracking example: "20250115120000001" method: type: string description: HTTP method of the request that caused the error example: POST statusMessage: type: string description: Human-readable error message example: Bad request. Invalid parameters provided. transactionId: type: string description: Transaction identifier for tracking and correlation example: "1234567890" statusCode: type: string description: Error status code example: "400" supportMessage: type: string description: Technical support message or error code for troubleshooting example: VALIDATION_ERROR timestamp: type: string description: Error timestamp in ISO 8601 format format: date-time example: 2025-01-15T12:00:00Z description: Generic MADAPI error response structure example: sequenceNo: "20250115120000001" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." transactionId: "1234567890" statusCode: "500" supportMessage: API_ERROR 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: title: APIError required: - statusCode - statusMessage type: object properties: path: type: string description: API endpoint path where the error occurred example: /api/v1/resource downstreamStatusCode: type: string description: Downstream service error code if applicable sequenceNo: type: string description: Sequence number for request tracking example: "20250115120000001" method: type: string description: HTTP method of the request that caused the error example: POST statusMessage: type: string description: Human-readable error message example: Bad request. Invalid parameters provided. transactionId: type: string description: Transaction identifier for tracking and correlation example: "1234567890" statusCode: type: string description: Error status code example: "400" supportMessage: type: string description: Technical support message or error code for troubleshooting example: VALIDATION_ERROR timestamp: type: string description: Error timestamp in ISO 8601 format format: date-time example: 2025-01-15T12:00:00Z description: Generic MADAPI error response structure example: sequenceNo: "20250115120000001" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. transactionId: "1234567890" statusCode: "502" supportMessage: API_ERROR 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: title: APIError required: - statusCode - statusMessage type: object properties: path: type: string description: API endpoint path where the error occurred example: /api/v1/resource downstreamStatusCode: type: string description: Downstream service error code if applicable sequenceNo: type: string description: Sequence number for request tracking example: "20250115120000001" method: type: string description: HTTP method of the request that caused the error example: POST statusMessage: type: string description: Human-readable error message example: Bad request. Invalid parameters provided. transactionId: type: string description: Transaction identifier for tracking and correlation example: "1234567890" statusCode: type: string description: Error status code example: "400" supportMessage: type: string description: Technical support message or error code for troubleshooting example: VALIDATION_ERROR timestamp: type: string description: Error timestamp in ISO 8601 format format: date-time example: 2025-01-15T12:00:00Z description: Generic MADAPI error response structure example: sequenceNo: "20250115120000001" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. transactionId: "1234567890" statusCode: "503" supportMessage: API_ERROR timestamp: 2025-01-15T12:00:00Z deprecated: false /catalog: get: tags: - TMF620 Product Catalogue summary: List or Find Catalog Objects description: "This operation lists or finds Catalog objects with comprehensive\ \ filtering capabilities. The endpoint supports multiple business parameters\ \ including category names, market segments, business types, lifecycle status,\ \ and various filtering options for optimized catalog retrieval." operationId: ProductCatalogueAggregator_get_getCatalog_catalog parameters: - name: transactionId in: header required: false schema: type: string - name: countryCode in: header required: false schema: type: string - name: fields in: query required: false schema: type: string - name: senderId in: query required: false schema: type: string - name: categoryName in: query required: false schema: type: string - name: marketSegment in: query required: false schema: type: string - name: businessType in: query required: false schema: type: string - name: lifeCycle in: query required: false schema: type: string - name: isSellable in: query required: false schema: type: string - name: serviceNumber in: query required: false schema: type: string - name: depth in: query required: false schema: type: string - name: limit in: query required: false schema: type: string - name: targetSystem in: query required: false schema: type: string - name: startDate in: query required: false schema: type: string - name: endDate in: query required: false schema: type: string - name: offset in: query required: false schema: type: string - name: productId in: query required: false schema: type: string - name: productProviderId in: query required: false schema: type: string - name: unit in: query required: false schema: type: string responses: "200": description: Success "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: title: APIError required: - statusCode - statusMessage type: object properties: path: type: string description: API endpoint path where the error occurred example: /api/v1/resource downstreamStatusCode: type: string description: Downstream service error code if applicable sequenceNo: type: string description: Sequence number for request tracking example: "20250115120000001" method: type: string description: HTTP method of the request that caused the error example: POST statusMessage: type: string description: Human-readable error message example: Bad request. Invalid parameters provided. transactionId: type: string description: Transaction identifier for tracking and correlation example: "1234567890" statusCode: type: string description: Error status code example: "400" supportMessage: type: string description: Technical support message or error code for troubleshooting example: VALIDATION_ERROR timestamp: type: string description: Error timestamp in ISO 8601 format format: date-time example: 2025-01-15T12:00:00Z description: Generic MADAPI error response structure example: sequenceNo: "20250115120000001" statusMessage: "Bad request. Invalid request parameters, missing\ \ required fields, or validation errors." transactionId: "1234567890" statusCode: "400" supportMessage: API_ERROR timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: title: APIError required: - statusCode - statusMessage type: object properties: path: type: string description: API endpoint path where the error occurred example: /api/v1/resource downstreamStatusCode: type: string description: Downstream service error code if applicable sequenceNo: type: string description: Sequence number for request tracking example: "20250115120000001" method: type: string description: HTTP method of the request that caused the error example: POST statusMessage: type: string description: Human-readable error message example: Bad request. Invalid parameters provided. transactionId: type: string description: Transaction identifier for tracking and correlation example: "1234567890" statusCode: type: string description: Error status code example: "400" supportMessage: type: string description: Technical support message or error code for troubleshooting example: VALIDATION_ERROR timestamp: type: string description: Error timestamp in ISO 8601 format format: date-time example: 2025-01-15T12:00:00Z description: Generic MADAPI error response structure example: sequenceNo: "20250115120000001" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." transactionId: "1234567890" statusCode: "401" supportMessage: API_ERROR 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: title: APIError required: - statusCode - statusMessage type: object properties: path: type: string description: API endpoint path where the error occurred example: /api/v1/resource downstreamStatusCode: type: string description: Downstream service error code if applicable sequenceNo: type: string description: Sequence number for request tracking example: "20250115120000001" method: type: string description: HTTP method of the request that caused the error example: POST statusMessage: type: string description: Human-readable error message example: Bad request. Invalid parameters provided. transactionId: type: string description: Transaction identifier for tracking and correlation example: "1234567890" statusCode: type: string description: Error status code example: "400" supportMessage: type: string description: Technical support message or error code for troubleshooting example: VALIDATION_ERROR timestamp: type: string description: Error timestamp in ISO 8601 format format: date-time example: 2025-01-15T12:00:00Z description: Generic MADAPI error response structure example: sequenceNo: "20250115120000001" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. transactionId: "1234567890" statusCode: "403" supportMessage: API_ERROR timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: title: APIError required: - statusCode - statusMessage type: object properties: path: type: string description: API endpoint path where the error occurred example: /api/v1/resource downstreamStatusCode: type: string description: Downstream service error code if applicable sequenceNo: type: string description: Sequence number for request tracking example: "20250115120000001" method: type: string description: HTTP method of the request that caused the error example: POST statusMessage: type: string description: Human-readable error message example: Bad request. Invalid parameters provided. transactionId: type: string description: Transaction identifier for tracking and correlation example: "1234567890" statusCode: type: string description: Error status code example: "400" supportMessage: type: string description: Technical support message or error code for troubleshooting example: VALIDATION_ERROR timestamp: type: string description: Error timestamp in ISO 8601 format format: date-time example: 2025-01-15T12:00:00Z description: Generic MADAPI error response structure example: sequenceNo: "20250115120000001" statusMessage: Not found. The requested resource was not found or does not exist. transactionId: "1234567890" statusCode: "404" supportMessage: API_ERROR 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: title: APIError required: - statusCode - statusMessage type: object properties: path: type: string description: API endpoint path where the error occurred example: /api/v1/resource downstreamStatusCode: type: string description: Downstream service error code if applicable sequenceNo: type: string description: Sequence number for request tracking example: "20250115120000001" method: type: string description: HTTP method of the request that caused the error example: POST statusMessage: type: string description: Human-readable error message example: Bad request. Invalid parameters provided. transactionId: type: string description: Transaction identifier for tracking and correlation example: "1234567890" statusCode: type: string description: Error status code example: "400" supportMessage: type: string description: Technical support message or error code for troubleshooting example: VALIDATION_ERROR timestamp: type: string description: Error timestamp in ISO 8601 format format: date-time example: 2025-01-15T12:00:00Z description: Generic MADAPI error response structure example: sequenceNo: "20250115120000001" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." transactionId: "1234567890" statusCode: "500" supportMessage: API_ERROR 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: title: APIError required: - statusCode - statusMessage type: object properties: path: type: string description: API endpoint path where the error occurred example: /api/v1/resource downstreamStatusCode: type: string description: Downstream service error code if applicable sequenceNo: type: string description: Sequence number for request tracking example: "20250115120000001" method: type: string description: HTTP method of the request that caused the error example: POST statusMessage: type: string description: Human-readable error message example: Bad request. Invalid parameters provided. transactionId: type: string description: Transaction identifier for tracking and correlation example: "1234567890" statusCode: type: string description: Error status code example: "400" supportMessage: type: string description: Technical support message or error code for troubleshooting example: VALIDATION_ERROR timestamp: type: string description: Error timestamp in ISO 8601 format format: date-time example: 2025-01-15T12:00:00Z description: Generic MADAPI error response structure example: sequenceNo: "20250115120000001" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. transactionId: "1234567890" statusCode: "502" supportMessage: API_ERROR 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: title: APIError required: - statusCode - statusMessage type: object properties: path: type: string description: API endpoint path where the error occurred example: /api/v1/resource downstreamStatusCode: type: string description: Downstream service error code if applicable sequenceNo: type: string description: Sequence number for request tracking example: "20250115120000001" method: type: string description: HTTP method of the request that caused the error example: POST statusMessage: type: string description: Human-readable error message example: Bad request. Invalid parameters provided. transactionId: type: string description: Transaction identifier for tracking and correlation example: "1234567890" statusCode: type: string description: Error status code example: "400" supportMessage: type: string description: Technical support message or error code for troubleshooting example: VALIDATION_ERROR timestamp: type: string description: Error timestamp in ISO 8601 format format: date-time example: 2025-01-15T12:00:00Z description: Generic MADAPI error response structure example: sequenceNo: "20250115120000001" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. transactionId: "1234567890" statusCode: "503" supportMessage: API_ERROR timestamp: 2025-01-15T12:00:00Z deprecated: false components: 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