Retrieve Payment
Returns one payment. Related records are ids — resolve a plan, membership, member or shipment on its own endpoint, and list this payment’s refunds, disputes or Resolution Center cases with ?payment_id=.
Authorizations
An Account API key, account-scoped JWT, App API key, or user OAuth token. Prepend the key or token with Bearer, for example Bearer ***************************.
Headers
Pins the request to a dated API version.
"2026-09-02-1"
Path Parameters
The payment to retrieve, prefixed pay_.
Response
payment retrieved
The account that received the payment, prefixed biz_.
"biz_xxxxxxxxxxxxxx"
What the account keeps: the total less Whop's fees.
True when Whop refunded the payment automatically, for example on a dispute alert.
false
The billing address the buyer entered, or null.
Why the charge was created: a first purchase, a renewal, a one-time payment, or a manual charge.
subscription_create, subscription_cycle, subscription_update, one_time, manual, subscription "subscription_create"
The checkout configuration the buyer paid through, prefixed ch_, or null.
The credential a buyer's surface presents to poll this payment and set its return URL. Only on payments created from a confirmation token, and always null in list responses — retrieve the payment for it.
"pay_xxxxxxxxxxxxxx_secret_vdefault_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
When the payment was created, as an ISO 8601 timestamp.
"2026-01-01T12:00:00.000Z"
The currency the payment settles in, lowercase ISO 4217. Every money field below is stated in it unless it says otherwise.
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, usdt, kzt, awg, whop_usd, xau "usd"
The phone number the buyer gave at checkout, when one was collected.
"+xxxxxxxxxxx"
The normalized decline reason of the most recent failed attempt, or null.
insufficient_funds, lost_card, stolen_card, expired_card, suspected_fraud, invalid_card_number, invalid_cvc, invalid_cvc_or_expiration, incorrect_pin, authentication_required, card_not_supported, currency_not_supported, duplicate_transaction, generic_decline, invalid_account, invalid_amount, processing_error, restricted_card, card_velocity_exceeded, contact_issuer, bank_declined, regulatory_blocked, transaction_not_permitted, transaction_stopped, card_type_not_supported, issuer_not_found, closed_account, issuer_unavailable, invalid_zip, invalid_expiry_month, invalid_expiry_year, invalid_expiry, invalid_transaction, cannot_authorize, pin_required, pin_try_exceeded, provider_declined, high_risk, test_mode_decline, merchant_blacklist, reenter_transaction, invalid_pin, pin_required_as, withdrawal_count_limit_exceeded, invalid_country, issuer_error, invalid_card_holder_name, no_accounts, transaction_cancelled, three_d_secure_success, three_d_secure_canceled, three_d_secure_invalid_card_number, three_d_secure_generic_error, three_d_secure_timeout, three_d_secure_failed, three_d_secure_card_not_enrolled, three_d_secure_fraud, three_d_secure_too_many_attempts, three_d_secure_rejected_by_bank, three_d_secure_reported_lost_or_stolen, blocked_by_cardholder, test_mode_test_card, try_again_later, transaction_not_allowed, bank_insufficient_funds, bank_account_not_found, bank_account_closed, bank_account_frozen, bank_invalid_routing_number, bank_non_transaction_account, bank_authorization_revoked, bank_payment_stopped, bank_not_authorized, bank_account_holder_deceased, bank_duplicate, bank_amount_error, bank_regulatory_blocked, bank_details_invalid, bank_processing_error, bank_generic_decline, sepa_invalid_iban, sepa_no_mandate, sepa_mandate_data_invalid, sepa_disputed, sepa_refused_by_customer, sepa_generic_decline "insufficient_funds"
When an issuer warned that this payment will be disputed, or null.
Why the most recent attempt failed, in plain words, or null.
For installment methods, how many payments the charge splits into.
Payment ID, prefixed pay_.
"pay_xxxxxxxxxxxxxx"
When the most recent charge attempt ran, or null.
The buyer's member record on the account, prefixed mber_. Null without the member:basic:read permission.
"mber_xxxxxxxxxxxxxx"
The membership this payment is billed against, prefixed mem_. Null for one-off purchases or without the member:basic:read permission.
"mem_xxxxxxxxxxxxxx"
Your own key-value data attached when the payment was created.
True when funds are held until the order ships and no tracking number has been added yet. Null without the shipment:basic:read permission.
false
When the next automatic retry is scheduled, or null.
When the money was collected, or null while it has not been.
"2026-01-01T12:00:00.000Z"
The instrument shaped for display: a buyer-facing name, the standard icon set, and the card's brand and last four when it was a card.
The stored payment method that was charged, prefixed payt_. Null when the method was not saved.
"payt_xxxxxxxxxxxxxx"
The kind of instrument used, for example card, apple_pay, klarna, or us_bank_account.
acss_debit, addi, affirm, afterpay_clearpay, alipay, alma, amazon_pay, apple, apple_pay, au_bank_transfer, au_becs_debit, bacs_debit, bancolombia, bancontact, bank_wire, billie, bizum, blik, boleto, bre_b, ca_bank_transfer, capchase_pay, card, card_installments_three, card_installments_six, card_installments_twelve, cashapp, claritypay, coinbase, crypto, custom, customer_balance, demo_pay, efecty, eps, eu_bank_transfer, fpx, flex_pay, gb_bank_transfer, gcash, giropay, google_pay, gopay, grabpay, id_bank_transfer, ideal, interac, kakao_pay, klarna, klarna_pay_now, konbini, kr_card, kr_market, kriya, kueski, link, mb_way, m_pesa, mercado_pago, mobilepay, modo, mondu, multibanco, naver_pay, nequi, netbanking, ng_bank, ng_bank_transfer, ng_card, ng_market, ng_ussd, ng_wallet, nz_bank_account, oxxo, p24, pago_efectivo, pse, pay_by_bank, payco, paynow, paypal, paypay, payto, pix, platform_balance, promptpay, qris, rapipago, rechnung, revolut_pay, samsung_pay, satispay, scalapay, sencillito, sepa_debit, sequra, servipag, sezzle, shop_pay, shopeepay, sofort, south_korea_market, spei, splitit, sunbit, swish, tamara, twint, upi, us_bank_account, us_bank_transfer, venmo, vipps, webpay, wechat_pay, yape, zip, coinflow, unknown "acss_debit"
How many charge attempts have failed on this payment.
0
The plan that was charged, prefixed plan_.
"plan_xxxxxxxxxxxxxx"
The product the plan belongs to, prefixed prod_. Null for a plan with no product.
"prod_xxxxxxxxxxxxxx"
The promo code applied at checkout, prefixed promo_, or null.
True when the payment is paid, not yet fully refunded, and its processor supports refunds.
false
How much has been refunded so far, as it settled — refunds convert at the rate in force when each one was issued, not the payment's original rate.
When the payment was refunded, or null.
True when the payment is open and Whop can attempt the charge again — see POST /payments/{id}/retry.
true
Whop's fraud risk score from 0 (lowest) to 100 (highest), or null when the payment was not scored.
The factors behind risk_score, grouped by category, or null.
When the funds post to the account's available balance, at midnight UTC. The ledger_account.funds_available webhook carries the same value. Null until the payment is paid, and always null in list responses — retrieve the payment for it.
The shipment fulfilling this payment, prefixed ship_. Null when nothing ships or without the shipment:basic:read permission.
The shipping address for physical goods, or null.
The lifecycle state of the charge: open while collection is outstanding, paid once the money moved, pending while a settlement rail clears, void/uncollectible when it ended without collecting.
draft, open, authorized, paid, pending, uncollectible, unresolved, void "draft"
The dashboard's finer-grained reading of the payment, folding in refunds, disputes and Resolution Center cases.
succeeded, requires_capture, pending, failed, past_due, canceled, price_too_low, uncollectible, refunded, auto_refunded, partially_refunded, dispute_warning, dispute_needs_response, dispute_warning_needs_response, resolution_needs_response, dispute_under_review, dispute_warning_under_review, resolution_under_review, dispute_won, dispute_warning_closed, resolution_won, dispute_lost, dispute_closed, resolution_lost, drafted, incomplete, unresolved, open_dispute, open_resolution "succeeded"
The price before discounts, tax and fees.
The sales tax or VAT collected. Null when no tax applied.
Whether tax_amount was added on top of the price (exclusive) or was already inside it (inclusive).
exclusive, inclusive, unspecified, unable_to_collect "exclusive"
How much of the collected tax has been returned to the buyer so far. Zero when the payment carried no tax, or when nothing has been refunded.
True when the buyer completed 3D Secure for this payment.
false
The account-facing total: the price after discounts, plus any tax added on top. Excludes buyer fees, which the buyer pays above this amount — so this is not necessarily what the buyer's statement shows.
When the payment last changed, as an ISO 8601 timestamp.
"2026-01-01T12:00:00.000Z"
The total converted to USD at the time of the charge, for reporting across currencies. Excludes the adaptive pricing FX markup, which the account does not keep.
The buyer. Null when the payment belongs to a company buyer rather than a user.
The issuer's address and security code check results, or null when the processor returned none.
True when the payment is open on a past-due membership and its processor supports voiding — see POST /payments/{id}/void.
false

