WordPress Plugins
Free Tools
Claude Skills
Pricing Blog Switch to Royal Plugin Graveyard Support My Account Cart
Support / FormForge / PayPal Integration

PayPal Integration: Setup and TroubleshootingPRO

Accept PayPal payments on any FormForge Pro form. This page walks through creating your PayPal Developer app, pasting the Client ID and Client Secret into FormForge, testing end-to-end in Sandbox before going Live, and diagnosing the four most common failures. No webhook or IPN setup required, so the whole thing takes about 15 minutes if you already have a PayPal Business account.

Shortest path to a working PayPal integration

Sign in at developer.paypal.com, create an App under Sandbox, copy its Client ID and Client Secret. In WordPress: FormForge > Integrations, expand the PayPal card, toggle Sandbox Mode on, paste the credentials into the Sandbox Credentials fields, toggle Enable PayPal on, save. Add a Product or Total field to a form so there’s an amount to charge, embed the form on a page, test with a sandbox buyer account. When it all works, repeat with Live credentials and flip Sandbox Mode off.

How the PayPal integration works

FormForge Pro uses PayPal’s v2 Orders API to handle payments synchronously during form submission. The sequence:

  1. Visitor fills your form, which includes a PayPal payment button rendered by PayPal’s official JavaScript SDK.
  2. Visitor clicks the PayPal button. FormForge fires a server-to-server call to PayPal’s /v2/checkout/orders endpoint to create an order with the form’s amount, and returns the PayPal order ID to the visitor’s browser.
  3. PayPal opens its familiar popup asking the visitor to sign in and approve the payment.
  4. On approval, FormForge fires another server-to-server call to PayPal’s /v2/checkout/orders/{orderID}/capture endpoint to actually capture the funds.
  5. PayPal returns a COMPLETED status with a transaction ID. FormForge stores that on the form entry and saves the submission.

The whole sequence completes before the form’s success message fires. There’s no webhook to configure, no IPN listener, no delay between payment and entry save. Payments either succeed cleanly or fail with a clear error.

This is different from older PayPal integrations

Legacy PayPal Standard integrations relied on IPN (Instant Payment Notification) or webhooks to notify WordPress asynchronously that a payment completed. FormForge Pro uses the newer v2 Orders API, which is synchronous, so nothing needs to be configured on the PayPal side beyond your app credentials. This is intentional: fewer moving parts to break.

Set up a PayPal Developer app

Sign in to PayPal Developer

Go to developer.paypal.com and sign in with your PayPal business account. Personal PayPal accounts don’t work; you need Business. If you don’t have one yet, sign up at PayPal.com first and complete the business verification.

Open Apps & Credentials

In the Developer Dashboard sidebar, click Apps & Credentials. You’ll see two tabs at the top: Sandbox and Live. Start on the Sandbox tab so you can test without real money.

Create a new app

Click Create App. Give it a name (something like “Your Site Name Forms”). If PayPal asks for an app type, pick the option for accepting payments for your own business (currently labeled Merchant, though PayPal occasionally reorganizes this UI). PayPal generates a Client ID and Secret for the app.

Copy the Client ID and Client Secret

On the app’s detail page, you’ll see Client ID (visible by default) and Secret (click Show to reveal). Copy both values into a scratch pad; you’ll paste them into FormForge next.

Also create a sandbox buyer account (for testing)

Still in the Sandbox tab of the Developer Dashboard, go to Sandbox > Accounts. PayPal typically pre-populates one or two sandbox accounts (a fake Business seller and a fake Personal buyer) when you first visit this page; if you don’t see them, click Create Account and make a Personal (buyer) account. Copy the buyer account’s email address and password. You’ll use these to complete PayPal payments during testing, with no real money involved.

Repeat for Live when you’re ready

Once end-to-end testing succeeds in Sandbox, switch to the Live tab of Apps & Credentials and create a Live app the same way. Live apps produce Live Client ID and Secret values, which run real payments. Save those for the FormForge Live Credentials fields.

Paste credentials into FormForge

Go to FormForge > Integrations

In the WordPress admin sidebar, expand FormForge and click Integrations. You’ll see a list of payment gateway cards including PayPal.

Open the PayPal card

Click the PayPal card to expand its settings. The status pill in the header reads Not Connected until credentials are saved.

Toggle Enable PayPal on

The first toggle in the settings. Without this, the PayPal button won’t appear on any form regardless of what else is configured.

Toggle Sandbox Mode based on which credentials you’re using

