openapi: 3.0.1 info: title: Taxation description: "This service provides comprehensive taxation management capabilities\ \ for MTN operations including tax calculation, validation, reporting, and compliance.\ \ It handles various taxation scenarios including service tax, VAT, and regulatory\ \ tax requirements, integrating with multiple tax systems across the MTN ecosystem." license: name: MADAPI url: https://developers.mtn.com/ version: 3.0.0 servers: - url: https://api.mtn.com/v1 description: Production Server security: - OAuth2: [] tags: - name: Taxation paths: /{accountHolderId}/reserve: post: tags: - Taxation summary: Request for the taxable amount description: "This operation retrieves the taxable amount of a transaction from\ \ the Ghana Revenue Authority. The endpoint supports e-levy calculations,\ \ MSISDN validation, country code processing, and comprehensive financial\ \ resource management with system endpoint routing." operationId: Taxation_post_getTaxationAmount_accountHolderIdreser parameters: - name: accountHolderId in: path required: true schema: type: string - name: targetSystem in: header required: true schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-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: ElevyRequest type: object properties: receiverAccountNumber: type: string receiverInstitutionId: type: string senderIssuerId: type: string transferAmount: type: string senderAccountNumber: type: string chargingPartyId: type: string clientTimestamp: type: string resourceId: 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 TMF908-iot-Device Management flows. content: application/json: schema: title: TaxationResponse type: object properties: eLevyId: type: string taxableAmount: type: string currency: type: string operation: type: string statusCode: type: string transactionId: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' "502": description: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. content: application/json: schema: $ref: '#/components/schemas/APIError' "503": description: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. content: application/json: schema: $ref: '#/components/schemas/APIError' deprecated: false components: schemas: com_mtn_madapi_ecw_models_madapi_elevy_ElevyRequest: title: ElevyRequest type: object properties: receiverAccountNumber: type: string receiverInstitutionId: type: string senderIssuerId: type: string transferAmount: type: string senderAccountNumber: type: string chargingPartyId: type: string clientTimestamp: type: string resourceId: type: string com_mtn_aggregator_models_response_TaxationResponse: title: TaxationResponse type: object properties: eLevyId: type: string taxableAmount: type: string currency: type: string operation: type: string statusCode: type: string transactionId: type: string APIError: title: APIError required: - statusCode - statusMessage type: object properties: statusCode: type: string description: Error status code example: "400" statusMessage: type: string description: Human-readable error message example: Bad request. Invalid parameters provided. supportMessage: type: string description: Technical support message or error code for troubleshooting example: VALIDATION_ERROR transactionId: type: string description: Transaction identifier for tracking and correlation example: "1234567890" sequenceNo: type: string description: Sequence number for request tracking example: "20250115120000001" timestamp: type: string description: Error timestamp in ISO 8601 format format: date-time example: 2025-01-15T12:00:00Z path: type: string description: API endpoint path where the error occurred example: /api/v1/resource method: type: string description: HTTP method of the request that caused the error example: POST downstreamStatusCode: type: string description: Downstream service error code if applicable description: Generic MADAPI error response structure 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 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