openapi: 3.2.0 info: description: To enable merchants to manage purchases of subscribers version: v1.0 title: MTN Merchant Provisioning Validate Customer API servers: - url: https://api.mtn.com/v1/merchant security: - ApiKeyAuth: [] - OAuth2: [] tags: - name: Validate Customer paths: /validate/{customerId}: post: tags: - Validate Customer summary: Validate the given Customer ID. description: Used by the merchant to validate the Customer ID. operationId: validateMsisdn parameters: - name: targetSystem in: header required: true schema: type: string enum: - SAAE default: SAAE - name: customerId in: path required: true schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ValidateCustomerResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Customer not found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not allowed content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' requestBody: content: application/json: schema: $ref: '#/components/schemas/ValidateCustomerRequest' required: true components: schemas: ValidateCustomerResponse: type: object properties: statusCode: type: string example: '0000' statusMessage: type: string example: Success transactionId: type: string description: Unique identifier of the transaction data: type: object properties: msn: type: string description: This field represents the message sequence number generated by the ASAP to track the submitted request at a later point in time. merchantId: type: string minLength: 1 maxLength: 50 description: This field represents the merchant responsible for initiating the request. example: '99999' customerId: type: string description: Customer Identifier eg. MSISDN Error: type: object title: Error required: - status - message properties: statusCode: type: string description: Status code returned by provider system statusMessage: type: string description: Status description supportMessage: type: string description: More error details and corrective measures path: type: string description: The path that caused the error timestamp: type: string format: date-time description: Time stamp of the error transactionId: type: string description: Transaction id returned by the provider system. ValidateCustomerRequest: type: object properties: merchantId: type: string minLength: 1 maxLength: 50 description: This field represents the merchant responsible for initiating the request. example: '99999' transactionId: maxLength: 50 type: string description: RSN is a unique request sequence number that can be used to tie up the request and response. example: '4837617387438085' timestamp: description: The field denotes the date at which the request is done. type: string example: '20101126023515' posType: description: This field represents the point of sale identifier of the external application submitting the request. enum: - ATM - CPP - IVR - SMS - TestXML - USSD - WAP - WEB - WIG - APP - AgentAPP - AgentUSSD - AgentWEB type: string example: ATM merchantLocation: description: This field represents the merchant’s location. type: string example: 14th avenue, Roodepoort purchaseType: description: Allowed Purchase types. This can either be Recharge, Voucher or Dynamic type: string enum: - Recharge - Voucher - Dynamic bundleID: description: The virtual alias (Part number) from ERP. type: string example: DATA100MB isAdvanced: description: For XtraTime. type: boolean example: true securitySchemes: ApiKeyAuth: type: apiKey name: X-API-Key in: header OAuth2: type: oauth2 flows: clientCredentials: scopes: {} tokenUrl: https://api.mtn.com/v1/oauth/access_token