Skip to content

Logo

Paysafe

It starts here

Supports in this guide: Payments, Payouts

Provider website: paysafe.com


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

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

Choose account type

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

  • If you do H2H card payments, Apple Pay, or Google Pay (card data sent directly) -> choose H2H Merchant account
  • If you do Skrill, Neteller, or paysafecard redirect payments, or payouts -> choose Provider account

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


Prerequisites: get from Paysafe

Submit a connection request at paysafe.com/contact or contact your Paysafe account manager directly to get your account verified and receive the following credentials.

For H2H Merchant account:

  • API Username -> Corefy field api_user_name.
  • API Password -> Corefy field api_password.
  • Account ID -> Corefy field account_id.
  • Secret Key -> Corefy field secret_key.
  • Data Generator Secret Key (optional) -> Corefy field data_generator_secret_key -> only needed if you plan to enable the generate_data_for_customer Option below.
  • Google Pay Gateway MID (optional, Google Pay only) -> Corefy field google_pay_gateway_mid.

For Provider account:

  • API Username -> Corefy field api_user_name.
  • API Password -> Corefy field api_password.
  • Account ID -> Corefy field account_id.
  • Currency -> Corefy field currency -> single-select.

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

Connect H2H Merchant account in Corefy Dashboard

Step 1 - Open connection form

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

Step 2 - Fill in fields and select settings

  • API Username
  • API Password
  • Account ID
  • Secret Key
  • Save Instant Token
  • Data Generator Secret Key (optional)
  • Google Pay Gateway MID (optional)
  • Test Mode -> (enable if you are using sandbox credentials)

Choose Currency and Features. CHF, USD, EUR, GBP, DKK, AUD, and CAD are confirmed; check with your Corefy account manager which are enabled for your account. If you connect Apple Pay or Google Pay, select the matching feature too.

Success

You have connected Paysafe H2H Merchant account!


First request to Corefy API (MIN)

What it does: creates a payment-invoice; card data itself is collected and submitted separately by Corefy's checkout/SDK layer, not as part of this request.

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "8e3dbbb0-17af-4c9a-bedb-93bdac6900a2",
      "service": "payment_card_gbp_hpp",
      "currency": "GBP",
      "amount": 10
    }
  }
}

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "6795502c-e27d-4d07-85e0-93245aab9a3f",
      "service": "payment_card_gbp_hpp",
      "currency": "GBP",
      "amount": 10,
      "customer": {
        "reference_id": "cus_123",
        "name": "John Smith",
        "email": "johnsmith@gmail.com",
        "phone": "+15551234567",
        "address": {
          "full_address": "1 Main street",
          "country": "GB",
          "region": "London",
          "city": "London",
          "street": "1 Main street",
          "post_code": "SW1A 1AA"
        }
      }
    }
  }
}

customer is optional - anything you omit falls back to the Constants below. This connector also supports Apple Pay and Google Pay on this same account (no separate service code needed).


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. Card, Apple Pay, and Google Pay each have their own copy of these Options.

Currently available options (6 on card; 5 on Apple Pay/Google Pay)

  • allow_finalize_on_auth - treats a completed 3D Secure authentication as a final success, without waiting for settlement.
  • allow_auth_finalize_with_token_save (card only) - lets allow_finalize_on_auth still apply even when Save Instant Token is enabled.
  • generate_data_for_customer - requires customer.name/customer.email, and replaces unconvincing customer address data with provider-validated data.
  • generate_region_for_customer - requires a resolvable city/country (and region, where mandatory) before the sale is sent.
  • send_payment_facilitator - adds payment-facilitator/sub-merchant reporting data to the request.
  • requestor_challenge_preference - sets your 3D Secure challenge preference.
allow_finalize_on_auth

What it does: by default, Corefy waits for the actual charge/settlement confirmation before marking a 3D-Secure-authenticated sale as successful. Enabling this marks it successful as soon as the 3DS authentication itself completes.

When to use: enable it if you want the perceived completion to happen right after authentication rather than after settlement.

Default: false

Allowed values: true / false

allow_auth_finalize_with_token_save

