profee-com-external-precalc.../precalc-api.json

492 lines
14 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/v3/calc": {
"post": {
"tags": [
"V3 / Payments"
],
"summary": "Payment calculation",
"description": "Perform payment calculation for promo and standard courses",
"operationId": "calculate",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RequestV3"
}
}
},
"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/PrecalcResponseDtoV3"
}
}
}
}
}
}
},
"/api/v2/calc": {
"post": {
"tags": [
"V2 / Payments"
],
"summary": "Payment calculation",
"description": "Perform payment calculation",
"operationId": "calculate",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExternalPrecalcRequestDto"
}
}
},
"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/RequestV1"
}
}
},
"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": {
"RequestV1": {
"required": [
"merchantId",
"fromCurrency",
"toCurrency"
],
"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)"
},
"ExternalPrecalcRequestDto": {
"required": [
"merchantId",
"fromCurrency",
"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)"
},
"RequestV3": {
"required": [
"merchantId",
"fromCurrency",
"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)"
}
},
"description": "Request for payment calculation (either 'fromAmount' or 'toAmount' must be specified)"
},
"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"
},
"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"
},
"ResponseDtoV3": {
"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"
}
},
"description": "Payment calculation result V3"
},
"PrecalcResponseDtoV3": {
"type": "object",
"properties": {
"promotion": {
"$ref": "#/components/schemas/ResponseDtoV3"
},
"standard": {
"$ref": "#/components/schemas/ResponseDtoV3"
}
}
},
"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"
}
}
}
}
}
}