SettleMint
Reference

Organization settings API reference

Read, list, create, update, and delete an organization's key-value settings through the DALP Platform API, including the base currency, system address, target currencies, and account abstraction toggle.

Each organization keeps a set of key-value settings that configure how its platform behaves: the reporting base currency, the deployed system address, the fiat currencies that get on-chain price feeds, and whether account abstraction is enabled. Use these endpoints to read and write that store directly.

Reach for them when your integration manages organization configuration programmatically instead of through the Console. Each setting is scoped to the active organization, so you only ever see and change your own values.

The /settings path also hosts dedicated catalogs with richer schemas and their own pages: asset class definitions, instrument templates, and compliance templates. The endpoints below handle only the plain key-value store.

Endpoints

EndpointUse it for
GET /api/v2/settingsList settings with pagination, search, sorting, and facet counts.
GET /api/v2/settings/{key}Read one setting value by its key.
POST /api/v2/settingsCreate or update a setting value.
DELETE /api/v2/settings/{key}Delete a setting.

Read responses use the DALP single-resource envelope with data and links.self. List responses use the collection envelope with data, meta, and pagination links. Delete responses return { "data": null }.

Set the participant and wallet context with the standard request headers before calling these endpoints. See Request headers.

Required roles

OperationRoles (any of)
Read, listadmin, owner, member
Create, update, deleteadmin, owner

Any authenticated member of the organization can read settings. Only administrators and owners can change or remove them.

Setting fields

List responses

GET /api/v2/settings returns a paginated collection. Each item in data contains these fields:

FieldTypeDescription
keystringThe unique key that identifies the setting.
valuestringThe setting value, stored and returned as text.
lastUpdatedstringTimestamp when the value was last written.

Values are always strings. A setting that holds a list, such as the set of target currencies, stores a JSON-encoded array in value.

Read and upsert responses

GET /api/v2/settings/{key} and POST /api/v2/settings return a single-resource envelope with only value inside data:

{
  "data": { "value": "EUR" },
  "links": { "self": "/v2/settings/BASE_CURRENCY" }
}

A key that has never been set returns "value": null.

Well-known keys

Some keys carry validation and behavior beyond a plain string write.

KeyExpected valueNotes
BASE_CURRENCYAn ISO 4217 currency code, such as EUR.The currency used to express portfolio and statistics values.
SYSTEM_ADDRESSAn Ethereum address (0x...), or an empty string.The deployed system contract for the organization.
TARGET_CURRENCIESA JSON array of ISO 4217 codes, such as ["EUR","USD"].Currencies that get on-chain price feeds. Additive only; see below.
AA_ENABLED"true" or "false".Whether account abstraction is enabled for the organization. One-way; see below.
AA_WARN_DAYSA positive integer as a string, such as "7".Days before account-abstraction expiry to show a warning. Cannot be POST-upserted; delete and re-create to reset.
AA_CRITICAL_DAYSA positive integer as a string, such as "3".Days before account-abstraction expiry to show a critical alert. Cannot be POST-upserted; delete and re-create to reset.

The write schema accepts only BASE_CURRENCY, SYSTEM_ADDRESS, TARGET_CURRENCIES, and AA_ENABLED. POSTing any other key fails validation. The read and delete parameters accept all six keys above, so a request for an unknown key still returns a validation error rather than a not-found response.

List settings

GET /api/v2/settings returns the active organization's settings. The list supports pagination, global search across key and value, sorting by key (default) or lastUpdated, and filtering by key, value, or an lastUpdated date range. The value field is filterable but not sortable.

curl --globoff "https://your-platform.example.com/api/v2/settings?filter[key]=CURRENC&sort=key" \
  -H "x-api-key: YOUR_API_KEY"
{
  "data": [
    {
      "key": "BASE_CURRENCY",
      "value": "EUR",
      "lastUpdated": "2026-01-01T00:00:00.000Z"
    },
    {
      "key": "TARGET_CURRENCIES",
      "value": "[\"EUR\",\"USD\"]",
      "lastUpdated": "2026-01-01T00:00:00.000Z"
    }
  ],
  "meta": {
    "total": 2,
    "facets": {}
  },
  "links": {
    "self": "/v2/settings?filter[key]=CURRENC&sort=key&page[offset]=0&page[limit]=50",
    "first": "/v2/settings?filter[key]=CURRENC&sort=key&page[offset]=0&page[limit]=50",
    "prev": null,
    "next": null,
    "last": "/v2/settings?filter[key]=CURRENC&sort=key&page[offset]=0&page[limit]=50"
  }
}

Read a setting

GET /api/v2/settings/{key} returns one value. A key that has never been set returns "value": null rather than an error, so a client can probe for a setting without handling a not-found case.

curl "https://your-platform.example.com/api/v2/settings/BASE_CURRENCY" \
  -H "x-api-key: YOUR_API_KEY"
{
  "data": { "value": "EUR" },
  "links": { "self": "/v2/settings/BASE_CURRENCY" }
}

Create or update a setting

POST /api/v2/settings writes a value, creating the key if it does not exist. Send a key and a value.

curl -X POST "https://your-platform.example.com/api/v2/settings" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "key": "BASE_CURRENCY",
    "value": "EUR"
  }'
{
  "data": { "value": "EUR" },
  "links": { "self": "/v2/settings/BASE_CURRENCY" }
}

Target currencies are additive

TARGET_CURRENCIES drives on-chain price feeds, and a feed cannot be removed once it exists. Each write must therefore be a superset of the current set. You can add currencies, but a request that drops a previously enabled currency is rejected with DALP-0600. Every added currency must be supported by the configured exchange-rate provider. An unsupported code returns DALP-0601, which lists the offending codes.

curl -X POST "https://your-platform.example.com/api/v2/settings" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "key": "TARGET_CURRENCIES",
    "value": "[\"EUR\",\"USD\"]"
  }'

Account abstraction is one-way

AA_ENABLED can be turned on but not off. Once it is "true", a request to set it back to "false" returns DALP-0652. Enabling it also requires account abstraction to be enabled at the platform level first. Without that, the request returns DALP-0617.

Delete a setting

DELETE /api/v2/settings/{key} removes a setting. Deleting a key that does not exist returns DALP-0172.

curl -X DELETE "https://your-platform.example.com/api/v2/settings/SYSTEM_ADDRESS" \
  -H "x-api-key: YOUR_API_KEY"
{
  "data": null
}

On this page