Retrieving multicurrency information
Multicurrency reserves
Currency information is part of the default response for the GET
/reserves endpoint, whether or not multicurrency has been enabled.
The following is a snippet of the response payload for a GET /reserves for a
multicurrency reserve. Currency information appears in bold. Note the following:
- The default currency for this instance of ClaimCenter is US dollars (usd).
- This is specified in the
reportingAmount.currencyfield.
- This is specified in the
- The claim's currency is US dollars (usd).
- This is specified in the
claimAmount.currencyfield.
- This is specified in the
- The reserving currency is British pounds (gbp).
- This is specified in the
reservingAmount.currencyfield.
- This is specified in the
- The reserve transaction is British pounds (gbp).
- Every reserve transaction consists of one of more line items. Both transactions and line items have currency values, but each is stored in different database tables. These currency values must always be explicitly stated and must always be the same, regardless of whether or not multicurrency is enabled.
- The currency for the transaction is specified in the parent currency field.
- The currency for each associated line item is specified in the
lineItems.transactionAmount.currencyfield(s).
GET /claims/cc:SHRyrnPstWtq7HZ3nxLCC/reserves/cc:SojI8VceTmdlXU6k1pqOB
{
"data": {
"attributes": {
"currency": {
"code": "gbp",
"name": "GBP"
},
"id": "cc:SojI8VceTmdlXU6k1pqOB",
"lineItems": [
{
"claimAmount": {
"amount": "1920.82",
"currency": "usd"
},
"id": "cc:SyLnqtJEkcI4X4WaFXbgP",
"reportingAmount": {
"amount": "1920.82",
"currency": "usd"
},
"reservingAmount": {
"amount": "1000.00",
"currency": "gbp"
},
"transactionAmount": {
"amount": "1000.00",
"currency": "gbp"
}
}
],
"reserveLine": {
"costCategory": {
"code": "body",
"name": "Auto body"
},
"costType": {
"code": "claimcost",
"name": "Claim Cost"
},
"exposure": {
"displayName": "(1) 1st Party Vehicle - Allen Robertson",
"id": "cc:SfXS3Pey0Al29PI13KC5C",
},
"reservingCurrency": {
"code": "gbp",
"name": "GBP"
}
}
}
}
}
There is also a currency value specified in the
reserveLine.reservingCurrency field. This field identifies the currency of
the associated reserve line. A reserve line is a category that can be applied to
a financial transactions. For a given exposure, each reserve line is uniquely identified by
its cost type, cost category, and currency.
Multicurrency checks
Currency information is part of the default response for the GET
/checks endpoint, whether or not multicurrency has been enabled.
The following is a snippet of the response payload for a GET /checks for a
multicurrency check. Currency information appears in bold. Note the following:
- The default currency for this instance of ClaimCenter is US dollars (usd).
- This is specified in the
reportableAmount.currencyfield.
- This is specified in the
- The reserve currency is British pounds (gbp).
- The reserving currency is British pounds (gbp). This is indicated in the display names of the payments. To see the actual currency code, you would need to GET the individual payment and inspect its reserve line.
- The check currency is Euros (eur).
- This is specified in the
grossAmount.currencyfield.
- This is specified in the
GET /claims/cc:SHRyrnPstWtq7HZ3nxLCC/checks/cc:SqK_OuzG48empV3wtydTH
{
"data": {
"attributes": {
"grossAmount": {
"amount": "20.00",
"currency": "eur"
},
"id": "cc:SqK_OuzG48empV3wtydTH",
"paymentMethod": {
"code": "check",
"name": "Check"
},
"payments": [
{
"displayName": "(1) 1st Party Vehicle - Allen Robertson;
Claim Cost/Auto body; GBP; Awaiting submission",
"id": "cc:SXGn6K7Zeidw8MAkv2sGx",
"type": "Payment",
}
],
"reportableAmount": {
"amount": "20.00",
"currency": "eur"
}
}
}
}
Exchange rate information for transactions
-
The rate itself (a numeric value, such as 1.2)
-
The type of rate (such as market or corporate)
Exchange rate schemas
The ExchangeRate data model
For ClaimCenter releases up to and including 2024.07 (Kufri), ClaimCenter
had a single data model for storing exchange rates - the ExchangeRate data
model . This includes the ExchangeRate and
ExchangeRateSet entities. Exchange rates stored in these
entities are not part of the Claim graph.
Exchange rates in the ExchangeRate data model could be one of two types.
The type of rate is specified on the ExchangeRateSet entity. It has
a MarketRates Boolean field.
-
When set to
true, the rate to be used is a "market rate". It is fetched automatically. -
When set to
false, the rate is a "custom rate". It must be stated explicitly.
The ExchangeRateInUse data model
For ClaimCenter releases 2024.11 (Las Leñas) and after, ClaimCenter has two data models for storing exchange rates. ClaimCenter continues to have the ExchangeRate data model, and this is used to manage exchange rates created before Las Leñas. But there is also a second data model, the ExchangeRateInUse data model.
The ExchangeRateInUse data model includes a number of tables whose
name ends in "ExchangeRateInUse", such as
ClaimToReportingExchangeRateInUse. All of the entities delegate
to the ExchangeRateInUseDelegate delegate, which implements the
FXRate interface. Exchange rates stored in these entities are a
part of the Claim graph.
The type of rate is specified in the
ExchangeRateInUseDelegate delegate and therefore is part of
every entity in the data model. It is specified by a Market field which is a typekey
to the FXRateMarket typelist. In the base configuration, this
typefield includes three typecodes: market,
corporate, and manual.
For information on how to configure which data model ClaimCenter uses for newly created exchange rates, refer to the Configuration Guide.
Cloud API compatibility with exchange rate data models
To support both approaches to storing exchange rate data, as of 2024.11 (Las Leñas), Cloud API for ClaimCenter has two schemas for exchange rates:
-
TransactionExchangeRate, which captures exchange rate type information for exchange rates stored in the ExchangeRate data model. -
ExchangeRateInUse, which captures exchange rate type information for exchange rates stored in the ExchangeRateInUse data model.
Both schemas have a rate field to identify the rate and a
market field to identify the rate type.
-
In the
TransactionExchangeRateschema, themarketfield is a Boolean. -
In the
ExchangeRateInUseschema, themarketfield is a typekey field whose values are set to typecodes from theFXRateMarkettypelist
Both schemas are referenced by the Transaction schema. There are three
pairs of fields. The fields start with the same name, but the fields that use the
ExchangeRateInUse schema end in "InUse".
-
The following fields use the
TransactionExchangeRateschema:-
claimToReportingExchangeRate -
transToClaimExchangeRate -
transToReservingExchangeRate
-
-
The following fields use the
ExchangeRateInUseschema:-
claimToReportingExchangeRateInUse -
transToClaimExchangeRateInUse -
transToReservingExchangeRateInUse
-
Exchange rate schemas and GETs
Whenever you GET transaction information, for each transaction, Cloud API uses the schema that corresponds to the data model used to store the transaction. For more information on how ClaimCenter determines which model to use, refer to the Configuration Guide.
Note that it is technically possible for a single claim to have transactions that use different exchange rate schemas.
Exchange rate schemas and POSTs
Whenever you POST transaction information on an instance on or before 2024.07
(Kufri), the request object must adhere to the
TransactionExchangeRate schema.
Whenever you POST transaction information on an instance on or after
2024.11 (Las Leñas), the request object must adhere to the schema that corresponds
to the current setting of the UseDepricatedExchangeRates
application configuration parameter. Thus:
-
If
UseDepricatedExchangeRatesis set totrue, the request object must adhere to theTransactionExchangeRateschema. -
If
UseDepricatedExchangeRatesis set tofalse, the request object must adhere to theExchangeRateInUseschema.
The following request payload is an example of creating a transaction while
UseDepricatedExchangeRates is set to true. The
exchange rate information is in bold.
Command
POST /claims/cc:61/reserve-sets
Request
{
"data": {
"attributes": {
"reservesToWrite": [
{
"claimToReportingExchangeRate": {
"market": true,
"rate": "1.2"
},
"reserveLine": {
"costCategory": {
"code": "body"
},
"costType": {
"code": "claimcost"
},
"exposure": {
"id": "cc:79"
},
"reservingCurrency": {
"code": "usd"
},
"transToClaimExchangeRate": {
"market": true,
"rate": "1.2"
},
"transToReservingExchangeRate": {
"market": true,
"rate": "1.2"
}
},
"lineItems": [
{
"transactionAmount": {
"amount": "1000.00",
"currency": "usd"
}
}
],
"currency": {
"code": "usd"
}
}
]
}
}
}
The following request payload is an example of creating a transaction while
UseDepricatedExchangeRates is set to false.
The exchange rate information is in bold.
Command
POST /claims/cc:61/reserve-sets
Request
{
"data": {
"attributes": {
"reservesToWrite": [
{
"claimToReportingExchangeRateInUse": {
"market": {
"code": "market"
},
"rate": "1.2"
},
"reserveLine": {
"costCategory": {
"code": "body"
},
"costType": {
"code": "claimcost"
},
"exposure": {
"id": "cc:79"
},
"reservingCurrency": {
"code": "usd"
},
"transToClaimExchangeRateInUse": {
"market": {
"code": "market"
},
"rate": "1.2"
},
"transToReservingExchangeRateInUse": {
"market": {
"code": "market"
},
"rate": "1.2"
}
},
"lineItems": [
{
"transactionAmount": {
"amount": "1000.00",
"currency": "usd"
}
}
],
"currency": {
"code": "usd"
}
}
]
}
}
}