Skip to main content
Beta. Worldpay is a new gateway in ElasticFunnels. Test it with your sandbox credentials before you take live payments, and contact support if a payment fails.
Worldpay is a card merchant for your checkout. It uses Access Worldpay, Worldpay’s API for online card payments. The buyer types their card into secure fields that Worldpay hosts inside your checkout page, so the card number never reaches ElasticFunnels. Once the first payment goes through, the card is saved with Worldpay, which makes one-click upsells and subscription renewals possible.
Worldpay accounts are not self-serve. Worldpay sales set up your account and assign you an Implementation Manager, who gives you your credentials and turns on webhooks for you. Plan for that step before you build the funnel.

Before you start

You need:
  1. An Access Worldpay merchant account with Card Payments, Verified Tokens and the Checkout SDK (web) enabled. Ask your Implementation Manager to confirm all three.
  2. Your Try credentials for testing and your live credentials for real payments. Try is Worldpay’s name for its test environment, and its credentials are different from the live ones.
  3. Your Checkout ID, which loads the secure card fields.

Step 1: add the Worldpay merchant

  1. Go to Settings → Merchants → Add Merchant and choose Worldpay.
  2. Fill in the fields. Each one has a hint under it that says where to find the value.
  3. Use the Live Mode toggle to pick which set of credentials is used. With Live Mode off, the Sandbox (Try) fields are used and nothing is charged.
  4. Save.
Every field has a Sandbox (Try) twin, so you can keep both sets of credentials on one merchant and switch with the toggle.

Step 2: send Worldpay your webhook URL

Refunds, reversals and chargebacks reach your reports through Worldpay webhooks. Worldpay does not let you add a webhook yourself: your Implementation Manager sets it up. Send them the Webhook URL shown on the merchant: save the merchant, open it again, and copy the URL shown under the credential fields. Ask them to:
  • send the payment events (refunds, reversals, cancellations, chargebacks) to that URL;
  • turn on signed events (the Event-Signature header) and send you the secret, then paste it in Webhook signature secret;
  • do the same for your Try account if you test there, pointing at the same URL of your test merchant.
When the secret is set, any webhook with a missing or wrong signature is rejected.

Step 3: use the merchant on your checkout

Pick the Worldpay merchant as the domain’s or the funnel’s merchant, the same way as any card merchant. See How to set up a new merchant. The card form on your checkout shows three secure fields: card number, expiry and CVV. They are hosted by Worldpay, which keeps your checkout out of scope for handling card data (PCI SAQ-A).

What works with Worldpay


Refunds take a moment to show

Worldpay accepts a refund first and confirms it a little later. When you refund an order, ElasticFunnels sends the refund and marks it as sent. Worldpay then confirms it through the webhook. If the webhook is not set up (Step 2), the refund still happens at Worldpay, but a refund you start in the Worldpay Dashboard will not appear in your reports. A partial refund needs the order total, so it works on orders taken through ElasticFunnels. If Worldpay only allows a reversal for a payment (for example on the same day), a full refund becomes a reversal and a partial refund is refused until the payment settles.

Testing with Try

Test mode with a ?test= key does not work with Worldpay, because the card is typed into Worldpay’s own fields and ElasticFunnels never sees the number. Test with your Try credentials instead:
  1. Fill in the Sandbox (Try) fields and turn Live Mode off.
  2. Open your checkout and pay with a Worldpay test card, for example 4444 3333 2222 1111 with any future expiry date and any CVV.
  3. To test a decline, use the test cardholder names from Worldpay’s test values page.
Turn Live Mode on before you send real traffic. With Live Mode off, every payment goes to Try and nobody is charged.

Troubleshooting