{ "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/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" } } } } } }