Skip to content

Logo

WorldPay

Supports in this guide: Payments, Payouts

Provider website: worldpay.com


What you need to do for start processing transactions (brief summary)

  1. Choose account type
  2. Get your credentials (from WorldPay)
  3. Connect in Dashboard
  4. Send an API request

Choose account type

WorldPay can be connected in different ways (depending on your needs):

  • If you do payouts (card disbursements) -> choose Provider account
  • If you do payments (card data sent directly, H2H) -> choose H2H Merchant account

If you're not sure which one to use, confirm with your Corefy account manager.


Prerequisites: get from WorldPay

To get connected, submit a request at worldpay.com/global/solutions-contact or contact your WorldPay manager directly, and complete the account verification/underwriting they require.

Get the following values for your WorldPay project/account. The same core credentials apply to both connection types below, but are entered separately when connecting each account type in the Dashboard.

  • Username -> Corefy field username -> HTTP Basic Auth user for every WorldPay XML API request -> where to find: WorldPay merchant back-office / issued by WorldPay.
  • Merchant code -> Corefy field merchant_code -> identifies your WorldPay merchant in the paymentService XML envelope -> where to find: WorldPay merchant back-office.
  • Xml password -> Corefy field xml_password -> HTTP Basic Auth password, paired with Username -> where to find: WorldPay merchant back-office.
  • Api ID (H2H Merchant account only) -> Corefy field api_id -> the iss claim used when signing the JWT for WorldPay's 3-D Secure device-fingerprinting step (Cardinal Cruise) -> where to find: WorldPay/Cardinal onboarding.
  • Api key (H2H Merchant account only) -> Corefy field api_key -> secret used to sign that same JWT -> where to find: WorldPay/Cardinal onboarding.
  • Id organization (H2H Merchant account only) -> Corefy field org_unit_id -> the OrgUnitId sent to Cardinal during the 3-D Secure device-fingerprinting step -> where to find: WorldPay/Cardinal onboarding.

Note

WorldPay's public API reference lives at developerengine.fisglobal.com/apis/wpg - useful if you need to cross-check status codes or field limits with your account manager.


Payments processing (connect H2H Merchant account, create payment-invoice)

Connect H2H Merchant account in Corefy Dashboard

Step 1 - Open connection form

Open WorldPay in the provider directory and press Connect at WorldPay Provider Overview page in the New connection section. Choose H2H Merchant account.

Step 2 - Fill in fields and select settings

  • Username
  • Merchant code
  • Xml password
  • Api ID
  • Api key
  • Id organization
  • Test Mode -> (enable if you are using sandbox credentials)

Choose Currency, Features and Method. You can set these according to available currencies/features for your WorldPay account, but it is necessary to check details of the connection with your Corefy account manager.

Success

You have connected WorldPay H2H Merchant account!


Two backends behind one account type

This same H2H Merchant account can run on either of WorldPay's two, mutually-exclusive backends, chosen with a single toggle - not per request:

  • Common API (default) - WorldPay's main XML "Payment Service" gateway. Supports EUR, GBP, PLN, CHF. Uses the credentials listed above.
  • Raft API - WorldPay's older, US-only Vantiv/Litle "eComm" gateway, enabled by turning on RAFT API in the connection form. Only USD is supported on this backend, and it needs a different, non-overlapping set of fields instead of Api ID/Api key/Id organization: Merchant ID, SAML License, STP Bank ID, STP Terminal ID. Some operations behave differently under Raft - for example, verify and completing a pending 3-D Secure sale are not available in this mode.

Both backends are exposed through the same service-code family (payment_card_<currency>_hpp) - Corefy picks the backend automatically based on which mode your account was connected in, so your API calls don't change.


First request to Corefy API (MIN)

What it does: creates a payment-invoice.

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "service": "payment_card_eur_hpp",
      "currency": "EUR",
      "amount": 26.9,
      "gateway_options": {
        "cardgate": {
          "tokenize": ""
        }
      },
      "customer": {
        "reference_id": "cus_123"
      }
    }
  }
}

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "service": "payment_card_eur_hpp",
      "currency": "EUR",
      "amount": 32,
      "gateway_options": {
        "cardgate": {
          "tokenize": ""
        }
      },
      "customer": {
        "reference_id": "cus_123",
        "name": "John Wick",
        "email": "test@test.com",
        "phone": "445556667788",
        "date_of_birth": "2000-02-01",
        "address": {
          "full_address": "Address",
          "country": "AW",
          "region": "Region",
          "city": "City",
          "street": "Street",
          "post_code": "Postcode"
        }
      }
    }
  }
}

This connector also supports PLN and CHF (use payment_card_pln_hpp / payment_card_chf_hpp), and USD when the account runs on the Raft backend (see above). customer.address/phone/date_of_birth feed WorldPay's card address (AVS) and Cardinal 3-D Secure device-fingerprinting fields - they're optional for the API call to succeed, but omitting them can affect authorisation/3-D Secure outcomes since WorldPay has no placeholder fallback for them.


Extended request (MAX)

Why add extra fields (typical reasons): - Provide additional customer details for compliance/reconciliation - Positively influence conversion rate - Include optional fields required by your specific flow


Options

Options are configured on the Corefy side and affect how Corefy builds provider requests or processes responses.

Currently available options (3)

  • finalize_on_auth - finalizes the transaction as soon as WorldPay's authorisation response comes back, without waiting for a separate capture step.
  • method_notification_retry_delay - adds a delay before retrying the 3-D Secure device-fingerprinting "method notification" callback.
  • merchant_timezone - the timezone used to format the LocalDateTime field sent on Raft-backend requests.
