Payments
Whop
Let clients pay invoices through your own Whop account, with a Whop checkout link on each invoice and webhooks that mark it paid.
Coming February 2027
This feature ships in February 2027. This page describes how it will work; details can change before release.
Whop is a payment rail for creators and businesses that already sell on Whop. You connect your own Whop account to a business with an API key, and each invoice gets a Whop checkout link on its pay page. When Whop confirms the payment through a verified webhook, the invoice is marked paid. As with every rail, the money goes to your own account: we never hold it and never take a cut.
How it works
Whop is a gateway rail, like Stripe:
- You connect your Whop account by entering its API key. The key is checked before the connection is saved.
- On the pay page of an invoice that accepts Whop, the client chooses Whop.
- The pay page creates a Whop checkout link for the invoice and sends the client to it.
- The client pays on Whop.
- Whop sends a signed webhook to your connection's own webhook address. We verify the signature, store the event, process it, and mark the invoice paid.
A client coming back from Whop's page does not mark anything paid. Only the verified webhook does (or a payment you record yourself).
Whop here is a way for your clients to pay you. It is not used to pay for our Team plan, which is billed separately.
Webhooks
Whop events arrive at a webhook address that belongs to your connection: https://api.freeinvoiceautomation.com/webhooks/whop/ followed by the connection id. Your Whop account must send its events there: either you register the address in your Whop account, or it is registered for you through Whop's API when you connect.
We listen for Whop's payment succeeded, payment failed and payment refunded events, with the exact names Whop's API uses. A succeeded payment for the invoice's checkout records the payment and marks the invoice paid, or partially paid if it covered only part of the balance. A failed payment marks nothing paid. Every event is verified with your connection's webhook secret before anything else, and each event is processed only once even if Whop sends it again.
Connect Whop
Get your Whop API key
In your Whop account, create an API key for the company you want to be paid into.
Open Settings > Payment methods
Choose the business that should take Whop payments and add Whop. You are asked to sign in again, because this decides where money goes.
Enter the key
Paste the API key and, if asked, the webhook secret. Both are stored sealed and are write-only: after saving, you only ever see the last four characters.
Verify and enable
The connection is verified with a test call. Once it is active, turn Whop on as a payment method and set where it appears on the pay page.
Connections are checked every night. If your key stops working, the business shows a warning and the connection is marked as failing until you update it.
Through the API
Whop uses the same connection capabilities as every rail, with Whop's connection schema from the rails registry:
| Action | REST | Permission |
|---|---|---|
| List rails | GET /v1/rails | rails.manage |
| Create a connection | POST /v1/connections | rails.manage (fresh sign-in) |
| Update a connection | PATCH /v1/connections/{id} | rails.manage |
| Verify a connection | POST /v1/connections/{id}/verify | rails.manage |
| Delete a connection | DELETE /v1/connections/{id} | rails.manage |
| Start a checkout (pay page) | POST /v1/public/pay/{token}/checkout | pay token |
| Get payment status | GET /v1/documents/{id}/payment-status | payments.view |
The checkout route takes the Whop connection id and the amount, returns the Whop checkout link, and never marks the invoice paid:
{
"connection_id": "0193f2aa-4d5e-7f6a-8b7c-8d9e0f1a2b3c",
"amount_minor": "4900"
}Your own systems can follow Whop payments through the payment.succeeded and document.paid webhook events, the same events as Stripe payments.
What the client sees
- Whop listed as a payment method on the pay page, next to any other methods you accept.
- A redirect to Whop's own checkout for the amount due.
- After paying, a page saying the payment is being confirmed. The invoice shows paid as soon as Whop's webhook is verified.
Rules and edge cases
- Your Whop account, your money. Whop's own fees and payout rules apply to your Whop account.
- Currencies are those Whop supports.
- Refunds. The Whop rail's listed capabilities are a checkout link per invoice and webhooks. Refunding from the app is a Stripe capability; if a rail cannot refund, the API returns
rail_capability_missingand you record the refund manually after refunding in Whop. See Refunds. - Voided invoices have their payment links cancelled, so a client cannot start a new Whop checkout for them.
- Secrets are never shown again after saving and never appear in logs or errors.
Permissions
| Key | Needed for | Default roles |
|---|---|---|
rails.manage | Connecting, verifying and removing Whop | Owner, Admin |
payments.view | Seeing Whop payments | Owner, Admin, Editor, Viewer, Accountant |
Errors
| Code | When |
|---|---|
fresh_signin_required | Connecting Whop without a recent sign-in |
connection_failed | The test call with your API key failed |
rail_not_connected | The invoice offers Whop but the connection is not active |
upstream_error | Whop returned an error; try again |
webhook_signature_invalid | An incoming event failed verification and was ignored |