---
title: "Create Saved Payout Method"
method: POST
path: "/payouts/methods"
tags: ["Payouts"]
---

# Create Saved Payout Method

`POST /payouts/methods`

Saves a new place an account or user can withdraw to. Sensitive details are vaulted in transit and never stored raw.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `account_id` string — The account to add the payout method for (a biz_ identifier). Provide this or user_id.
  - `destination_currency` string — Currency the supported payout method delivers payouts in.
  - `fields` object — The supported payout method's required field values, keyed by field id — list them with `GET /payouts/supported_methods?supported_payout_method_id=...`. A Basis Theory token id may be passed in place of a raw value. A validation failure returns the method's full required_fields schema alongside the error. Required whenever the account details are supplied directly.
  - `is_default` boolean — Whether to make this the account's default payout method.
  - `nickname` string — A label for the payout method, unique per destination.
  - `supported_payout_method_id` string, required — The supported payout method to save (a podst_ identifier from a previous listing).
  - `user_id` string — The user to add the payout method for (a user_ identifier). Provide this or account_id.

## Response `201`

a pre-tokenized Basis Theory value passes through unvaulted

- object
  - `account_reference` string, nullable, required — Masked identifier for the destination.
  - `bank_verification_state` 'checking' | 'verified' | 'no_data' | 'warning' | 'broken' | 'null', nullable — Lifecycle trust state: `checking` (verification still running), `verified` (bank confirmed ownership or a payout already completed to it), `no_data` (bank had nothing on file), `warning` (bank could not confirm ownership), `broken` (payouts failed with a permanent account error), `null` (never checked).
  - `created_at` string, date-time, required
  - `destination_currency` string, required
  - `estimated_arrival` object, nullable, required — Null on create. List payout methods to retrieve arrival estimates.
  - `fee_structure` object, nullable, required — Null on create. List payout methods to retrieve the configured fee terms.
  - `id` string, required — Payout method ID, usable as payout_method_id on POST /payouts.
  - `institution_name` string, nullable, required
  - `is_default` boolean, required
  - `nickname` string, nullable, required — User-defined label for the payout method.
  - `object` 'payout_method', required
  - `payer_name` string, nullable, required
  - `quote` object, nullable, required — Always null on create.
  - `status` 'created' | 'active' | 'broken', required
  - `supported_payout_method` object, nullable, required
    - `delivery_type` 'cash_pickup' | 'bank_deposit' | 'home_delivery' | 'mobile_wallet' | 'masspay_card' | 'paper_check' | 'bill' | 'cryptocurrency' | 'unknown', required — How funds are delivered.
    - `icon_url` string, nullable, required
    - `name` string, nullable, required
    - `supports_instant_delivery` boolean, required
    - `supports_standard_delivery` boolean, required

## Other responses

- `400` — Invalid Parameters
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Resource not found

---

[API](https://skmtc.net/whop/apis/whop-api.md) · [All operations](https://skmtc.net/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/whop/whop-api/versions/db0883548bc5/schema)
