331 lines
8.9 KiB
JSON
331 lines
8.9 KiB
JSON
{
|
|
"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",
|
|
"fromCountry",
|
|
"toCountry"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"merchantId": {
|
|
"type": "string",
|
|
"description": "Merchant ID"
|
|
},
|
|
"methodId": {
|
|
"type": "string",
|
|
"description": "Payment method type 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"
|
|
},
|
|
"methodId": {
|
|
"type": "string",
|
|
"description": "Payment method type id"
|
|
},
|
|
"fromCurrency": {
|
|
"type": "string",
|
|
"description": "Source currency (ISO code)"
|
|
},
|
|
"fromAmount": {
|
|
"type": "number",
|
|
"description": "Source amount (one of fromAmount and toAmount must be specified)"
|
|
},
|
|
"toCurrency": {
|
|
"type": "string",
|
|
"description": "Destination currency (ISO code)"
|
|
},
|
|
"toAmount": {
|
|
"type": "number",
|
|
"description": "Destination amount (one of fromAmount and toAmount must be specified)"
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |