---
title: "Update a policy"
method: PATCH
path: "/policies/{id}"
tags: ["Policies"]
---

# Update a policy

`PATCH /policies/{id}`

## Path parameters

- `id` string, required

## Request body

- object
  - `version` integer
  - `name` string
  - `description` string
  - `capabilities` string[]
  - `counterpartyRules` object
    - `mode` 'open' | 'restricted', required
    - `allowedCounterparties` string[]
    - `createAction` 'allow' | 'block' | 'require_approval'
    - `requestPaymentDetailsAction` 'allow' | 'block' | 'require_approval'
    - `allowCreate` boolean
  - `tradingHours` object, nullable
    - `start` number, required
    - `end` number, required
    - `timezone` string, required
    - `days` 'weekdays' | 'every_day', required
  - `approvalWindowSeconds` integer

## Response `200`

The updated policy

- object
  - `success` boolean, required
  - `policy` object, required
    - `id` string, required
    - `name` string, required
    - `description` string, required
    - `capabilities` string[], required
    - `counterpartyRules` object, required
      - `mode` 'open' | 'restricted', required
      - `allowedCounterparties` string[]
      - `createAction` 'allow' | 'block' | 'require_approval'
      - `requestPaymentDetailsAction` 'allow' | 'block' | 'require_approval'
      - `allowCreate` boolean
    - `tradingHours` object
      - `start` number, required
      - `end` number, required
      - `timezone` string, required
      - `days` 'weekdays' | 'every_day', required
    - `accountRules` object[], required
      - `accountId` string, required
      - `perTxLimit` object
        - `amount` string, required
        - `asset_id` string, required
      - `dailyLimit` object
        - `amount` string, required
        - `asset_id` string, required
      - `weeklyLimit` object
        - `amount` string, required
        - `asset_id` string, required
      - `monthlyLimit` object
        - `amount` string, required
        - `asset_id` string, required
      - `approvalThreshold` object
        - `amount` string, required
        - `asset_id` string, required
      - `hourlyTxCount` number
      - `dailyTxCount` number
      - `requiredApprovals` number
      - `spendingScope` 'per_agent' | 'per_policy'
    - `policyCapabilities` object[], required
      - `id` string, required
      - `organizationId` string, required
      - `policyId` string, required
      - `capability` 'query_balance' | 'read' | 'send' | 'transfer', required
      - `accountId` string, required
      - `rules` object[], required
        - `id` string, required
        - `ruleType` 'per_transaction_amount' | 'daily_amount' | 'weekly_amount' | 'monthly_amount' | 'hourly_count' | 'daily_count', required
        - `thresholdAmount` object
          - `amount` string, required
          - `asset_id` string, required
        - `thresholdCount` number
        - `action` 'block' | 'require_approval', required
        - `requiredApprovals` number, required
        - `accountAggregationScope` 'per_account' | 'across_accounts', required
        - `actorAggregationScope` 'per_agent' | 'per_policy', required
        - `displayOrder` number, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
    - `approvalWindowSeconds` number
    - `kind` 'base' | 'override'
    - `override` object
      - `scopedAgentId` string, required
      - `derivedFromPolicyId` string, required
      - `derivedFromVersion` number, required
    - `version` number, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required

---

[API](https://skmtc.dev/catena/apis/catena-api.md) · [All operations](https://skmtc.dev/catena/apis/catena-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/catena/catena-api/revisions/f0a9c99d458d/schema)