What it does: when Save Instant Token is enabled on the account, allow_finalize_on_auth is suppressed by default (since token-saving needs the full settlement result). Enabling this option lets allow_finalize_on_auth apply anyway.

When to use: enable it only together with allow_finalize_on_auth, if you're also saving instant tokens and still want early finalization.

Default: false

Allowed values: true / false

generate_data_for_customer

What it does: requires customer.name and customer.email to be present at all - the sale is rejected outright if either is missing. Paysafe then checks whether the submitted customer data looks genuine; if it doesn't, Corefy calls an external data-generation service (using your Data Generator Secret Key) to get replacement, provider-validated address data. If that key isn't configured, or the generated data still doesn't validate, the sale fails rather than being sent with unconvincing data.

When to use: enable it if Paysafe or your account manager asked for this extra validation layer - typically for accounts with stricter risk requirements.

Default: false

Allowed values: true / false

generate_region_for_customer

What it does: requires a resolvable customer.address.city and customer.address.country (from the request, Constants, or data generated by generate_data_for_customer) - plus a resolvable region/state for countries where Paysafe requires one. The sale fails if these can't be resolved.

When to use: enable it together with generate_data_for_customer if your account needs guaranteed address completeness.

Default: false

Allowed values: true / false

send_payment_facilitator

What it does: adds a payment-facilitator/sub-merchant data block to the request, identifying the underlying sub-merchant on whose behalf you're processing.

When to use: enable it if you operate as a payment facilitator/marketplace and Paysafe requires sub-merchant reporting for your account.

Default: false

Allowed values: true / false

requestor_challenge_preference

What it does: sets the 3D Secure 2 "requestor challenge preference" sent with the authentication request.

When to use: set it to match your risk/UX strategy for 3DS challenges.

Default: not set (Paysafe's own default applies)

Allowed values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATED, DATA_SHARE_ONLY


Constants (fallback fields)

Constants are static values that Corefy can send to the provider instead of dynamic data from your API request, when those fields are missing in the request. Card, Apple Pay, and Google Pay share the same set.

Priority (predictable rule): 1. If a value is present in the request -> Corefy uses the request value 2. Else if the constant is set -> Corefy uses the constant 3. Else -> provider may reject the request or apply its defaults (depends on provider)

Currently available constants (constant -> Corefy API field)

  • FIRST_NAME -> customer.name (first part)
  • LAST_NAME -> customer.name (second part)
  • PHONE -> customer.phone
  • EMAIL -> customer.email
  • COUNTRY -> customer.address.country
  • REGION -> customer.address.region
  • CITY -> customer.address.city
  • POST_CODE -> customer.address.post_code
  • STREET -> customer.address.street
  • BROWSER_IP -> no direct request field - browser/client IP fallback
  • CARD_HOLDER -> no direct request field - cardholder name fallback
  • DESCRIPTOR -> no direct request field - the statement descriptor shown to the customer
  • MERCHANT_PROFILE_WEBSITE_URL -> no direct request field - your website URL fallback
  • FUNDING_TRANSACTION_TYPE -> no direct request field - see Paysafe's own documentation for when this applies (only relevant for merchants registered under specific MCCs)

Payments processing (connect Provider account, create payment-invoice)

Connect Provider account in Corefy Dashboard

Step 1 - Open connection form

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

Step 2 - Fill in fields and select settings

  • API Username
  • API Password
  • Account ID
  • Currency
  • Test Mode -> (enable if you are using sandbox credentials)

Success

You have connected Paysafe Provider account!


First request to Corefy API (MIN)

What it does: creates a payment-invoice and returns a redirect link to Skrill, Neteller, or paysafecard.

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "8e3dbbb0-17af-4c9a-bedb-93bdac6900a2",
      "service": "skrill_eur_hpp",
      "currency": "EUR",
      "amount": 10,
      "customer": {
        "reference_id": "cus_123",
        "email": "johnsmith@gmail.com"
      }
    }
  }
}

Important

