{ "info": { "name": "MTN Product API", "schema": "https:\/\/schema.getpostman.com\/json\/collection\/v2.1.0\/collection.json" }, "item": [ { "name": "View product catalogue.", "description": "Retrieves the catalogue of Products available for purchase.", "request": { "auth": { "type": "apikey", "apikey": [ { "key": "key", "value": "X-API-Key", "type": "string" } ] }, "method": "Get", "header": [ { "key": "Content-Type", "name": "Content-Type", "value": "application\/json", "type": "application\/json", "description": "" } ], "url": { "raw": "www.api.mtn.com\/products\/{customerId}", "protocol": "https", "host": [ "www", "api", "mtn", "com" ], "path": { "1": "products", "2": "{customerId}" } } }, "response": [ { "code": 200, "status": "OK", "name": "Product Catalogue object. For a successfull request, the response will contain all the products available. If a product type does not have any requested data, then those fields will be null. E.g. if the product type (e.g. Data) does not have products, then the data field will be an empty list.", "schema": { "customerId": { "type": "string" }, "data": { "voice": { "daily": { "id": { "type": "string", "description": "Identifies the product. This must be an echoed back input from the 3pp", "example": "97" }, "name": { "type": "string", "description": "The name of the product.", "example": "5,000Frw(7GB)\/30Days" }, "currency": { "type": "string", "description": "ISO 4217 Three-letter ISO code for the currency.", "example": "RWF" }, "amount": { "type": "string", "description": "The amount that the product will cost", "example": "5000" }, "bundleCategory": { "type": "string", "description": "The category of the bundle", "example": "3G Bundles Daily" }, "bundleType": { "type": "string", "description": "The type of the bundle", "example": "DataBundle" } }, "weekly": { "id": { "type": "string", "description": "Identifies the product. This must be an echoed back input from the 3pp", "example": "97" }, "name": { "type": "string", "description": "The name of the product.", "example": "5,000Frw(7GB)\/30Days" }, "currency": { "type": "string", "description": "ISO 4217 Three-letter ISO code for the currency.", "example": "RWF" }, "amount": { "type": "string", "description": "The amount that the product will cost", "example": "5000" }, "bundleCategory": { "type": "string", "description": "The category of the bundle", "example": "3G Bundles Daily" }, "bundleType": { "type": "string", "description": "The type of the bundle", "example": "DataBundle" } }, "monthly": { "id": { "type": "string", "description": "Identifies the product. This must be an echoed back input from the 3pp", "example": "97" }, "name": { "type": "string", "description": "The name of the product.", "example": "5,000Frw(7GB)\/30Days" }, "currency": { "type": "string", "description": "ISO 4217 Three-letter ISO code for the currency.", "example": "RWF" }, "amount": { "type": "string", "description": "The amount that the product will cost", "example": "5000" }, "bundleCategory": { "type": "string", "description": "The category of the bundle", "example": "3G Bundles Daily" }, "bundleType": { "type": "string", "description": "The type of the bundle", "example": "DataBundle" } }, "_link": { "self": { "href": { "type": "string", "description": "" } } } }, "data": { "daily": { "id": { "type": "string", "description": "Identifies the product. This must be an echoed back input from the 3pp", "example": "97" }, "name": { "type": "string", "description": "The name of the product.", "example": "5,000Frw(7GB)\/30Days" }, "currency": { "type": "string", "description": "ISO 4217 Three-letter ISO code for the currency.", "example": "RWF" }, "amount": { "type": "string", "description": "The amount that the product will cost", "example": "5000" }, "bundleCategory": { "type": "string", "description": "The category of the bundle", "example": "3G Bundles Daily" }, "bundleType": { "type": "string", "description": "The type of the bundle", "example": "DataBundle" } }, "weekly": { "id": { "type": "string", "description": "Identifies the product. This must be an echoed back input from the 3pp", "example": "97" }, "name": { "type": "string", "description": "The name of the product.", "example": "5,000Frw(7GB)\/30Days" }, "currency": { "type": "string", "description": "ISO 4217 Three-letter ISO code for the currency.", "example": "RWF" }, "amount": { "type": "string", "description": "The amount that the product will cost", "example": "5000" }, "bundleCategory": { "type": "string", "description": "The category of the bundle", "example": "3G Bundles Daily" }, "bundleType": { "type": "string", "description": "The type of the bundle", "example": "DataBundle" } }, "monthly": { "id": { "type": "string", "description": "Identifies the product. This must be an echoed back input from the 3pp", "example": "97" }, "name": { "type": "string", "description": "The name of the product.", "example": "5,000Frw(7GB)\/30Days" }, "currency": { "type": "string", "description": "ISO 4217 Three-letter ISO code for the currency.", "example": "RWF" }, "amount": { "type": "string", "description": "The amount that the product will cost", "example": "5000" }, "bundleCategory": { "type": "string", "description": "The category of the bundle", "example": "3G Bundles Daily" }, "bundleType": { "type": "string", "description": "The type of the bundle", "example": "DataBundle" } }, "_link": { "self": { "href": { "type": "string", "description": "" } } } }, "yolo": { "daily": { "id": { "type": "string", "description": "Identifies the product. This must be an echoed back input from the 3pp", "example": "97" }, "name": { "type": "string", "description": "The name of the product.", "example": "5,000Frw(7GB)\/30Days" }, "currency": { "type": "string", "description": "ISO 4217 Three-letter ISO code for the currency.", "example": "RWF" }, "amount": { "type": "string", "description": "The amount that the product will cost", "example": "5000" }, "bundleCategory": { "type": "string", "description": "The category of the bundle", "example": "3G Bundles Daily" }, "bundleType": { "type": "string", "description": "The type of the bundle", "example": "DataBundle" } }, "weekly": { "id": { "type": "string", "description": "Identifies the product. This must be an echoed back input from the 3pp", "example": "97" }, "name": { "type": "string", "description": "The name of the product.", "example": "5,000Frw(7GB)\/30Days" }, "currency": { "type": "string", "description": "ISO 4217 Three-letter ISO code for the currency.", "example": "RWF" }, "amount": { "type": "string", "description": "The amount that the product will cost", "example": "5000" }, "bundleCategory": { "type": "string", "description": "The category of the bundle", "example": "3G Bundles Daily" }, "bundleType": { "type": "string", "description": "The type of the bundle", "example": "DataBundle" } }, "monthly": { "id": { "type": "string", "description": "Identifies the product. This must be an echoed back input from the 3pp", "example": "97" }, "name": { "type": "string", "description": "The name of the product.", "example": "5,000Frw(7GB)\/30Days" }, "currency": { "type": "string", "description": "ISO 4217 Three-letter ISO code for the currency.", "example": "RWF" }, "amount": { "type": "string", "description": "The amount that the product will cost", "example": "5000" }, "bundleCategory": { "type": "string", "description": "The category of the bundle", "example": "3G Bundles Daily" }, "bundleType": { "type": "string", "description": "The type of the bundle", "example": "DataBundle" } }, "_link": { "self": { "href": { "type": "string", "description": "" } } } } } }, "body": "{\"customerId\":\"string\",\"data\":{\"voice\":{\"daily\":{\"id\":\"string\",\"name\":\"string\",\"currency\":\"string\",\"amount\":\"string\",\"bundleCategory\":\"string\",\"bundleType\":\"string\"},\"weekly\":{\"id\":\"string\",\"name\":\"string\",\"currency\":\"string\",\"amount\":\"string\",\"bundleCategory\":\"string\",\"bundleType\":\"string\"},\"monthly\":{\"id\":\"string\",\"name\":\"string\",\"currency\":\"string\",\"amount\":\"string\",\"bundleCategory\":\"string\",\"bundleType\":\"string\"},\"_link\":{\"self\":{\"href\":\"string\"}}},\"data\":{\"daily\":{\"id\":\"string\",\"name\":\"string\",\"currency\":\"string\",\"amount\":\"string\",\"bundleCategory\":\"string\",\"bundleType\":\"string\"},\"weekly\":{\"id\":\"string\",\"name\":\"string\",\"currency\":\"string\",\"amount\":\"string\",\"bundleCategory\":\"string\",\"bundleType\":\"string\"},\"monthly\":{\"id\":\"string\",\"name\":\"string\",\"currency\":\"string\",\"amount\":\"string\",\"bundleCategory\":\"string\",\"bundleType\":\"string\"},\"_link\":{\"self\":{\"href\":\"string\"}}},\"yolo\":{\"daily\":{\"id\":\"string\",\"name\":\"string\",\"currency\":\"string\",\"amount\":\"string\",\"bundleCategory\":\"string\",\"bundleType\":\"string\"},\"weekly\":{\"id\":\"string\",\"name\":\"string\",\"currency\":\"string\",\"amount\":\"string\",\"bundleCategory\":\"string\",\"bundleType\":\"string\"},\"monthly\":{\"id\":\"string\",\"name\":\"string\",\"currency\":\"string\",\"amount\":\"string\",\"bundleCategory\":\"string\",\"bundleType\":\"string\"},\"_link\":{\"self\":{\"href\":\"string\"}}}}}", "header": [ { "key": "Content-Type", "value": "application\/json", "description": "Sending as JSON", "type": "string" } ] }, { "code": 400, "status": "Bad Request", "name": "Bad Request", "schema": { "timestamp": { "type": "string", "format": "date-time", "description": "Error response code" }, "status": { "type": "string", "description": "Text explaining the reason for the error" }, "error": { "type": "string" }, "message": { "type": "string", "description": "More error details and corrective measures" }, "path": { "type": "string", "description": "" } }, "body": "{\"timestamp\":\"string\",\"status\":\"string\",\"error\":\"string\",\"message\":\"string\",\"path\":\"string\"}", "header": [ { "key": "Content-Type", "value": "application\/json", "description": "Sending as JSON", "type": "string" } ] }, { "code": 401, "status": "Unauthorized", "name": "Unauthorized", "schema": { "timestamp": { "type": "string", "format": "date-time", "description": "Error response code" }, "status": { "type": "string", "description": "Text explaining the reason for the error" }, "error": { "type": "string" }, "message": { "type": "string", "description": "More error details and corrective measures" }, "path": { "type": "string", "description": "" } }, "body": "{\"timestamp\":\"string\",\"status\":\"string\",\"error\":\"string\",\"message\":\"string\",\"path\":\"string\"}", "header": [ { "key": "Content-Type", "value": "application\/json", "description": "Sending as JSON", "type": "string" } ] }, { "code": 403, "status": "Forbidden", "name": "Forbidden", "schema": { "timestamp": { "type": "string", "format": "date-time", "description": "Error response code" }, "status": { "type": "string", "description": "Text explaining the reason for the error" }, "error": { "type": "string" }, "message": { "type": "string", "description": "More error details and corrective measures" }, "path": { "type": "string", "description": "" } }, "body": "{\"timestamp\":\"string\",\"status\":\"string\",\"error\":\"string\",\"message\":\"string\",\"path\":\"string\"}", "header": [ { "key": "Content-Type", "value": "application\/json", "description": "Sending as JSON", "type": "string" } ] }, { "code": 404, "status": "Not Found", "name": "Customer not found", "schema": { "timestamp": { "type": "string", "format": "date-time", "description": "Error response code" }, "status": { "type": "string", "description": "Text explaining the reason for the error" }, "error": { "type": "string" }, "message": { "type": "string", "description": "More error details and corrective measures" }, "path": { "type": "string", "description": "" } }, "body": "{\"timestamp\":\"string\",\"status\":\"string\",\"error\":\"string\",\"message\":\"string\",\"path\":\"string\"}", "header": [ { "key": "Content-Type", "value": "application\/json", "description": "Sending as JSON", "type": "string" } ] }, { "code": 405, "status": "Method Not Allowed", "name": "Method Not allowed", "schema": { "timestamp": { "type": "string", "format": "date-time", "description": "Error response code" }, "status": { "type": "string", "description": "Text explaining the reason for the error" }, "error": { "type": "string" }, "message": { "type": "string", "description": "More error details and corrective measures" }, "path": { "type": "string", "description": "" } }, "body": "{\"timestamp\":\"string\",\"status\":\"string\",\"error\":\"string\",\"message\":\"string\",\"path\":\"string\"}", "header": [ { "key": "Content-Type", "value": "application\/json", "description": "Sending as JSON", "type": "string" } ] }, { "code": 500, "status": "Internal Server Error", "name": "Internal Server Error", "schema": { "timestamp": { "type": "string", "format": "date-time", "description": "Error response code" }, "status": { "type": "string", "description": "Text explaining the reason for the error" }, "error": { "type": "string" }, "message": { "type": "string", "description": "More error details and corrective measures" }, "path": { "type": "string", "description": "" } }, "body": "{\"timestamp\":\"string\",\"status\":\"string\",\"error\":\"string\",\"message\":\"string\",\"path\":\"string\"}", "header": [ { "key": "Content-Type", "value": "application\/json", "description": "Sending as JSON", "type": "string" } ] } ] }, { "name": "Retrieve the details of a given product - Query bundle price", "description": "Retrieve the details of a given product most especially to view it's price", "request": { "auth": { "type": "apikey", "apikey": [ { "key": "key", "value": "X-API-Key", "type": "string" } ] }, "method": "Get", "header": [ { "key": "Content-Type", "name": "Content-Type", "value": "application\/json", "type": "application\/json", "description": "" } ], "url": { "raw": "www.api.mtn.com\/products\/{customerId}\/{productId}", "protocol": "https", "host": [ "www", "api", "mtn", "com" ], "path": { "1": "products", "2": "{customerId}", "3": "{productId}" }, "query": [ { "key": "transactionId", "value": "", "required": 0, "type": "string", "description": "Transaction ID" } ] } }, "response": [ { "code": 200, "status": "OK", "name": "Product Details. For a successfull request, the response will contain all the details of the product.", "schema": { "customerId": { "type": "string" }, "data": { "type": "object", "example": { "id": "97", "name": "Daily bundle of 15MB", "currency": "UGX", "amount": 250, "bundleCategory": "3G Bundle Daily", "bundleType": "DATA", "bundleValidaty": "1 Days", "_link": { "self": { "href": "string" } } } } }, "body": "{\"customerId\":\"string\",\"data\":{\"id\":\"97\",\"name\":\"Daily bundle of 15MB\",\"currency\":\"UGX\",\"amount\":250,\"bundleCategory\":\"3G Bundle Daily\",\"bundleType\":\"DATA\",\"bundleValidaty\":\"1 Days\",\"_link\":{\"self\":{\"href\":\"string\"}}}}", "header": [ { "key": "Content-Type", "value": "application\/json", "description": "Sending as JSON", "type": "string" } ] }, { "code": 400, "status": "Bad Request", "name": "Bad Request", "schema": { "timestamp": { "type": "string", "format": "date-time", "description": "Error response code" }, "status": { "type": "string", "description": "Text explaining the reason for the error" }, "error": { "type": "string" }, "message": { "type": "string", "description": "More error details and corrective measures" }, "path": { "type": "string", "description": "" } }, "body": "{\"timestamp\":\"string\",\"status\":\"string\",\"error\":\"string\",\"message\":\"string\",\"path\":\"string\"}", "header": [ { "key": "Content-Type", "value": "application\/json", "description": "Sending as JSON", "type": "string" } ] }, { "code": 401, "status": "Unauthorized", "name": "Unauthorized", "schema": { "timestamp": { "type": "string", "format": "date-time", "description": "Error response code" }, "status": { "type": "string", "description": "Text explaining the reason for the error" }, "error": { "type": "string" }, "message": { "type": "string", "description": "More error details and corrective measures" }, "path": { "type": "string", "description": "" } }, "body": "{\"timestamp\":\"string\",\"status\":\"string\",\"error\":\"string\",\"message\":\"string\",\"path\":\"string\"}", "header": [ { "key": "Content-Type", "value": "application\/json", "description": "Sending as JSON", "type": "string" } ] }, { "code": 403, "status": "Forbidden", "name": "Forbidden", "schema": { "timestamp": { "type": "string", "format": "date-time", "description": "Error response code" }, "status": { "type": "string", "description": "Text explaining the reason for the error" }, "error": { "type": "string" }, "message": { "type": "string", "description": "More error details and corrective measures" }, "path": { "type": "string", "description": "" } }, "body": "{\"timestamp\":\"string\",\"status\":\"string\",\"error\":\"string\",\"message\":\"string\",\"path\":\"string\"}", "header": [ { "key": "Content-Type", "value": "application\/json", "description": "Sending as JSON", "type": "string" } ] }, { "code": 404, "status": "Not Found", "name": "Product not found", "schema": { "timestamp": { "type": "string", "format": "date-time", "description": "Error response code" }, "status": { "type": "string", "description": "Text explaining the reason for the error" }, "error": { "type": "string" }, "message": { "type": "string", "description": "More error details and corrective measures" }, "path": { "type": "string", "description": "" } }, "body": "{\"timestamp\":\"string\",\"status\":\"string\",\"error\":\"string\",\"message\":\"string\",\"path\":\"string\"}", "header": [ { "key": "Content-Type", "value": "application\/json", "description": "Sending as JSON", "type": "string" } ] }, { "code": 405, "status": "Method Not Allowed", "name": "Method Not allowed", "schema": { "timestamp": { "type": "string", "format": "date-time", "description": "Error response code" }, "status": { "type": "string", "description": "Text explaining the reason for the error" }, "error": { "type": "string" }, "message": { "type": "string", "description": "More error details and corrective measures" }, "path": { "type": "string", "description": "" } }, "body": "{\"timestamp\":\"string\",\"status\":\"string\",\"error\":\"string\",\"message\":\"string\",\"path\":\"string\"}", "header": [ { "key": "Content-Type", "value": "application\/json", "description": "Sending as JSON", "type": "string" } ] }, { "code": 500, "status": "Internal Server Error", "name": "Internal Server Error", "schema": { "timestamp": { "type": "string", "format": "date-time", "description": "Error response code" }, "status": { "type": "string", "description": "Text explaining the reason for the error" }, "error": { "type": "string" }, "message": { "type": "string", "description": "More error details and corrective measures" }, "path": { "type": "string", "description": "" } }, "body": "{\"timestamp\":\"string\",\"status\":\"string\",\"error\":\"string\",\"message\":\"string\",\"path\":\"string\"}", "header": [ { "key": "Content-Type", "value": "application\/json", "description": "Sending as JSON", "type": "string" } ] } ] } ] }