Product Configurations

The CFX platform allows customers to self-manage certain aspects of CFX products set to tailor them to your specific needs. Implementing customised product configuration is an advanced use case, and we encourage you to reach out to our support team for guidance and testing.

Customisable product configurations are currently available for:

  • Deactivating and reactivating products
  • Configuring customer product fees (fees receivable by a CFX customer)
  • Configuring product limits
  • Configuring rules for granting rewards based on events

Configurations are specified as an array of one or more rules with their corresponding matching criteria. These rules are evaluated dynamically for each platform request to determines which rule(s) apply.

Below is an example of configuring limits:

{
  "rules": [
    {
      "status": "ACTIVE",
      "matcher": {
        "countryCode": "US"
      },
      "value": [
        {
          "window": "24H",
          "type": "MAX_USD",
          "limit": "2000"
        },
        {
          "window": "30D",
          "type": "MAX_COUNT",
          "limit": "50"
        }
      ]
    },
    {
      "status": "ACTIVE",
      "matcher": {},
      "value": [
        {
          "window": "24H",
          "type": "MAX_USD",
          "limit": "500"
        },
        {
          "window": "30D",
          "type": "MAX_COUNT",
          "limit": "10"
        }
      ]
    }
  ]
}

In this example we have defined:

  • A daily limit of US$2,000 and 50 transactions per month for US residents
  • A daily limit of US$500 and 10 transactions per month for non-US residents

Rules are evaluated sequentially with the first matching rule being the ONLY rule to be executed. Therefore customers are encouraged to define specific rules higher in the list, with less specific ones further down, and finally a 'catch-all' rule at the bottom.

Note:

The platform defines its own default rules that are considered as part evaluating the values. For example, if the customer-defined limits exceeds the platform's, the platform limits are used.> The behaviour of these platform-defined values differ per operation. Please refer to each operation's documentation for the details.

The matcher field supports simple and complex criteria. The syntax is very similar to MongoDB operators.

The platform currently support the following operators: $not, $in, $nin, $exists, $gte, $gt, $lte, $lt, $eq, $ne, $mod, $all, $and, $or, $nor, $size, $regex, $elemMatch.

Here are some example matchers:

{ 
  "counrtyCode": "US", 
  "entityType": { "$not": "ORGANIZATION" } 
}
{ 
  "counrtyCode": "US", 
  "regionCode": { "$in": ["FL", "NY", "TX"] } 
}
{
  "sourceAmount": { "$gte": 10000 }
}

The field names that can be used in these queries differ per operation. Please refer to each operation documentation for the supported field names and formats.