https://github.com/folio-org/mod-finance
This documents the API calls that can be made to get exchange batch operations
Calculate exchange batch API
Get exchange calculation in batch
POST /finance/calculate-exchange-batch
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Exchange rate calculation schema",
"type": "object",
"properties": {
"exchangeRateCalculations": {
"description": "The list of exchange rate calculation objects",
"type": "array",
"id": "exchangeRateCalculations",
"items": {
"type": "object",
"properties": {
"from": {
"description": "Fund code to calculate the exchange rate from",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "string",
"pattern": "^[^:]+$"
},
"to": {
"description": "Fund code to calculate the exchange rate to",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "string",
"pattern": "^[^:]+$"
},
"amount": {
"description": "Amount to calculate the exchange rate for",
"type": "number"
},
"rate": {
"description": "Custom exchange rate to use for the calculation",
"type": "number"
},
"calculation": {
"description": "Calculated exchange rate value",
"type": "number"
}
},
"additionalProperties": false,
"required": [
"from",
"to",
"amount"
]
}
}
},
"additionalProperties": false,
"required": [
"exchangeRateCalculations"
]
}
Example:
{
"exchangeRateCalculations": [
{
"from": "USD",
"to": "EUR",
"amount": 1000,
"rate": 0.85
},
{
"from": "EUR",
"to": "GBP",
"amount": 500,
"rate": 0.90
},
{
"from": "GBP",
"to": "JPY",
"amount": 200,
"rate": 150.00
}
]
}
Exchange calculation successfully retrieved
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Exchange rate calculation schema",
"type": "object",
"properties": {
"exchangeRateCalculations": {
"description": "The list of exchange rate calculation objects",
"type": "array",
"id": "exchangeRateCalculations",
"items": {
"type": "object",
"properties": {
"from": {
"description": "Fund code to calculate the exchange rate from",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "string",
"pattern": "^[^:]+$"
},
"to": {
"description": "Fund code to calculate the exchange rate to",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "string",
"pattern": "^[^:]+$"
},
"amount": {
"description": "Amount to calculate the exchange rate for",
"type": "number"
},
"rate": {
"description": "Custom exchange rate to use for the calculation",
"type": "number"
},
"calculation": {
"description": "Calculated exchange rate value",
"type": "number"
}
},
"additionalProperties": false,
"required": [
"from",
"to",
"amount"
]
}
}
},
"additionalProperties": false,
"required": [
"exchangeRateCalculations"
]
}
Example:
{
"exchangeRateCalculations": [
{
"from": "USD",
"to": "EUR",
"amount": 1000,
"rate": 0.85
},
{
"from": "EUR",
"to": "GBP",
"amount": 500,
"rate": 0.90
},
{
"from": "GBP",
"to": "JPY",
"amount": 200,
"rate": 150.00
}
]
}
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
Example:
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
Exchange rate is not available
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
Example:
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
Internal server error, e.g. due to misconfiguration
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
Example:
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}