Payments
Create Payment with Card Details
Charges a buyer for a plan from card details the caller holds itself, for integrators whose own systems are PCI compliant. Card details are accepted only on the vault host, where the card is tokenized before it reaches Whop; the official SDKs route this operation there, and raw card details sent to the regular host are refused. (Whop's own clients, which tokenize with the Basis Theory SDK, send the resulting token intent id to the regular host.) Collection runs in the background: the response is the payment as created, not its outcome — poll Retrieve status for how far it has got and what the buyer must still do, such as 3D Secure.
post/payments/direct
Headers
Idempotency-Keystring
Example:d9105228-4a08-46b1-8b91-42fed586d383
A unique key that makes this request safe to retry. See Idempotent requests.
Request body
Example request
{
"account_id": "biz_xxxxxxxxxxxxxx",
"auto_capture_after_minutes": 60,
"billing_details": {
"address": {
"city": "San Francisco",
"country": "US",
"line1": "1 Market St",
"line2": "Suite 400",
"postal_code": "94105",
"state": "CA"
},
"email": "dana@shinetime.example",
"name": "Dana Shine",
"phone": "+14155550123"
},
"member_id": "mber_xxxxxxxxxxxxxx",
"metadata": {
"order_ref": "SHINE-4417"
},
"off_session": true,
"payment_method": {
"card": {
"details": {
"cvc": "123",
"exp_month": 12,
"exp_year": 2031,
"number": "4242424242424242"
},
"network_transaction_id": "016153570198200"
},
"type": "card"
},
"plan": {
"currency": "usd",
"plan_type": "renewal",
"product": {
"global_affiliate_status": "enabled",
"visibility": "visible"
},
"visibility": "visible"
},
"plan_id": "plan_xxxxxxxxxxxxxx",
"promo_code_id": "promo_xxxxxxxxxxxxxx",
"return_url": "https://shinetime.example/checkout/done",
"setup_future_usage": "off_session",
"statement_descriptor": "WHOP*SHINETIME"
}Response
payment created from card details
Example response
{
"account_id": "biz_xxxxxxxxxxxxxx",
"amount_after_fees": {
"amount": "-2.50",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"billing_address": {
"city": "Austin",
"country": "US",
"line1": "1114 Bouldin Ave",
"line2": "Unit B",
"name": "Dana Whitfield",
"postal_code": "78704",
"state": "TX"
},
"billing_reason": "subscription_create",
"client_secret": "pay_xxxxxxxxxxxxxx_secret_vdefault_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"created_at": "2026-01-01T12:00:00.000Z",
"currency": "usd",
"customer_email": "marcus@shinetime.example",
"customer_phone": "+xxxxxxxxxxx",
"decline_code": "insufficient_funds",
"holds": [
{
"amount": {
"amount": "-2.50",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"type": "reserve"
}
],
"id": "pay_xxxxxxxxxxxxxx",
"line_items": [
{
"id": "li_xxxxxxxxxxxxxx",
"label": "Ceramic Coating Package",
"plan_id": "plan_xxxxxxxxxxxxxx",
"plan_title": "Ceramic Coating — Full Vehicle",
"product_id": "prod_xxxxxxxxxxxxxx",
"product_title": "Ceramic Coating Package",
"quantity": 1,
"subtotal": {
"amount": "-2.50",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
}
}
],
"member_id": "mber_xxxxxxxxxxxxxx",
"membership_id": "mem_xxxxxxxxxxxxxx",
"metadata": {
"order_ref": "SHINE-4417"
},
"paid_at": "2026-01-01T12:00:00.000Z",
"payment_instrument": {
"card": {
"brand": "visa",
"exp_month": 10,
"exp_year": 2031,
"issuer_identification_number": "41111111",
"last4": "4242"
},
"display_name": "Visa •••• 4242",
"icons": {
"card": {
"dark": {
"png_1x": "https://content.whop.com/payment_methods/visa/icons/card_dark_30.png",
"png_2x": "https://content.whop.com/payment_methods/visa/icons/card_dark_60.png",
"png_4x": "https://content.whop.com/payment_methods/visa/icons/card_dark_120.png",
"svg": "https://content.whop.com/payment_methods/visa/icons/card_dark.svg"
},
"light": {
"png_1x": "https://content.whop.com/payment_methods/visa/icons/card_dark_30.png",
"png_2x": "https://content.whop.com/payment_methods/visa/icons/card_dark_60.png",
"png_4x": "https://content.whop.com/payment_methods/visa/icons/card_dark_120.png",
"svg": "https://content.whop.com/payment_methods/visa/icons/card_dark.svg"
}
},
"square": {
"dark": {
"png_1x": "https://content.whop.com/payment_methods/visa/icons/card_dark_30.png",
"png_2x": "https://content.whop.com/payment_methods/visa/icons/card_dark_60.png",
"png_4x": "https://content.whop.com/payment_methods/visa/icons/card_dark_120.png",
"svg": "https://content.whop.com/payment_methods/visa/icons/card_dark.svg"
},
"light": {
"png_1x": "https://content.whop.com/payment_methods/visa/icons/card_dark_30.png",
"png_2x": "https://content.whop.com/payment_methods/visa/icons/card_dark_60.png",
"png_4x": "https://content.whop.com/payment_methods/visa/icons/card_dark_120.png",
"svg": "https://content.whop.com/payment_methods/visa/icons/card_dark.svg"
}
}
},
"payment_method_type": "card"
},
"payment_method_id": "payt_xxxxxxxxxxxxxx",
"payment_method_type": "acss_debit",
"payment_rule_matches": [
{
"action": "allow"
}
],
"plan_id": "plan_xxxxxxxxxxxxxx",
"presentment_total": {
"amount": "-2.50",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"product_id": "prod_xxxxxxxxxxxxxx",
"refunded_amount": {
"amount": "-2.50",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"retryable": true,
"shipping_address": {
"city": "Austin",
"country": "US",
"line1": "1114 Bouldin Ave",
"line2": "Unit B",
"name": "Dana Whitfield",
"postal_code": "78704",
"state": "TX"
},
"status": "draft",
"substatus": "succeeded",
"subtotal": {
"amount": "-2.50",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"tax_amount": {
"amount": "-2.50",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"tax_behavior": "exclusive",
"tax_refunded_amount": {
"amount": "-2.50",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"total": {
"amount": "-2.50",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"updated_at": "2026-01-01T12:00:00.000Z",
"usd_total": {
"amount": "-2.50",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"user": {
"id": "user_xxxxxxxxxxxxxx",
"name": "Dana Whitfield",
"profile_picture": {
"url": "https://ui-avatars.com/api/"
},
"username": "danawhitfield"
},
"verification_checks": {
"address_line1": "PASS",
"authorization_code": "A1B2C3",
"card_holder_name": "PASS",
"card_security_code": "PASS",
"zip_code": "PASS"
}
}