PayWhirl integration
PayWhirl is a recurring billing platform for subscriptions, payment plans and pre-orders. Manage customers, their addresses, cards and profile answers; create and update billing plans; subscribe customers, pause, skip, cancel or reactivate subscriptions; list, create, process, mark paid or reschedule invoices and edit their line items; create charges and refunds; manage promo and gift codes; send system emails; read gateways, shipping and tax rules, widgets, account and revenue stats. Subscribing, processing an invoice and creating a charge bill the customer's card. Customer login and MultiAuth widget tokens, raw card numbers (test gateway only) and customer passwords are not exposed, and the account's SMTP username and password are not returned. Authentication is an API key and API secret from Settings & Account > Developer > API Keys, sent in the api-key and api-secret headers.
Say what should happen.
The workflow builds itself.
What you can do with PayWhirl
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Invoice, 11 operations
add_invoice_promo_codeAdd invoice promo codePOSTApplies a promo code to an unpaid invoice, lowering what the customer will be charged.create_invoiceCreate invoicePOSTCreates an upcoming invoice (charged at next_payment_attempt) or records an already paid one (paid_on) for a customer. Returns the new invoice_id.delete_invoiceDelete invoicePOSTPermanently deletes an invoice. Returns the deleted invoice.get_invoiceGet invoiceGETReturns one invoice: status, paid flag, amounts, attempts, next payment attempt, period, promo, shipping and tax, profile answers and line items.list_invoicesList invoicesGETLists invoices with their line items, filtered by customer, subscription, status or creation date. Upcoming only unless all=true. Page with after_id (max 100 per call).mark_invoice_paidMark invoice paidPOSTMarks an upcoming invoice as paid without charging any card.process_invoiceProcess invoicePOSTCHARGES an upcoming invoice now instead of at its scheduled time. A card that needs customer authentication (SCA) cannot be completed here: requires_action comes back true.remove_invoice_promo_codeRemove invoice promo codePOSTRemoves the promo code from an unpaid invoice.set_invoice_cardSet invoice cardPOSTChanges which of the customer's cards pays an upcoming invoice.set_invoice_next_payment_dateSet invoice next payment datePOSTMoves the date an upcoming invoice will be charged. With all=true it also moves every future invoice of the subscription, changing the customer's billing cycle.update_invoice_itemsUpdate invoice itemsPOSTChanges the quantity or amount of an invoice's line items; quantity 0 removes the item. body is keyed by line item ID (the items[].id of get_invoice). Returns items_updated.
Subscription, 9 operations
cancel_subscriptionCancel subscriptionPOSTCancels a subscription IMMEDIATELY (no more charges), or all of a customer's subscriptions with customer_id. Sends the Cancelled Subscription email if enabled.get_subscriptionGet subscriptionGETReturns one subscription by its ID (without customer or plan details): plan, quantity, status, trial and current period, installments left, cancellation.list_customer_subscriptionsList customer subscriptionsGETLists a customer's subscriptions with their plan included; current_period_end (Unix timestamp, UTC) tells until when service is due. Filter by status (active by default).pause_subscriptionPause subscriptionPOSTPauses an active subscription: billing stops until unpaused and the customer is emailed. Refused (422) when there is no upcoming invoice or it is paid or mid-payment.reactivate_subscriptionReactivate subscriptionPOSTReactivates a cancelled subscription so it resumes BILLING. reactivate_mode one (default) bills from now; all also charges the missed periods. Refused (422) if not cancelled.skip_subscription_cycleSkip subscription cyclePOSTSkips the next billing cycle: the upcoming invoice is marked skipped (not charged). Refused (422) when nothing can be skipped or the plan bills on specific dates.subscribe_customerSubscribe customerPOSTSubscribes a customer to a plan and starts BILLING their card on the plan's schedule (after the trial, if any). The customer needs a card on file. Returns the subscription.unpause_subscriptionUnpause subscriptionPOSTResumes a paused subscription, billing its latest invoice on the existing schedule; the customer is emailed. Refused (422) when its latest invoice cannot be edited.update_subscriptionUpdate subscriptionPOSTChanges a subscription: switch its plan, quantity, shipping address, card, installments left or trial end. Only subscription_id is required; fields left out keep their value.
Address, 5 operations
create_customer_addressCreate customer addressPOSTAdds an extra address to a customer. Returns the address with its id (usable as address_id on update_subscription).delete_customer_addressDelete customer addressDELETEPermanently deletes an extra customer address.get_customer_addressGet customer addressGETReturns one extra customer address by its ID.list_customer_addressesList customer addressesGETLists the extra addresses a customer has added (e.g. to ship to several locations), with name, phone and postal address (personal data).update_customer_addressUpdate customer addressPATCHChanges the fields you send on an extra customer address; fields left out keep their current value.
Customer, 5 operations
create_customerCreate customerPOSTCreates a customer (needed before adding a card or subscribing them). Sends the Welcome email if that template is enabled. Returns the customer with its id.delete_customerDelete customerPOSTPermanently deletes a customer and erases their personal data.get_customerGet customerGETReturns one customer (contact and billing details, personal data) by PayWhirl customer ID or by email address.list_customersList customersGETLists customers (contact and billing details, personal data), sorted by order_key. Filter by keyword in name or email; page with before_id and after_id (max 100 per call).update_customerUpdate customerPOSTChanges the fields you send on a customer; fields left out keep their current value. Also sets the default card (default_card). Returns the customer.
Gift code, 5 operations
create_gift_codeCreate gift codePOSTCreates a gift code: a balance that pays the redeeming customer's invoices (revenue given up). With send_email it is EMAILED to the recipient; else a given customer_id gets it at once.delete_gift_codeDelete gift codeDELETEPermanently deletes a gift code. Refused (422) if any of its balance has been used.get_gift_codeGet gift codeGETReturns one gift code with its remaining balance and the customer who redeemed it.list_gift_codesList gift codesGETLists gift codes: code, amount and remaining balance, sender, recipient and redeemer (names and emails), send and redeem dates.update_gift_codeUpdate gift codePATCHChanges a gift code's remaining balance and/or emails it to the recipient again (resend_email). Refused (422) above the original amount or with no recipient email.
Plan, 5 operations
create_planCreate planPOSTCreates a billing plan (amount, interval, frequency, setup fee, trial, installments). Customers are billed by it only once subscribed with subscribe_customer. Returns the plan with its id.delete_planDelete planDELETEPermanently deletes a plan and removes it from any widget. Existing subscriptions keep billing on its current rules.get_planGet planGETReturns one billing plan by its ID: amount, currency, billing interval and frequency, setup fee, trial days, installments, tax and shipping rules.list_plansList plansGETLists billing plans: amount, currency, interval and frequency, setup fee, trial, installments, tax and shipping rules. Sort with order_key; page with before_id and after_id (max 100).update_planUpdate planPOSTChanges the fields you send on a plan. The new rules apply to EVERY customer subscribed to it from their next invoice. Fields left out keep their current value. Returns the plan.
Card, 4 operations
create_cardCreate cardPOSTSaves a card to a customer from a gateway token (Stripe paymentMethodId, Braintree nonce, Authorize.net data pair, or another gateway token). Sends the New Card email if enabled.delete_cardDelete cardPOSTPermanently deletes a card from the customer's file.get_cardGet cardGETReturns one card on file: brand, funding, last 4 digits, expiry and gateway reference.list_customer_cardsList customer cardsGETLists a customer's cards on file: brand, funding, last 4 digits, expiry, gateway reference. Full card numbers are never returned.
Charge, 4 operations
create_chargeCreate chargePOSTCreates an invoice with one charge and CHARGES the customer's card now, or at schedule. amount times quantity is billed. Returns the invoice.get_chargeGet chargeGETReturns one charge (payment transaction): amount, currency, gateway reference, fees and refund state.list_chargesList chargesGETLists payment transactions (charges), most recent first, optionally for one customer: amount, currency, fees and refund state. Page with before_id/after_id (max 100).refund_chargeRefund chargePOSTREFUNDS a charge through its payment gateway, fully or partly (refund_amount). mark_only true records a refund without contacting the gateway. Returns the charge.
Promo code, 4 operations
create_promo_codeCreate promo codePOSTCreates a promo code customers can redeem at checkout (amount_off or percent_off). Returns the promo code with its id.delete_promo_codeDelete promo codePOSTPermanently deletes a promo code.get_promo_codeGet promo codeGETReturns one promo code by its ID or its code text.list_promo_codesList promo codesGETLists all promo codes: code, amount or percent off, duration, redemption limits and count, validity, plans they apply to.
Gateway, 2 operations
get_gatewayGet gatewayGETReturns one payment gateway connected to the account by its ID (name, type, error message).list_gatewaysList gatewaysGETLists the payment gateways connected to the account (name, type, error message). Gateway credentials are not returned.
Profile answer, 2 operations
list_profile_answersList profile answersGETLists a customer's answers to the account's profile questions (label and answer).set_profile_answerSet profile answerPOSTCreates or replaces a customer's answer to a profile question. Returns the customer's profile answers.
Shipping rule, 2 operations
get_shipping_ruleGet shipping ruleGETReturns one shipping rule by its ID.list_shipping_rulesList shipping rulesGETLists shipping rules (created in the dashboard): name, type, plan, price range, location and shipping price.
Tax rule, 2 operations
get_tax_ruleGet tax ruleGETReturns one tax rule by its ID.list_tax_rulesList tax rulesGETLists tax rules (created in the dashboard): name, location, tax rate and whether shipping is taxed.
Widget, 2 operations
delete_widgetDelete widgetDELETEPermanently deletes a checkout widget.list_widgetsList widgetsGETLists checkout widgets: uuid, name, type, gateway and the HTML embed snippets of the widget and its buy button.
Account, 1 operation
get_accountGet accountGETReturns the PayWhirl account behind the API key: company, contact, plan, default gateway and currency, portal settings and email settings (SMTP credentials not returned).
Account stats, 1 operation
get_account_statsGet account statsGETReturns account statistics: number of customers and invoices, and revenue today, this month and in total.
Connection, 1 operation
test_connectionTest connectionGETChecks that the API key and secret work. Returns a 'Connection successful' message.
Customer profile, 1 operation
get_customer_profileGet customer profileGETReturns a customer's full profile in one call: customer details, extra addresses and profile answers (personal data).
Email, 1 operation
send_emailSend emailPOSTSENDS one of PayWhirl's system emails to a customer now, if that email is enabled. type picks the email; send the ids it needs (see the type parameter).
Email template, 1 operation
get_email_templateGet email templateGETReturns one email template: name, subject, sender name and the full HTML template. Template IDs are the number at the end of the template's URL in the PayWhirl dashboard.
Profile question, 1 operation
list_profile_questionsList profile questionsGETLists the account's profile questions (checkout and signup form fields): name, label, type, options. Use a question's name with set_profile_answer.
Subscriber, 1 operation
list_subscribersList subscribersGETLists active and paused subscriptions with the subscriber's name, email and profile answers: one row per subscription. Filter by keyword; page with after_id/before_id (max 100).
Use PayWhirl from Claude Code, Cursor or Codex
Connect PayWhirl in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its PayWhirl operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect PayWhirl
- Create your workspace
Sign up free. Nothing to install.
- Connect PayWhirl once
Add your PayWhirl connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
PayWhirl integration FAQ
What can you do with the PayWhirl integration?
LiveContext exposes 70 operations on PayWhirl, covering invoice, subscription, address and customer.
