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.currency
field.
- This is specified in the
- The claim's currency is US dollars (usd).
- This is specified in the
claimAmount.currency
field.
- This is specified in the
- The reserving currency is British pounds (gbp).
- This is specified in the
reservingAmount.currency
field.
- 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.currency
field(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.currency
field.
- 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.currency
field.
- 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
TransactionExchangeRate
schema, themarket
field is a Boolean. -
In the
ExchangeRateInUse
schema, themarket
field is a typekey field whose values are set to typecodes from theFXRateMarket
typelist
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
TransactionExchangeRate
schema:-
claimToReportingExchangeRate
-
transToClaimExchangeRate
-
transToReservingExchangeRate
-
-
The following fields use the
ExchangeRateInUse
schema:-
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
UseDepricatedExchangeRates
is set totrue
, the request object must adhere to theTransactionExchangeRate
schema. -
If
UseDepricatedExchangeRates
is set tofalse
, the request object must adhere to theExchangeRateInUse
schema.
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"
}
}
]
}
}
}