Save Card Details
Saves a card for later charges 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.) The setup runs in the background: poll Retrieve setup status for its outcome and for anything the buyer must still do, such as 3D Secure. Once it succeeds, the saved payment method arrives on the setup_intent.succeeded webhook and in List payment methods for the member.
Headers
A unique key that makes this request safe to retry. See Idempotent requests.
Request body
Example request
{
"account_id": "biz_xxxxxxxxxxxxxx",
"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"
},
"currency": "usd",
"member_id": "mber_xxxxxxxxxxxxxx",
"metadata": {
"crm_id": "C-88"
},
"payment_method": {
"card": {
"details": {
"cvc": "123",
"exp_month": 12,
"exp_year": 2031,
"number": "4242424242424242"
},
"network_transaction_id": "016153570198200"
},
"type": "card"
},
"return_url": "https://shinetime.example/billing/saved"
}Response
setup started from card details
Example response
{
"account_id": "biz_xxxxxxxxxxxxxx",
"client_secret": "sint_xxxxxxxxxxxxxx_secret_vdefault_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"created_at": "2026-01-01T12:00:00.000Z",
"id": "sint_xxxxxxxxxxxxxx",
"last_setup_error": {
"code": "enrollment_declined",
"message": "The bank declined the enrollment."
},
"member_id": "mber_xxxxxxxxxxxxxx",
"metadata": {
"customer_id": "cus_4417"
},
"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",
"return_url": "https://shinetime.example/billing/saved",
"status": "succeeded",
"updated_at": "2026-01-01T12:00:00.000Z",
"user": {
"id": "user_xxxxxxxxxxxxxx",
"name": "Dana Whitfield",
"profile_picture": {
"url": "https://ui-avatars.com/api/"
},
"username": "danawhitfield"
}
}Changes
Changed in 3 of the 74 revisions of this API.21
- ●
added the new
alipayhkenum value to the////response property for the response statusresponse-property-enum-value-added
- ●
- ●
added the new
tabbyenum value to the////response property for the response statusresponse-property-enum-value-added
This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ●
- ○
endpoint added
endpoint-added
- ○
Of the 74 revisions, 1 has no diff computed.