openapi: 3.2.0 info: description: To enable merchants to manage purchases of subscribers version: v1.0 title: MTN Merchant Provisioning Usage Limit Adjust API servers: - url: https://api.mtn.com/v1/merchant security: - ApiKeyAuth: [] - OAuth2: [] tags: - name: Usage Limit Adjust paths: /usageLimitAdjust/{merchantId}: post: tags: - Usage Limit Adjust summary: Used to Reserve, Commit or Abort merchant limit. description: This implementation has been done for the auto top up service where a Merchant's Limit can be reserved (Holds the Limit), Committed (Committed as Success) and Aborted (Limit Rolled Back). If we don't receive a commit or abort within a transaction keep alive period, the request will be aborted which will result in the external party needing to repeat the reserve. operationId: usageLimitAdjust parameters: - name: targetSystem in: header required: true schema: type: string enum: - SAAE default: SAAE - name: merchantId in: path required: true schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/usageLimitResponse' '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/usageLimitRequest' required: true components: schemas: usageLimitResponse: 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: reserveRefId: 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. SAAE considers this the same as MSN. 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. usageLimitRequest: type: object properties: 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' customerId: type: string description: Customer Identifier eg. MSISDN amount: description: 'This field denotes the amount that should be credited to the subscribers MSISDN. Note: The amount specified must be in cents.' type: integer bundleID: description: Identifier for the bundle. type: string example: DATA1G usageAdjust: description: mode of adjustment type: string enum: - Reserve - Commit - Abort paymentId: description: Mandatory when Auto Top up is true. The portal (online recharges) generates the product payment ID (PPID), which will be shared via SOA to SAAE to IBF. type: string example: 5454DERFD 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