---
title: "Update your spend policy"
method: PUT
path: "/x402/spend-policy"
tags: ["Payments"]
---

# Update your spend policy

`PUT /x402/spend-policy`

Update your org's spend policy. Applied as a merge: only the fields you
include change, and omitted fields keep their current value, so a partial
update can't silently reset the kill-switch. Send an explicit `null` to
clear a cap. Caps are in token base units.

## Request body

- object — Merge update: only the fields you include change; omit a field to keep its current value; send `null` to clear a cap.
  - `paused` boolean
  - `max_per_payment` string, nullable
  - `max_per_day` string, nullable
  - `allowlist` string[], nullable

## Response `200`

The updated spend policy

- object
  - `success` true, required
  - `data` object, required — The payer's outbound spend policy. Returned with defaults (not paused, no caps, any on-net payee) when none is set.
    - `paused` boolean, required — Kill-switch. When true, all outbound payments are refused.
    - `max_per_payment` string, nullable, required — Per-payment cap in token base units, or null for no cap.
    - `max_per_day` string, nullable, required — Rolling-day cap in token base units, or null for no cap.
    - `allowlist` string[], nullable, required — Allowed payee org ids. `null` allows any on-net payee; `[]` denies all.

## Other responses

- `400` — Invalid request parameters
- `401` — Invalid or missing API key
- `403` — Authenticated caller lacks permission for the operation
- `429` — Rate limit exceeded

---

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