For every wallet service/currency you intend to use, you must first set the matching *_ID Constant below (e.g. SKRILL_EUR_ID for skrill_eur_hpp) to the sub-account ID Paysafe issued you for that wallet and currency - this isn't an optional fallback, the payment fails outright without it. customer.email is the customer's Skrill/Neteller/paysafecard login email and is otherwise optional (falls back to the EMAIL constant).

This connector also supports Neteller in USD/EUR/INR/BRL/NGN (use neteller_<ccy>_hpp), Skrill in USD (use skrill_usd_hpp), and paysafecard in EUR/USD (use paysafecard_<ccy>_hpp).


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

No Options are configured for this flow.


Constants (fallback fields)

Constants are static values that Corefy can send to the provider instead of dynamic data from your API request, when those fields are missing in the request. Available on every Payment service.

Priority (predictable rule): 1. If a value is present in the request -> Corefy uses the request value 2. Else if the constant is set -> Corefy uses the constant 3. Else -> provider may reject the request or apply its defaults (depends on provider)

Currently available constants (constant -> Corefy API field)

  • FIRST_NAME -> customer.name (first part)
  • LAST_NAME -> customer.name (second part)
  • EMAIL -> customer.email
  • PHONE -> customer.phone
  • COUNTRY -> customer.address.country
  • REGION -> customer.address.region
  • CITY -> customer.address.city
  • STREET -> customer.address.street
  • POST_CODE -> customer.address.post_code
  • NICKNAME -> no direct request field - billing nickname fallback
  • BROWSER_IP -> no direct request field - browser/client IP fallback
  • NETELLER_USD_ID / NETELLER_EUR_ID / NETELLER_INR_ID / NETELLER_BRL_ID / NETELLER_NGN_ID -> required merchant sub-account ID per Neteller currency.
  • SKRILL_EUR_ID / SKRILL_USD_ID -> required merchant sub-account ID per Skrill currency.
  • PAYSAFECARD_EUR_ID / PAYSAFECARD_USD_ID -> required merchant sub-account ID per paysafecard currency.

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

Connect Provider account in Corefy Dashboard

Uses the same Provider account connection as Payments above - one connection covers both directions, there's nothing extra to fill in for payouts specifically.


First request to Corefy API (MIN)

What it does: creates a payout-invoice and sends funds to a Skrill or Neteller wallet, or a card.

Payout - MIN (Skrill/Neteller)

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "0dde9e79-2c64-4703-adaf-93d710633401",
      "service": "skrill_eur",
      "currency": "EUR",
      "amount": 10,
      "customer": {
        "reference_id": "cus_123"
      },
      "fields": {
        "email": "recipient@example.com"
      }
    }
  }
}

Payout - MIN (card)

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "7976b4ce-fadd-4585-baa0-6b02c65351dc",
      "service": "payment_card_eur",
      "currency": "EUR",
      "amount": 10,
      "customer": {
        "reference_id": "cus_123"
      },
      "fields": {
        "card_number": "4111111111111111"
      }
    }
  }
}

fields.email (Skrill/Neteller) is the recipient's wallet login email. fields.card_number (card) is required; the cardholder's name and expiry come from the card's previously stored data, not from fields. This connector also supports Neteller in USD/INR/AZN/UZS/PKR/BRL, Skrill in USD/CAD, and card payouts in USD.


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

No Options or Constants are configured for this flow.


Additional info

  1. Callback routing. For H2H Merchant account, callback routing is handled automatically - Corefy generates the callback URL per transaction. For Provider account (Payments and Payouts), callback routing is also automatic.

FAQ / Troubleshooting

  • Invalid credentials / auth error -> verify credentials for the selected environment and account type
  • Payment via Provider account fails immediately -> confirm the matching *_ID Constant (e.g. SKRILL_EUR_ID) is set for the service/currency you're using - it's required, not optional
  • H2H payment rejected for missing/unconvincing customer data -> if generate_data_for_customer is enabled, customer.name/customer.email are mandatory, and the rest of the address must either look genuine or be resolvable via the Data Generator
  • Currency or service is not supported -> confirm allowed currencies/features in your Paysafe account and in Corefy
  • Not sure which account type to use? -> ask your Corefy account manager

Question

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