From e05f1ffcd2f28df02081862abbafb9f769f258c6 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 9 Oct 2023 14:58:13 +0500 Subject: [PATCH] PROF-23562 updated api schema --- precalc-api.json | 336 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 335 insertions(+), 1 deletion(-) diff --git a/precalc-api.json b/precalc-api.json index 34862c0..1e70fb5 100644 --- a/precalc-api.json +++ b/precalc-api.json @@ -1 +1,335 @@ -{"openapi":"3.0.1","info":{"title":"Profee Payment calculation API","description":"

Welcome to the Profee Payment calculation API documentation.

\n

\n This is a living document to be updated regularly with new functionality. To address questions\n to our developers please contact: support@profeelab.net\n

","license":{"name":"Profee","url":"http://profee.com"},"version":"v2.0"},"servers":[{"url":"http://localhost","description":"Generated server url"}],"paths":{"/api/v2/calc":{"post":{"tags":["V2 / Payments"],"summary":"Payment calculation","description":"Perform payment calculation","operationId":"calculate","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestDto"}}},"required":true},"responses":{"500":{"description":"Internal Server Error"},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResponseContainerDto"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResponseContainerDto"}}}}}}},"/api/calc":{"post":{"tags":["V1 / Payments"],"summary":"Payment calculation","description":"Perform payment calculation","operationId":"calculate_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestDto"}}},"required":true},"responses":{"500":{"description":"Internal Server Error"},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResponseContainerDto"}}}}}}},"/api/v2/corridors":{"get":{"tags":["V2 / Corridors"],"summary":"Calculation URLs","description":"Returns all calculation URLs available","operationId":"getAllCorridorsAvailable","parameters":[{"name":"merchantId","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error"},"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CorridorDescriptorDto"}}}}}}}}},"components":{"schemas":{"ResponseContainerDto":{"required":["message","status"],"type":"object","properties":{"response":{"$ref":"#/components/schemas/ResponseDto"},"status":{"type":"string","description":"Status of performed operation","enum":["OK","ERROR"]},"message":{"type":"string","description":"Error message when occurred, 'OK' otherwise"}},"description":"Response container"},"ResponseDto":{"type":"object","properties":{"precalcId":{"type":"string","description":"Calculation ID"},"fromCurrency":{"type":"string","description":"Source currency"},"fromAmount":{"type":"number","description":"Source amount"},"toCurrency":{"type":"string","description":"Destination currency"},"toAmount":{"type":"number","description":"Destination amount"},"feeCurrency":{"type":"string","description":"Fee currency"},"feeAmount":{"type":"number","description":"Fee amount"},"rateFromCurrency":{"type":"string","description":"Rate source currency"},"rateToCurrency":{"type":"string","description":"Rate destination currency"},"rateAmount":{"type":"number","description":"Currency rate amount"},"nextStepUrl":{"type":"string","description":"Link for further step to proceed"}},"description":"Payment calculation result"},"RequestDto":{"required":["fromCurrency","merchantId","toCurrency"],"type":"object","properties":{"merchantId":{"type":"string","description":"Merchant ID"},"fromCountry":{"type":"string","description":"Source country (ISO Alpha2 code)"},"fromCurrency":{"type":"string","description":"Source currency (ISO code)"},"fromAmount":{"type":"number","description":"Source amount (one of fromAmount and toAmount must be specified)"},"toCountry":{"type":"string","description":"Destination country (ISO Alpa2 code)"},"toCurrency":{"type":"string","description":"Destination currency (ISO code)"},"toAmount":{"type":"number","description":"Destination amount (one of fromAmount and toAmount must be specified)"},"externalId":{"maxLength":1000,"minLength":0,"type":"string","description":"Merchant's marketing ID (this ID will be placed at utm_campaign further)"}},"description":"Request for payment calculation (either 'fromAmount' or 'toAmount' must be specified)"},"CorridorDescriptorDto":{"type":"object","properties":{"fromCountry":{"type":"string"},"toCountry":{"type":"string"},"currencies":{"type":"array","items":{"$ref":"#/components/schemas/CurrencyPairDto"}}}},"CurrencyPairDto":{"type":"object","properties":{"fromCurrencyCode":{"type":"string"},"toCurrencyCode":{"type":"string"}}}}}} \ No newline at end of file +{ + "openapi": "3.0.1", + "info": { + "title": "Profee Payment calculation API", + "description": "

Welcome to the Profee Payment calculation API documentation.

\n

\n This is a living document to be updated regularly with new functionality. To address questions\n to our developers please contact: support@profeelab.net\n

", + "license": { + "name": "Profee", + "url": "http://profee.com" + }, + "version": "v2.0" + }, + "servers": [ + { + "url": "http://localhost", + "description": "Generated server url" + } + ], + "paths": { + "/api/v2/calc": { + "post": { + "tags": [ + "V2 / Payments" + ], + "summary": "Payment calculation", + "description": "Perform payment calculation", + "operationId": "calculate", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RequestDtoV2" + } + } + }, + "required": true + }, + "responses": { + "500": { + "description": "Internal Server Error" + }, + "400": { + "description": "Bad Request", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseContainerDto" + } + } + } + }, + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseContainerDto" + } + } + } + } + } + } + }, + "/api/calc": { + "post": { + "tags": [ + "V1 / Payments" + ], + "summary": "Payment calculation", + "description": "Perform payment calculation", + "operationId": "calculate_1", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RequestDtoV1" + } + } + }, + "required": true + }, + "responses": { + "500": { + "description": "Internal Server Error" + }, + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseContainerDto" + } + } + } + } + } + } + }, + "/api/v2/corridors": { + "get": { + "tags": [ + "V2 / Corridors" + ], + "summary": "Calculation URLs", + "description": "Returns all calculation URLs available", + "operationId": "getAllCorridorsAvailable", + "parameters": [ + { + "name": "merchantId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "500": { + "description": "Internal Server Error" + }, + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CorridorDescriptorDto" + } + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "ResponseContainerDto": { + "required": [ + "message", + "status" + ], + "type": "object", + "properties": { + "response": { + "$ref": "#/components/schemas/ResponseDto" + }, + "status": { + "type": "string", + "description": "Status of performed operation", + "enum": [ + "OK", + "ERROR" + ] + }, + "message": { + "type": "string", + "description": "Error message when occurred, 'OK' otherwise" + } + }, + "description": "Response container" + }, + "ResponseDto": { + "type": "object", + "properties": { + "precalcId": { + "type": "string", + "description": "Calculation ID" + }, + "fromCurrency": { + "type": "string", + "description": "Source currency" + }, + "fromAmount": { + "type": "number", + "description": "Source amount" + }, + "toCurrency": { + "type": "string", + "description": "Destination currency" + }, + "toAmount": { + "type": "number", + "description": "Destination amount" + }, + "feeCurrency": { + "type": "string", + "description": "Fee currency" + }, + "feeAmount": { + "type": "number", + "description": "Fee amount" + }, + "rateFromCurrency": { + "type": "string", + "description": "Rate source currency" + }, + "rateToCurrency": { + "type": "string", + "description": "Rate destination currency" + }, + "rateAmount": { + "type": "number", + "description": "Currency rate amount" + }, + "nextStepUrl": { + "type": "string", + "description": "Link for further step to proceed" + } + }, + "description": "Payment calculation result" + }, + "RequestDtoV2": { + "required": [ + "fromCurrency", + "merchantId", + "toCurrency" + ], + "type": "object", + "properties": { + "merchantId": { + "type": "string", + "description": "Merchant ID" + }, + "fromCountry": { + "type": "string", + "description": "Source country (ISO Alpha2 code)" + }, + "fromCurrency": { + "type": "string", + "description": "Source currency (ISO code)" + }, + "fromAmount": { + "type": "number", + "description": "Source amount (one of fromAmount and toAmount must be specified)" + }, + "toCountry": { + "type": "string", + "description": "Destination country (ISO Alpa2 code)" + }, + "toCurrency": { + "type": "string", + "description": "Destination currency (ISO code)" + }, + "toAmount": { + "type": "number", + "description": "Destination amount (one of fromAmount and toAmount must be specified)" + }, + "externalId": { + "maxLength": 1000, + "minLength": 0, + "type": "string", + "description": "Merchant's marketing ID (this ID will be placed at utm_campaign further)" + } + }, + "description": "Request for payment calculation (either 'fromAmount' or 'toAmount' must be specified)" + }, + "RequestDtoV1": { + "required": [ + "fromCurrency", + "merchantId", + "toCurrency" + ], + "type": "object", + "properties": { + "merchantId": { + "type": "string", + "description": "Merchant ID" + }, + "fromCountry": { + "type": "string", + "description": "Source country (ISO Alpha2 code)" + }, + "fromCurrency": { + "type": "string", + "description": "Source currency (ISO code)" + }, + "fromAmount": { + "type": "number", + "description": "Source amount (one of fromAmount and toAmount must be specified)" + }, + "toCountry": { + "type": "string", + "description": "Destination country (ISO Alpa2 code)" + }, + "toCurrency": { + "type": "string", + "description": "Destination currency (ISO code)" + }, + "toAmount": { + "type": "number", + "description": "Destination amount (one of fromAmount and toAmount must be specified)" + }, + "externalId": { + "maxLength": 1000, + "minLength": 0, + "type": "string", + "description": "Merchant's marketing ID (this ID will be placed at utm_campaign further)" + } + }, + "description": "Request for payment calculation (either 'fromAmount' or 'toAmount' must be specified)" + }, + "CorridorDescriptorDto": { + "type": "object", + "properties": { + "fromCountry": { + "type": "string" + }, + "toCountry": { + "type": "string" + }, + "currencies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CurrencyPairDto" + } + } + } + }, + "CurrencyPairDto": { + "type": "object", + "properties": { + "fromCurrencyCode": { + "type": "string" + }, + "toCurrencyCode": { + "type": "string" + } + } + } + } + } +} \ No newline at end of file