Sandbox Mode ON means FormForge uses your Sandbox Credentials fields. Sandbox Mode OFF means it uses Live Credentials. Match this toggle to the environment your credentials came from; a Live app’s credentials will fail authentication if Sandbox Mode is on.

Paste Client ID and Client Secret into the correct pair of fields

Two credential blocks appear below the toggles: Sandbox Credentials and Live Credentials. Paste the values from your PayPal Developer app into the matching block. You can fill both blocks in one save; the Sandbox Mode toggle decides which pair is active.

Save settings

Click Save Changes at the bottom of the page. The status pill should flip from Not Connected to Connected. If it stays Not Connected, at least one credential field is empty or contains extra whitespace; re-paste and save again.

Add PayPal to a form

PayPal only renders on forms that have an amount to charge. FormForge derives the amount from Product fields and Total fields in the Pricing section of the field palette.

Open the form in the builder

Go to FormForge > All Forms, click the form name.

Add a Product field (or several)

From the field palette’s Pricing section, drag Product onto the canvas. Give it a name and price. Product fields can be single-choice or multi-select depending on how you want visitors to pick options.

Optionally add a Total field

The Total field displays the running sum of every Product field on the form. FormForge calculates the total server-side even without a visible Total field, but showing it reassures visitors of the amount they’re about to be charged before they click the PayPal button.

Turn on “Enable payments for this form”

In the Form Settings panel on the right side of the builder, click the Integrations tab. Under the Payment Collection block at the top, check Enable payments for this form. Without this, the PayPal button won’t appear on the form even if the integration is fully configured. This is separate from the global PayPal enable toggle in FormForge > Integrations and needs to be flipped per form.

Save the form and embed on a page

Click Save Form at the top right of the builder. Embed the form via its shortcode or Gutenberg block on any page.

Test the PayPal button appears

View the embedded form. Below the last field, the PayPal button should render (a rounded rectangle with the PayPal logo). If Sandbox Mode is on, a small “Sandbox mode - no real charges” notice appears below the button. If the button doesn’t render, see the troubleshooting section below.

Currency and environment modes

Currency (USD in the current release)

The PayPal JavaScript SDK loads with the currency parameter fixed to USD, so the PayPal checkout window presents amounts in USD regardless of the visitor’s location. If your PayPal account and business operate in USD, this is exactly what you want. If your business operates in EUR, GBP, CAD, AUD, or another currency, PayPal converts the amount to USD at checkout using its own conversion rate, and settles the funds into your account in your local currency after subtracting a conversion fee.

Native multi-currency support (the SDK loads with your configured currency instead of USD) is on the roadmap for a future release. If this is a blocker for you, contact support so we can prioritize.

Sandbox vs. Live

The two modes exist so you can test the full flow end-to-end without moving real money. Configure both credential pairs (Sandbox and Live) up front, then flip the Sandbox Mode toggle to switch between them.

Mode What happens When to use
Sandbox Mode on FormForge hits api-m.sandbox.paypal.com with your Sandbox Client ID / Secret. Sandbox buyer accounts pay with fake money. The frontend shows a “Sandbox mode - no real charges” notice below the PayPal button. Every time you’re testing: initial setup, before a launch, after upgrading FormForge, after changing form pricing, before publishing a new payment form.
Sandbox Mode off FormForge hits api-m.paypal.com with your Live Client ID / Secret. Real PayPal accounts pay with real money. No sandbox notice on the frontend. Once the Sandbox test flow works end-to-end. Flip this toggle and re-test with a small real payment (a few dollars to a trusted email) before opening the form to your visitors.

Troubleshooting the four common failures

1. Status stays “Not Connected” after saving credentials

The Connected pill updates as soon as both Client ID and Client Secret are filled in for the active mode (Sandbox Mode determines which credential pair is active). Two things typically block it: (1) the credentials belong to the wrong environment for the current toggle, so Live credentials sit in the Live Credentials fields but Sandbox Mode is on, meaning FormForge reads the empty Sandbox Credentials and reports Not Connected. Match the toggle to the credential source and save. (2) One field of the active pair is empty. Confirm both Client ID and Client Secret for the active mode are filled and hit Save Changes again.

2. “Could not connect to PayPal” error on submit

This fires when FormForge’s server-side call to PayPal’s OAuth token endpoint (/v1/oauth2/token) fails to return an access token. Four common causes:

3. PayPal button doesn’t appear on the form

Four checks in order:

