---
title: "Update withdrawal release settings (Sandbox)"
method: POST
path: "/money/test_withdrawal_release_controls/{rail}"
tags: ["money", "approvals", "sandbox", "customer-session"]
---

# Update withdrawal release settings (Sandbox)

`POST /money/test_withdrawal_release_controls/{rail}`

## Request

- Base URL: `https://api.stablesea.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.stablesea.com/money/test_withdrawal_release_controls/{rail}`
- Auth: none declared. Required headers: `Idempotency-Key`

Uses your business's isolated Sandbox data with your existing signed-in member permissions. Updates the supplied settings for one withdrawal rail. Durations are in seconds, from zero to 86400. Send the current revision to prevent overwriting another save. Omitted settings remain unchanged. Changing settings prevents affected unexecuted requests from proceeding. They may still appear as pending until closure is confirmed; wait for closure before submitting replacements. Requires `approval_controls_manage` in enforced mode or `permissions_manage` in legacy mode.

## Path parameters

- `rail` 'ach_withdrawal' | 'wire_withdrawal' | 'onchain_withdrawal' | 'fund_buy' | 'fund_sell', required

## Headers

- `Idempotency-Key` string, required

## Request body

- MoneyMovementsSaveWithdrawalReleaseControlInput
  - `expected_revision` string, required
  - `new_destination_cooloff_seconds` integer, nullable
  - `release_delay_seconds` integer, nullable

## Response `200`

OK

- MoneyMovementsWithdrawalReleaseControlView
  - `new_destination_cooloff_seconds` integer, required
  - `rail` 'ach_withdrawal' | 'wire_withdrawal' | 'onchain_withdrawal' | 'fund_buy' | 'fund_sell', required
  - `release_delay_seconds` integer, required
  - `revision` string, required: Opaque revision. Send it as expected_revision when saving.
  - `updated_ts` string, date-time, nullable
  - `writes_enabled` boolean, required

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `429`: Too Many Requests
- `503`: Service Unavailable
- `default`: Error response.

## Changes

- **2026-10-29** `e003c8a67b62`: 8 info
  - added the optional property `error/authorization` to the response with the `400` status
  - added the optional property `error/authorization` to the response with the `401` status
  - added the optional property `error/authorization` to the response with the `403` status
  - added the optional property `error/authorization` to the response with the `404` status
  - …4 more
- **2026-10-28** `025b2fda2a84`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/stablesea/apis/stable-sea-backend/changes/money/test_withdrawal_release_controls/:rail/post.md)

---

[API](https://skmtc.dev/stablesea/apis/stable-sea-backend.md) - [All operations](https://skmtc.dev/stablesea/apis/stable-sea-backend/llms.txt) - [OpenAPI document](https://skmtc.dev/stablesea/apis/stable-sea-backend/revisions/772c80d83658?raw)