finalize_on_auth

What it does: treats a successful WorldPay authorisation (AUTHORISED) as the final state of the transaction, instead of waiting for WorldPay's own CAPTURED/SETTLED event.

When to use: enable it if your flow needs the transaction to finalize immediately after authorisation.

Default: false

Allowed values: true / false

method_notification_retry_delay

What it does: adds the configured delay (in seconds) before Corefy retries the 3-D Secure device-fingerprinting method-notification step, if it didn't complete on the first attempt.

When to use: set it if you're seeing method-notification timing issues during 3-D Secure and want to give the browser step more time before a retry.

Default: not set (no retry delay)

Allowed values: any positive integer (seconds)

merchant_timezone

What it does: controls the timezone offset used to format the LocalDateTime value WorldPay's Raft backend expects on every request.

When to use: set it to match your merchant account's configured timezone if your account runs on the Raft backend (USD).

Default: "0" (UTC)

Allowed values: any valid timezone offset string


Constants (fallback fields)

This connector has no Dashboard-configurable Constants - all fields WorldPay requires must be provided in the API request (or, for card address/3-D Secure fields, are simply omitted with no fallback), there is no static replacement value Corefy substitutes on your behalf.


Payouts processing (connect Provider account, create payout-invoice)

Connect Provider account in Corefy Dashboard

Step 1 - Open connection form

Open WorldPay in the provider directory and press Connect at WorldPay Provider Overview page in the New connection section. Choose Provider account.

Step 2 - Fill in fields (provider -> Corefy)

  • Username
  • Merchant code
  • Xml password
  • Test Mode -> (enable if you are using sandbox credentials)

Success

You have connected WorldPay Provider account!


First request to Corefy API (MIN)

What it does: creates a payout-invoice.

Payout - MIN

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "service": "payment_card_gbp",
      "currency": "GBP",
      "amount": 53.87,
      "customer": {
        "reference_id": "cus_123",
        "name": "John Wick"
      },
      "fields": {
        "card_number": "4444333322221111"
      }
    }
  }
}

Payout - MAX

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "service": "payment_card_gbp",
      "currency": "GBP",
      "amount": 53.87,
      "customer": {
        "reference_id": "cus_123",
        "name": "John Wick",
        "address": {
          "country": "GB",
          "city": "London",
          "street": "10 Downing Street"
        }
      },
      "fields": {
        "card_number": "4444333322221111"
      }
    }
  }
}

This connector also supports EUR, PLN, and CHF for payouts (use payment_card_eur / payment_card_pln / payment_card_chf) - USD is not available for payouts, it's only reachable through the Raft backend on the H2H Merchant account above. fields.card_number is the only field this flow actually requires; card expiry and cardholder name are taken from the recipient's stored card/token context when available, falling back to customer.name for the cardholder name if a card token isn't used - always send a real customer.name here rather than a placeholder, since it can end up on the card statement.


Extended request (MAX)

Why add extra fields (typical reasons): - Provide additional customer details for compliance/reconciliation - Positively influence conversion rate - Include optional fields required by your specific flow


Constants (fallback fields)

This connector has no Dashboard-configurable Constants for payouts - there is no static replacement value Corefy substitutes on your behalf.


Additional info

H2H Merchant account:

  1. Common vs Raft backend. These are two entirely different WorldPay APIs (XML "Payment Service" vs. JSON Vantiv/Litle) selected by one toggle on the account, not per request - see the callout above. If you need USD, your account must be connected with RAFT API enabled and the Raft-specific fields filled in; the Common-API fields still exist on the form but aren't used in that mode.

  2. 3-D Secure (Common backend). Card sales that require 3-D Secure go through WorldPay's Cardinal Cruise device-fingerprinting flow (collect -> render -> method notification -> redirect -> challenge) before the sale completes; this is handled by Corefy automatically using the Api ID/Api key/Id organization credentials - no separate action is needed on your side beyond supplying them.

  3. Digital wallets. Apple Pay and Google Pay are enabled per-connection: pick the corresponding Method when connecting the H2H Merchant account, and fill in the wallet-specific fields the form then shows (Apple Merchant ID, Apple Display Name, Apple Certificate + password for Apple Pay; GooglePay gateway merchant ID + GooglePay gateway for Google Pay). Contact your Corefy account manager to enable a wallet method for your account.

  4. Recurring/stored-credential payments. Enable Save Instant Token to have Corefy request a reusable token on the first sale, and set COF Type (cardholder-initiated vs merchant-initiated) to control how subsequent token-based charges are flagged to WorldPay.

  5. Callback routing. Callback routing is handled automatically: WorldPay calls back a notification URL Corefy generates per transaction. There's no fixed callback URL to configure in WorldPay's back-office. WorldPay callbacks don't carry a signature - if a callback doesn't report the final AUTHORISED/settled state, Corefy reconciles the payment directly with WorldPay instead of trusting the callback body.


FAQ / Troubleshooting

  • Invalid credentials / auth error -> verify Username/Merchant code/Xml password (and, for H2H, Api ID/Api key/Id organization or the Raft fields) match the selected environment (sandbox vs production) and account type
  • USD payments are rejected -> USD is only available on the H2H Merchant account with RAFT API enabled and the Raft-specific fields filled in - it isn't available on the Common backend or for payouts
  • 3-D Secure step isn't completing -> confirm Api ID/Api key/Id organization are correct; these drive the Cardinal Cruise device-fingerprinting step
  • Not sure which account type to use? -> ask your Corefy account manager

Question

Still looking for help connecting your WorldPay account? Please contact our support team!