4. Payment appears in PayPal but form entry didn’t save

Very rare. FormForge’s capture step returns before the entry saves, so a successful PayPal capture without an entry means the entry-save step failed after payment. Check FormForge > Entries; you might be filtering by the wrong form. If truly missing, check wp-content/debug.log for entries during that timeframe. Refund the visitor from your PayPal dashboard and contact support with the transaction ID and timestamp. See also Submissions Not Saving for the general debug flow.

Still stuck after all four checks?

Gather: (a) whether Sandbox Mode is on, (b) whether Sandbox / Live Credentials are populated, (c) the Connected / Not Connected status shown in FormForge > Integrations > PayPal, (d) exact error message the visitor sees, (e) any browser console errors, (f) a test transaction ID if the payment reached PayPal. Send to support and we can dig in.

FAQ

How do I connect PayPal to FormForge Pro?

Create a PayPal Developer account at developer.paypal.com, create an App under either Sandbox or Live, and copy the App’s Client ID and Client Secret. Paste them into FormForge > Integrations > PayPal in the corresponding Sandbox or Live fields. Toggle Sandbox Mode on to use sandbox credentials for testing, or off to use live credentials for real payments. Enable the PayPal toggle. Save the page. The Not Connected status changes to Connected.

Do I need to set up PayPal webhooks or IPN?

No. FormForge Pro uses the PayPal v2 Orders API, which handles payment capture synchronously during the form submission. When the visitor approves the payment in the PayPal window, FormForge immediately captures the order and receives the transaction status back before saving the form entry. Older payment integrations relied on webhooks or IPN to notify WordPress of payment completion asynchronously; FormForge Pro doesn’t need either.

What currency does the PayPal integration support?

USD in the current release. The PayPal JavaScript SDK loads with the USD currency parameter hardcoded, so the PayPal checkout window presents amounts in USD. If your PayPal account and your customers are US-based, this is exactly what you want. If your business operates in EUR / GBP / CAD / AUD or another currency, PayPal converts to USD at checkout using PayPal’s own conversion rate. Native multi-currency support is on the roadmap for a future release; if you need it sooner, contact support so we can prioritize.

The PayPal button doesn’t appear on my form. Why?

Four things to check. (1) The form has Enable payments for this form checked in Form Settings > Integrations tab. This is the single most-missed step. (2) The form has a Product or Total field that produces a non-zero amount. (3) The PayPal integration is enabled globally AND configured. Check the Connected status in FormForge > Integrations > PayPal. (4) A JS optimizer or Content Security Policy on your site might be blocking the PayPal SDK. Open the browser console; if you see errors mentioning paypal.com/sdk/js, deactivate JS optimization for the form’s page or add paypal.com to your CSP allowlist. Full walkthrough in the troubleshooting section.

How do I test PayPal payments end-to-end without real charges?

Use Sandbox mode. In your PayPal Developer dashboard, create a Sandbox account for a fake buyer under the Sandbox > Accounts section, then copy that account’s credentials. Toggle Sandbox Mode on in FormForge > Integrations > PayPal, ensure Sandbox Credentials are populated with your app’s sandbox Client ID and Secret, and submit a test form using the sandbox buyer’s email and password when the PayPal window opens. The transaction runs against PayPal’s sandbox environment with no real money involved. Confirm success by checking FormForge > Entries plus the PayPal Developer Sandbox transaction log.

What does “Could not connect to PayPal” mean?

FormForge’s server-to-server request to PayPal’s OAuth token endpoint returned an error or no access token. Almost always a credentials issue: (1) verify Client ID and Client Secret for the current mode (Sandbox or Live), (2) confirm the credentials belong to a PayPal App that’s marked Live if Sandbox Mode is off (or Sandbox if on), (3) confirm your web server can reach api-m.paypal.com and api-m.sandbox.paypal.com (rare hosting-level firewall blocks). Copy the credentials fresh from the PayPal Developer dashboard, paste them into FormForge, and save.

What license tier includes PayPal integration?

PayPal is included at every FormForge Pro license tier. FormForge Pro ships in three tiers (Pro, Business, Agency) and PayPal is available on all of them. See FormForge pricing for the current tier lineup.

How do I refund a PayPal payment?

From the PayPal side, not FormForge. Sign in to your PayPal Business account, find the transaction in your activity log, click Refund. The refund reaches the buyer through PayPal’s standard flow. FormForge doesn’t need to know about the refund; the form entry itself is unaffected.