---
title: "Update an enrichment"
method: PUT
path: "/v1/enrichments/{eid}"
tags: ["Enrichments"]
---

# Update an enrichment

`PUT /v1/enrichments/{eid}`

## Request

- Base URL: `https://api.banksync.io`
- URL: `https://api.banksync.io/v1/enrichments/{eid}`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

## Path parameters

- `eid` string, required: Enrichment ID

## Request body

- object
  - `name` string
  - `emoji` string
  - `enabled` boolean
  - `order` integer
  - `dataType` 'transactions' | 'balances' | 'trades' | 'holdings' | 'orders' | 'loans' | 'receipts' | 'invoices' | 'documents'
  - `feedIds` string[]
  - `allFeeds` boolean
  - `ruleConfig` object
    - `rules` object[], required
      - `name` string
      - `conditions` ConditionGroup, required
        - `logic` 'and' | 'or', required
        - `conditions` union[], required
          - union
            - object
              - …
            - ConditionGroup (recursive)
      - `action` union, required
        - object
          - `kind` 'set': Static value write (default when `kind` is absent)
          - `field` string, required: Target field to write
          - `value` union, required: Static value to set
            - string
            - number
        - object
          - `kind` 'template', required
          - `field` string, required: Target field to write
          - `template` string, required: Template with {{fieldName}} placeholders; missing fields render as ''
        - object
          - `kind` 'regexExtract', required
          - `field` string, required: Target field to write
          - `source` string, required: Source field to extract from
          - `pattern` string, required: Safe-regex-guarded pattern; the captured group is written
          - `group` integer: Capture group to write (default 1)
        - object
          - `kind` 'case', required
          - `field` string, required: Target field to write
          - `source` string: Source field (defaults to `field` — in-place recase)
          - `mode` 'upper' | 'lower' | 'title', required
        - object
          - `kind` 'math', required
          - `field` string, required: Target field to write
          - `source` string: Source field (defaults to `field`)
          - `op` 'abs' | 'negate' | 'round2', required
  - `alertConfig` object
    - `conditions` ConditionGroup, required
      - `logic` 'and' | 'or', required
      - `conditions` union[], required
        - union
          - object
            - `field` string, required
            - `operator` string, required
            - `value` union
              - …
          - ConditionGroup (recursive)
    - `destinations` union[], required
      - union
        - object
          - `type` 'email', required
          - `recipients` string[], required
        - object
          - `type` 'slack', required
          - `webhookUrl` string, required
        - object
          - `type` 'webhook', required
          - `url` string, required
          - `headers` object
        - object
          - `type` 'sms', required
          - `phoneNumbers` string[], required
    - `cooldownMinutes` integer
  - `memoryConfig` object
    - `patternField` string
    - `learnFields` string[]
    - `overwrite` boolean: Apply a learned value over a value your bank already supplied (default: true). Set false to fill only fields your bank left empty.
  - `lookupConfig` object
    - `matchField` string, required
    - `matchMode` 'exact' | 'normalized' | 'contains', required
    - `targetField` string, required
    - `source` union
      - object
        - `kind` 'inline', required
      - object
        - `kind` 'table', required
        - `tableId` string, required
        - `matchColumnKey` string, required
        - `valueColumnKey` string, required
    - `entries` object[], required
      - `match` string, required
      - `value` string, required
    - `overwrite` boolean
  - `filterConfig` object
    - `conditions` ConditionGroup, required
      - `logic` 'and' | 'or', required
      - `conditions` union[], required
        - union
          - object
            - `field` string, required
            - `operator` string, required
            - `value` union
              - …
          - ConditionGroup (recursive)
  - `splitConfig` object
    - `conditions` ConditionGroup, required
      - `logic` 'and' | 'or', required
      - `conditions` union[], required
        - union
          - object
            - `field` string, required
            - `operator` string, required
            - `value` union
              - …
          - ConditionGroup (recursive)
    - `lines` object[], required
      - `percent` number
      - `fixedAmount` number
      - `remainder` boolean
      - `setFields` object
  - `transferMatchConfig` object
    - `windowDays` integer
    - `action` 'tag' | 'suppressBoth' | 'suppressOneLeg'
    - `matchReversals` boolean
  - `dedupeConfig` object
    - `windowDays` integer
    - `action` 'flag' | 'suppress'
  - `monitorConfig` object
    - `staleSyncHours` integer
    - `noRecordsDays` integer
    - `destinations` union[], required
      - union
        - object
          - `type` 'email', required
          - `recipients` string[], required
        - object
          - `type` 'slack', required
          - `webhookUrl` string, required
        - object
          - `type` 'webhook', required
          - `url` string, required
          - `headers` object
        - object
          - `type` 'sms', required
          - `phoneNumbers` string[], required
    - `cooldownHours` integer
  - `aiCategorizeConfig` object
    - `targetField` string
    - `taxonomy` union, required
      - object
        - `mode` 'custom', required
        - `values` string[], required
      - object
        - `mode` 'learned', required
      - object
        - `mode` 'default', required
      - object
        - `mode` 'table', required
        - `tableId` string, required
        - `columnKey` string, required
    - `confidenceThreshold` number
    - `maxPatternsPerSync` integer
  - `aiMerchantConfig` object
  - `budgetConfig` object
    - `dimension` 'category' | 'merchant' | 'account' | 'total', required
    - `dimensionValue` string
    - `metric` 'outflowSum' | 'inflowSum' | 'net' | 'count' | 'latestBalance', required
    - `window` 'mtd' | 'rolling30d' | 'rolling7d' | 'qtd', required
    - `threshold` number, required
    - `currency` string, required
    - `direction` 'above' | 'below', required
    - `destinations` union[], required
      - union
        - object
          - `type` 'email', required
          - `recipients` string[], required
        - object
          - `type` 'slack', required
          - `webhookUrl` string, required
        - object
          - `type` 'webhook', required
          - `url` string, required
          - `headers` object
        - object
          - `type` 'sms', required
          - `phoneNumbers` string[], required
    - `cooldownHours` integer
  - `recurringConfig` object
    - `priceIncreasePercent` number
    - `alertOnNewRecurring` boolean
    - `missedChargeGraceDays` number
    - `destinations` union[], required
      - union
        - object
          - `type` 'email', required
          - `recipients` string[], required
        - object
          - `type` 'slack', required
          - `webhookUrl` string, required
        - object
          - `type` 'webhook', required
          - `url` string, required
          - `headers` object
        - object
          - `type` 'sms', required
          - `phoneNumbers` string[], required
  - `feesConfig` object
    - `creepPercent` number
    - `destinations` union[], required
      - union
        - object
          - `type` 'email', required
          - `recipients` string[], required
        - object
          - `type` 'slack', required
          - `webhookUrl` string, required
        - object
          - `type` 'webhook', required
          - `url` string, required
          - `headers` object
        - object
          - `type` 'sms', required
          - `phoneNumbers` string[], required
  - `anomalyConfig` object
    - `newMerchantOverAmount` number
    - `amountSpikeSigma` number
    - `velocityCount` number
    - `velocitySum` number
    - `velocityWindowHours` number
    - `destinations` union[], required
      - union
        - object
          - `type` 'email', required
          - `recipients` string[], required
        - object
          - `type` 'slack', required
          - `webhookUrl` string, required
        - object
          - `type` 'webhook', required
          - `url` string, required
          - `headers` object
        - object
          - `type` 'sms', required
          - `phoneNumbers` string[], required
    - `maxAlertsPerDay` integer
  - `digestConfig` object
    - `cadence` 'daily' | 'weekly' | 'monthly', required
    - `hourUtc` integer
    - `sections` string[]
    - `tone` 'owner' | 'advisor' | 'team'
    - `destinations` union[], required
      - union
        - object
          - `type` 'email', required
          - `recipients` string[], required
        - object
          - `type` 'slack', required
          - `webhookUrl` string, required
        - object
          - `type` 'webhook', required
          - `url` string, required
          - `headers` object
        - object
          - `type` 'sms', required
          - `phoneNumbers` string[], required
    - `skipWhenQuiet` boolean

