---
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, prefixed `biz_`. 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. For a U.S. bank routing-number field, a raw nine-digit value must also pass the ABA checksum. 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, prefixed `user_`. 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` (verification unavailable or bank returned no ownership data), `warning` (bank could not confirm the destination's owner), `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_clone` boolean — Whether this method is a copy of one saved on another of the payer's accounts.
  - `is_default` boolean, required
  - `linked_via_plaid` boolean — Whether the payer added this method by signing in to their bank rather than typing account details.
  - `needs_plaid_reconnect` boolean — Whether the bank sign-in behind this method has expired and must be redone before it counts as linked.
  - `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
    - `country_code` string, nullable — ISO 3166-1 alpha-3 country the destination pays out to.
    - `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_plaid` boolean — Whether the payer can link this method by signing in to their bank instead of typing account details.
    - `supports_standard_delivery` boolean, required
  - `unavailable_reason` 'destination_retired' | 'null', nullable, required — Why this method is unavailable: `destination_retired` means the payout provider stopped offering the destination. Whop may automatically remap an eligible method that was not linked through Plaid to a compatible replacement; otherwise, the account owner must re-add it. `null` means no unavailability reason is known.

## 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/revisions/6fb1c04bf255/schema)
