Skip to main content
POST
/
topups
JavaScript
import Whop from '@whop/sdk';

const client = new Whop({
  apiKey: process.env['WHOP_API_KEY'], // This is the default and can be omitted
});

const topup = await client.topups.create({
  amount: 6.9,
  company_id: 'biz_xxxxxxxxxxxxxx',
  currency: 'usd',
  payment_method_id: 'pmt_xxxxxxxxxxxxxx',
});

console.log(topup.id);
{
  "id": "pay_xxxxxxxxxxxxxx",
  "status": "draft",
  "created_at": "2023-12-01T05:00:00.401Z",
  "paid_at": "2023-12-01T05:00:00.401Z",
  "currency": "usd",
  "total": 6.9,
  "failure_message": "<string>"
}

Authorizations

Authorization
string
header
required

A company API key, company scoped JWT, app API key, or user OAuth token. You must prepend your key/token with the word 'Bearer', which will look like Bearer ***************************

Body

application/json

Parameters for CreateTopup

amount
number
required

The amount to add to the balance in the specified currency. For example, 50.00 for $50.00 USD.

Example:

6.9

company_id
string
required

The unique identifier of the company to add funds to, starting with 'biz_'.

Example:

"biz_xxxxxxxxxxxxxx"

currency
enum<string>
required

The currency for the top-up amount, such as 'usd'.

Available options:
usd,
sgd,
inr,
aud,
brl,
cad,
dkk,
eur,
nok,
gbp,
sek,
chf,
hkd,
huf,
jpy,
mxn,
myr,
pln,
czk,
nzd,
aed,
eth,
ape,
cop,
ron,
thb,
bgn,
idr,
dop,
php,
try,
krw,
twd,
vnd,
pkr,
clp,
uyu,
ars,
zar,
dzd,
tnd,
mad,
kes,
kwd,
jod,
all,
xcd,
amd,
bsd,
bhd,
bob,
bam,
khr,
crc,
xof,
egp,
etb,
gmd,
ghs,
gtq,
gyd,
ils,
jmd,
mop,
mga,
mur,
mdl,
mnt,
nad,
ngn,
mkd,
omr,
pyg,
pen,
qar,
rwf,
sar,
rsd,
lkr,
tzs,
ttd,
uzs,
rub,
btc,
cny
payment_method_id
string
required

The unique identifier of the stored payment method to charge for the top-up.

Example:

"pmt_xxxxxxxxxxxxxx"

Response

A successful response

A payment represents a completed or attempted charge for a membership. Payments track the amount, status, currency, and payment method used.

id
string
required

The unique identifier for the payment.

Example:

"pay_xxxxxxxxxxxxxx"

status
enum<string> | null
required

The current lifecycle state of this payment (e.g., 'draft', 'open', 'paid', 'void').

Available options:
draft,
open,
paid,
pending,
uncollectible,
unresolved,
void
created_at
string<date-time>
required

The datetime the payment was created.

Example:

"2023-12-01T05:00:00.401Z"

paid_at
string<date-time> | null
required

The time at which this payment was successfully collected. Null if the payment has not yet succeeded. As a Unix timestamp.

Example:

"2023-12-01T05:00:00.401Z"

currency
enum<string> | null
required

The three-letter ISO currency code for this payment (e.g., 'usd', 'eur').

Available options:
usd,
sgd,
inr,
aud,
brl,
cad,
dkk,
eur,
nok,
gbp,
sek,
chf,
hkd,
huf,
jpy,
mxn,
myr,
pln,
czk,
nzd,
aed,
eth,
ape,
cop,
ron,
thb,
bgn,
idr,
dop,
php,
try,
krw,
twd,
vnd,
pkr,
clp,
uyu,
ars,
zar,
dzd,
tnd,
mad,
kes,
kwd,
jod,
all,
xcd,
amd,
bsd,
bhd,
bob,
bam,
khr,
crc,
xof,
egp,
etb,
gmd,
ghs,
gtq,
gyd,
ils,
jmd,
mop,
mga,
mur,
mdl,
mnt,
nad,
ngn,
mkd,
omr,
pyg,
pen,
qar,
rwf,
sar,
rsd,
lkr,
tzs,
ttd,
uzs,
rub,
btc,
cny
total
number | null
required

The total to show to the creator (excluding buyer fees).

Example:

6.9

failure_message
string | null
required

If the payment failed, the reason for the failure.