## Response `200`

Enrichment updated

- object
  - `success` true, required
  - `data` object, required
    - `id` string, required
    - `name` string, required
    - `emoji` string
    - `type` 'rule' | 'alert' | 'memory' | 'lookup' | 'filter' | 'split' | 'transfer_match' | 'dedupe' | 'monitor' | 'ai_categorize' | 'ai_merchant' | 'budget' | 'recurring' | 'fees' | 'anomaly' | 'digest', required
    - `enabled` boolean, required
    - `order` number, required
    - `dataType` 'transactions' | 'balances' | 'trades' | 'holdings' | 'orders' | 'loans' | 'receipts' | 'invoices' | 'documents', required
    - `feedIds` string[], required
    - `allFeeds` boolean, required
    - `ruleConfig` object
      - `rules` object[], required
        - `name` string
        - `conditions` ConditionGroup, required
          - `logic` 'and' | 'or', required
          - `conditions` union[], required
            - union
              - …
        - `action` union, required
          - object
            - `kind` 'set': Static value write (default when `kind` is absent)
            - `field` string, required: Target field to write
            - `value` union, required: Static value to set
              - …
          - object
            - `kind` 'template', required
            - `field` string, required: Target field to write
            - `template` string, required: Template with {{fieldName}} placeholders; missing fields render as ''
          - object
            - `kind` 'regexExtract', required
            - `field` string, required: Target field to write
            - `source` string, required: Source field to extract from
            - `pattern` string, required: Safe-regex-guarded pattern; the captured group is written
            - `group` integer: Capture group to write (default 1)
          - object
            - `kind` 'case', required
            - `field` string, required: Target field to write
            - `source` string: Source field (defaults to `field` — in-place recase)
            - `mode` 'upper' | 'lower' | 'title', required
          - object
            - `kind` 'math', required
            - `field` string, required: Target field to write
            - `source` string: Source field (defaults to `field`)
            - `op` 'abs' | 'negate' | 'round2', required
    - `alertConfig` object
      - `conditions` ConditionGroup, required
        - `logic` 'and' | 'or', required
        - `conditions` union[], required
          - union
            - object
              - …
            - ConditionGroup (recursive)
      - `destinations` union[], required
        - union
          - object
            - `type` 'email', required
            - `recipients` string[], required
          - object
            - `type` 'slack', required
            - `webhookUrl` string, required
          - object
            - `type` 'webhook', required
            - `url` string, required
            - `headers` object
          - object
            - `type` 'sms', required
            - `phoneNumbers` string[], required
      - `cooldownMinutes` integer
    - `memoryConfig` object
      - `patternField` string
      - `learnFields` string[]
      - `overwrite` boolean: Apply a learned value over a value your bank already supplied (default: true). Set false to fill only fields your bank left empty.
    - `lookupConfig` object
      - `matchField` string, required
      - `matchMode` 'exact' | 'normalized' | 'contains', required
      - `targetField` string, required
      - `source` union
        - object
          - `kind` 'inline', required
        - object
          - `kind` 'table', required
          - `tableId` string, required
          - `matchColumnKey` string, required
          - `valueColumnKey` string, required
      - `entries` object[], required
        - `match` string, required
        - `value` string, required
      - `overwrite` boolean
    - `filterConfig` object
      - `conditions` ConditionGroup, required
        - `logic` 'and' | 'or', required
        - `conditions` union[], required
          - union
            - object
              - …
            - ConditionGroup (recursive)
    - `splitConfig` object
      - `conditions` ConditionGroup, required
        - `logic` 'and' | 'or', required
        - `conditions` union[], required
          - union
            - object
              - …
            - ConditionGroup (recursive)
      - `lines` object[], required
        - `percent` number
        - `fixedAmount` number
        - `remainder` boolean
        - `setFields` object
    - `transferMatchConfig` object
      - `windowDays` integer
      - `action` 'tag' | 'suppressBoth' | 'suppressOneLeg'
      - `matchReversals` boolean
    - `dedupeConfig` object
      - `windowDays` integer
      - `action` 'flag' | 'suppress'
    - `monitorConfig` object
      - `staleSyncHours` integer
      - `noRecordsDays` integer
      - `destinations` union[], required
        - union
          - object
            - `type` 'email', required
            - `recipients` string[], required
          - object
            - `type` 'slack', required
            - `webhookUrl` string, required
          - object
            - `type` 'webhook', required
            - `url` string, required
            - `headers` object
          - object
            - `type` 'sms', required
            - `phoneNumbers` string[], required
      - `cooldownHours` integer
    - `aiCategorizeConfig` object
      - `targetField` string
      - `taxonomy` union, required
        - object
          - `mode` 'custom', required
          - `values` string[], required
        - object
          - `mode` 'learned', required
        - object
          - `mode` 'default', required
        - object
          - `mode` 'table', required
          - `tableId` string, required
          - `columnKey` string, required
      - `confidenceThreshold` number
      - `maxPatternsPerSync` integer
    - `aiMerchantConfig` object
    - `budgetConfig` object
      - `dimension` 'category' | 'merchant' | 'account' | 'total', required
      - `dimensionValue` string
      - `metric` 'outflowSum' | 'inflowSum' | 'net' | 'count' | 'latestBalance', required
      - `window` 'mtd' | 'rolling30d' | 'rolling7d' | 'qtd', required
      - `threshold` number, required
      - `currency` string, required
      - `direction` 'above' | 'below', required
      - `destinations` union[], required
        - union
          - object
            - `type` 'email', required
            - `recipients` string[], required
          - object
            - `type` 'slack', required
            - `webhookUrl` string, required
          - object
            - `type` 'webhook', required
            - `url` string, required
            - `headers` object
          - object
            - `type` 'sms', required
            - `phoneNumbers` string[], required
      - `cooldownHours` integer
    - `recurringConfig` object
      - `priceIncreasePercent` number
      - `alertOnNewRecurring` boolean
      - `missedChargeGraceDays` number
      - `destinations` union[], required
        - union
          - object
            - `type` 'email', required
            - `recipients` string[], required
          - object
            - `type` 'slack', required
            - `webhookUrl` string, required
          - object
            - `type` 'webhook', required
            - `url` string, required
            - `headers` object
          - object
            - `type` 'sms', required
            - `phoneNumbers` string[], required
    - `feesConfig` object
      - `creepPercent` number
      - `destinations` union[], required
        - union
          - object
            - `type` 'email', required
            - `recipients` string[], required
          - object
            - `type` 'slack', required
            - `webhookUrl` string, required
          - object
            - `type` 'webhook', required
            - `url` string, required
            - `headers` object
          - object
            - `type` 'sms', required
            - `phoneNumbers` string[], required
    - `anomalyConfig` object
      - `newMerchantOverAmount` number
      - `amountSpikeSigma` number
      - `velocityCount` number
      - `velocitySum` number
      - `velocityWindowHours` number
      - `destinations` union[], required
        - union
          - object
            - `type` 'email', required
            - `recipients` string[], required
          - object
            - `type` 'slack', required
            - `webhookUrl` string, required
          - object
            - `type` 'webhook', required
            - `url` string, required
            - `headers` object
          - object
            - `type` 'sms', required
            - `phoneNumbers` string[], required
      - `maxAlertsPerDay` integer
    - `digestConfig` object
      - `cadence` 'daily' | 'weekly' | 'monthly', required
      - `hourUtc` integer
      - `sections` string[]
      - `tone` 'owner' | 'advisor' | 'team'
      - `destinations` union[], required
        - union
          - object
            - `type` 'email', required
            - `recipients` string[], required
          - object
            - `type` 'slack', required
            - `webhookUrl` string, required
          - object
            - `type` 'webhook', required
            - `url` string, required
            - `headers` object
          - object
            - `type` 'sms', required
            - `phoneNumbers` string[], required
      - `skipWhenQuiet` boolean
    - `createdAt` string, required
    - `updatedAt` string, required
    - `createdBy` string, required

## Other responses

- `401`: Unauthorized
- `404`: Not found
- `422`: Validation error

---

[API](https://skmtc.dev/banksync/apis/banksync-api.md) · [All operations](https://skmtc.dev/banksync/apis/banksync-api/llms.txt) · [OpenAPI document](https://skmtc.dev/banksync/apis/banksync-api/revisions/94465f5ee922?raw)
