Skip to main content
POST
TypeScript

Authorizations

Authorization
string
header
required

An Account API key, an App API key, an account access token, an account-scoped user token, or a user OAuth token. Prepend the key or token with Bearer, for example Bearer ***************************. See Auth & API keys for how to get each one.

Headers

Idempotency-Key
string

A unique key that makes this request safe to retry. See Idempotent requests.

Maximum string length: 255
Example:

"d9105228-4a08-46b1-8b91-42fed586d383"

Api-Version-Date
string

Pins the request to a dated API version.

Example:

"2026-10-09-2"

Body

application/json

Moves credit between two Whop balances and returns a transfer. A transfer from a stablecoin-rails account settles on-chain when covered, and still returns a transfer.

amount
number
required

The amount to move, in the transfer currency. For example 25.00.

Example:

25

currency
string
required

Currency, such as usd.

Example:

"usd"

destination_id
string
required

The recipient. A user ID (user_xxx), account ID (biz_xxx), or ledger account ID (ldgr_xxx).

Example:

"user_xxxxxxxxxxxxxx"

origin_id
string
required

The account sending the funds. A user ID (user_xxx), account ID (biz_xxx), or ledger account ID (ldgr_xxx).

Example:

"biz_xxxxxxxxxxxxxx"

type
enum<string>
required

The kind of money movement.

Available options:
balance
Example:

"balance"

feed_id
string | null

The feed the transfer was initiated from. Given with feed_type, the payment receipt posts into that feed instead of a direct message.

Example:

"feed_shineclub"

feed_type
enum<string> | null

The type of the feed named by feed_id.

Available options:
dms_feed,
chat_feed,
forum_feed,
livestream_feed,
universal_post,
user,
null
Example:

"chat_feed"

idempotence_key
string | null

A unique key that makes retries safe. Retrying with the same key returns the original transfer instead of moving money twice.

Example:

"shine-refund-1042"

metadata
object | null

Custom key-value pairs attached to the transfer. Max 50 keys, 100 chars per key, 500 chars per string value.

Example:
notes
string | null

A short note describing the transfer.

Example:

"Refund for the rescheduled interior detail"

Response

money movement created

A transfer between Whop accounts or users.

amount
object | null
required

Amount credited to the recipient. Null while the transfer has not succeeded.

created_at
string<date-time>
required

When the transfer was created.

Example:

"2026-01-01T12:00:00.000Z"

destination
TransferParty · object | null
required

Business account or user receiving the transfer.

failed_at
string<date-time> | null
required

Recorded failure time. Null unless the transfer has failed.

Example:

null

failure_code
string | null
required

Machine-readable failure code. Null unless the transfer has failed.

Example:

null

failure_reason
string | null
required

Failure explanation. Null unless the transfer has failed.

Example:

null

fee
object | null
required

All applicable transfer fees, including platform markup. Null when the authoritative total is unavailable.

id
string
required

Transfer ID.

Example:

"ctt_xxxxxxxxxxxxxx"

metadata
object
required

Custom metadata attached to the transfer.

Example:
notes
string | null
required

Transfer note.

Example:

"Refund for the rescheduled interior detail"

object
enum<string>
required

The object type.

Available options:
transfer
Example:

"transfer"

origin
TransferParty · object | null
required

Business account or user sending the transfer.

status
enum<string>
required

Current transfer status.

Available options:
processing,
succeeded,
failed
Example:

"succeeded"

status_changed_at
string<date-time> | null
required

Recorded time of the current transition. Null when the historical transition time is unknown.

Example:

null

succeeded_at
string<date-time> | null
required

Recorded success time. Null when unknown.

Example:

null

tracking_url
string<uri>
required

Tracking page for the transfer. Viewing it requires sign-in and access to the transfer.

Example:

"https://whop.com/ctt_xxxxxxxxxxxxxx/"