Create and send an invoice
Create an invoice for a customer and (by default) email the hosted payment link to them. Returns the saved invoice along with the hosted payment URL.
- Set
sendEmailtofalseif you only want to create the invoice without delivering it. You can email it later viaPOST /invoices/{invoiceId}/send. - All amounts are integer cents (
unitPriceCents,taxCents,discountCents). dueDatemust be an ISO 8601 date or date-time string.allowedPaymentTypesdefaults to["card"]. See the schema for supported values.- Card and Plaid-ACH payments are handled by the
cardandus_bank_accountmethods (Whop checkout). Use those for any flow that pulls funds from the customer’s account. - Including
bank_transferprovisions a Stripe virtual bank account dedicated to wire transfers. The response will includebankTransferInstructionswith a unique account number, routing number, and reference code (USD, EUR, GBP, JPY, or MXN). We never link out to a Stripe-hosted page — render the fields inline in your UI / email / PDF. The customer must include thereferencestring in the wire memo so Stripe can match the inbound payment to the correct invoice. - Wire fee: invoices that include
bank_transfercarry a 1% platform fee on top oftotalCents. The customer wiresbankTransferAmountCents(totalCents + bankTransferFeeCents); the merchant is credited onlytotalCents. Card and ACH rails do not include this fee. - If Stripe Customer Balance is not yet enabled on the account when
the invoice is created,
bankTransferInstructionswill benullon the create response. They self-heal — the next call toGET /invoices/{invoiceId}will lazily provision and persist the virtual receiving account.
Authorizations
API key for authentication. Get yours from Settings → Integrations
Body
1ISO 8601 date (YYYY-MM-DD) or date-time string.
Optional existing customer ID. A new customer record is created if omitted.
Extra recipients copied on the invoice email.
one_time, renewal 3-letter ISO 4217 currency code (lowercase).
x >= 0x >= 0Whether processing fees are added on top of the customer's total.
Payment rails the invoice should accept. Order is non-significant.
All values except bank_transfer are processed by Whop's hosted
checkout (card / wallet / Plaid ACH / BNPL / crypto).
bank_transfer is special: it provisions a Stripe Customer
Balance virtual receiving account dedicated to wire transfers
(USD, EUR, GBP, JPY, MXN). Customers wire totalCents plus a
1% platform fee; the merchant is credited only totalCents.
ACH pulls remain on the us_bank_account rail. We never link
out to a Stripe-hosted page.
card, apple_pay, google_pay, link, us_bank_account, sepa_debit, bacs_debit, acss_debit, au_becs_debit, cashapp, paypal, venmo, klarna, affirm, afterpay_clearpay, crypto, bank_transfer Whether to send automatic past-due reminders.
Send the hosted payment link by email immediately on create.