/** * @example * { * amount: 50, * payout_method_id: "potk_xxxxxxxxxxxxxx" * } */ export interface CreatePayoutsRequest { /** Account to pay out from, prefixed `biz_`. Provide exactly one of `account_id` or `user_id`. */ account_id?: string; /** Set to `true` to continue when the destination bank could not confirm the payout method account holder's name, or `false` to have the payout refused in that case so the account holder can correct the name or link their bank first. Omitting the field skips the warning gate — a client that cannot show the warning keeps its pre-gate behavior. */ acknowledge_bank_warning?: boolean; /** The amount to pay out in the specified currency. */ amount: number; /** The currency to pay out. Balances are held per currency and the payout draws only from the balance in this currency, so match the currency the funds arrived in — for example `cad` for an account funded by CAD transfers. When omitted, uses `usd` if that balance can cover a withdrawal, otherwise the account's only other funded currency. */ currency?: string; /** Key-value data to attach to the payout, echoed on every read and in webhook payloads. At most 50 keys, key names up to 40 characters, string values up to 500 characters. Never store secrets or regulated personal data here — webhook bodies are retained for delivery inspection. */ metadata?: Record; /** Free-form notes to attach to the payout, with a maximum of 255 characters. Omit or pass `null` for no notes. */ notes?: string | null; /** A saved card of the account, prefixed `payt_`, to charge for this payout instead of paying from the balance. Requires a `quote_token` from `POST /payouts/quotes` made with the same card and `amount`. Only for business accounts paying a saved recipient in `usd` at `standard` speed. The payout is returned under the card payment's `pay_` id until it is submitted, then `GET /payouts/{id}` returns the submitted payout. */ payment_method_id?: string; /** The saved payout method to deliver to (a potk_ identifier). */ payout_method_id: string; /** Whether the parent platform covers the payout fee instead of the account being paid out. Omit to use the platform's configured fee coverage policy; pass `false` to opt out of it. `true` is only accepted for accounts that belong to a platform, and requires the platform's policy to cover this payout method's category or a caller authorized to manage the platform's child account fees. */ platform_covers_fees?: boolean; /** The server-signed quote_token returned by POST /payouts/quotes. Send it when the ledger account's payout_quote_required is true. A business with quote enforcement on refuses a payout without it with the invalid_payout_quote error type. When provided, Whop will not commit a provider payout below the destination amount the quote showed. */ quote_token?: string; /** How fast the funds should arrive. `instant` is only accepted when the account and payout method are eligible; otherwise the payout is rejected. */ speed?: CreatePayoutsRequest.Speed; /** Payment description sent with the payout, such as an invoice number or what it pays for. Must be 5-80 printable ASCII characters (letters, digits, spaces and punctuation); Whop sends it in upper case. Not all countries and banks show it on the recipient's statement, and it is not the sender name. Without a `quote_token`, omit or pass `null` to use the default descriptor. With a `quote_token`, set this value when creating the quote; the payout request may omit it but cannot add or change it. */ statement_descriptor?: string | null; /** User to pay out from, prefixed `user_`. Provide exactly one of `account_id` or `user_id`. */ user_id?: string; } export declare namespace CreatePayoutsRequest { /** How fast the funds should arrive. `instant` is only accepted when the account and payout method are eligible; otherwise the payout is rejected. */ const Speed: { readonly Standard: "standard"; readonly Instant: "instant"; }; type Speed = (typeof Speed)[keyof typeof Speed]; }