Loading...

Your privacy choices

Google Analytics 4 measures site visits and Google Ads measures advertising clicks and checkout completions, only for the purposes you accept. Neither is required to buy. Necessary checkout services remain available.

Your privacy choices

Google Analytics 4 measures site visits and Google Ads measures advertising clicks and checkout completions, only for the purposes you accept. Neither is required to buy. Necessary checkout services remain available.

These optional Google services may set audience or advertising cookies after your acceptance. Analytics and advertising are separate choices. Acceptance and refusal are remembered in this browser for a fixed 180 days, without extending the period when read. You can withdraw or change your choices at any time using Privacy choices in the footer. Withdrawal removes optional first-party Google cookies and reloads the page if Google has already loaded (using session storage in this tab if persistent storage refuses the withdrawal; a blank page opens only if both stores cannot safely record the withdrawal and a stale approval remains). Checkout, external demos, videos, support and newsletter services have their own privacy information.

Publish & connect

Set up payments, deposits and subscriptions

Configure Stripe, PayPal or Razorpay, separate the quote total from the amount charged, and verify payment outcomes before going live.

Updated v10.6.773 min read
On this page
Where to find it

Edit a form → Form settings → Payment

Before you start

Use the supported gateway account and credentials for your edition. Test on an HTTPS site reachable by the provider. First confirm that the quote calculation is correct without taking a live payment.

Stripe payment settings with API fields maskedOpen full-size screenshot
Stripe options are expanded for illustration. Enter matching credentials and test the amount before enabling live payments. Screenshots use the English plugin interface; translated labels can differ.

Step-by-step instructions

  1. Open Payment and enable the intended gateway. For Stripe, enter the publishable and secret keys from the same test account/mode. For Razorpay, use its own Key ID and secret, never Stripe keys.

  2. For PayPal, enter the account details and review IPN/payment-verification options. Follow the callback URL displayed by your installation when IPN is enabled.

  3. Choose full payment, a percentage or a fixed amount where available. Configure the payment amount in the gateway settings; a deposit row in Summary is a presentation setting and must agree with it.

  4. For recurring billing, enable Use subscription and set the frequency. Review each priced component’s Price mode so one-time and subscription amounts are assigned intentionally. Check the gateway’s supported subscription configuration.

  5. Run successful, failed and cancelled transactions in the provider’s test mode. Check the gateway dashboard and the plugin order before switching to live credentials.

Review a quote before requesting payment

In Last Step → General options, Where does the payment take place? chooses payment at the end of the form or from an email link. Enable Require admin approval before payment when a human must review the request first. This creates an unpaid order; open it in Orders and use Send payment link after reviewing the amount and recipient.

Accept a bank transfer

Open Payment → Bank transfer and enable Use Bank transfer payment. Enter the payment label, instructions, account holder, bank, IBAN and BIC/SWIFT. The payment reference accepts [ref] for the generated order reference. Check that the customer sees the instructions and receives them in the order email.

Selecting bank transfer confirms the order, not receipt of funds. Reconcile the reference and amount with the bank transaction before treating it as paid.

Example: a 30% deposit

For a quote total of 1,000, a 30% payment should charge 300. Show the customer both the full total and the amount due now. The remaining 700 is not automatically collected merely because a deposit was displayed; establish the balance-collection workflow separately.

Check the result

Compare currency, amount and payment status in the provider dashboard with the order. An email, success screen or stored quote alone is not proof of a settled transaction. Verify the recurring schedule separately from an initial charge.

If it does not work

Check mixed test/live keys, HTTPS, currency and provider errors. For missing confirmation, inspect the configured callback/IPN and server logs. Use WooCommerce checkout settings if payment is handled after a cart handoff.