Merge pull request #1 from profee-com/feature/PROF-23562

PROF-23562 updated api schema
pull/4/head
Ivan Koryakovsky 2023-10-10 13:17:41 +05:00 committed by GitHub
commit 4fd3abc008
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 335 additions and 1 deletions

View File

@ -1 +1,335 @@
{"openapi":"3.0.1","info":{"title":"Profee Payment calculation API","description":"<h1>Welcome to the Profee Payment calculation API documentation.</h1>\n<p>\n This is a living document to be updated regularly with new functionality. To address questions\n to our developers please contact: <a href=\"mailto:support@profeelab.net\">support@profeelab.net</a>\n</p>","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"}}}}}}
{
"openapi": "3.0.1",
"info": {
"title": "Profee Payment calculation API",
"description": "<h1>Welcome to the Profee Payment calculation API documentation.</h1>\n<p>\n This is a living document to be updated regularly with new functionality. To address questions\n to our developers please contact: <a href=\"mailto:support@profeelab.net\">support@profeelab.net</a>\n</p>",
"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"
}
}
}
}
}
}