Skip to content

Logo

UniversePay

Supports in this guide: Payments, Payouts

Provider website: universepay.eu


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

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

Choose account type

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

  • If you do H2H card payments (card data sent directly) -> choose H2H Merchant account
  • If you do card payments via a hosted page, or payouts -> choose Provider account

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


Prerequisites: get from UniversePay

Contact your UniversePay account manager (via your account's back-office) to get your account verified and receive the following credentials.

For H2H Merchant account:

  • Shop ID -> Corefy field shop_id.
  • Public Key -> Corefy field public_key.
  • Secret Key -> Corefy field secret_key -> used to sign every request.
  • 3DS Mode -> Corefy field three_ds_mode -> Simple or Advanced - ask your account manager which one your account is set up for; defaults to Advanced if not set.
  • Provider URL -> Corefy field provider_url -> the gateway URL for your account; use the value provided by your UniversePay account manager.

Note

If you generate a new key pair in UniversePay's own back-office, you'll also need to update the credentials on this connection in Corefy.

For Provider account:

  • Shop ID -> Corefy field shop_id.
  • Public Key -> Corefy field public_key.
  • Secret Key -> Corefy field secret_key.
  • Provider URL -> Corefy field live_url -> optional; leave empty unless your UniversePay account manager gives you a dedicated gateway URL.

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

Connect H2H Merchant account in Corefy Dashboard

Step 1 - Open connection form

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

Step 2 - Fill in fields and select settings

  • Shop ID
  • Public Key
  • Secret Key
  • Test Mode -> (enable if you are using sandbox credentials)
  • 3DS Mode
  • Provider URL

Choose Currency / Features; check with your Corefy account manager which are enabled for your account.

Success

You have connected UniversePay 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. UniversePay may return a 3D Secure challenge redirect depending on the card and your 3DS Mode setting; non-CVV sales are supported.

Payment - MIN

POST /api/payment-invoices

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

This connector also supports USD, AZN, UAH, CZK, PLN, UZS.

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "6795502c-e27d-4d07-85e0-93245aab9a3f",
      "service": "payment_card_eur_hpp",
      "currency": "EUR",
      "amount": 10,
      "customer": {
        "reference_id": "cus_123",
        "email": "johnsmith@gmail.com",
        "address": {
          "country": "FR",
          "region": "IDF",
          "city": "Paris",
          "full_address": "1 Main street",
          "post_code": "75000"
        }
      }
    }
  }
}

Important

customer and address fields are not sent to UniversePay at all unless the send_customer_data option below is enabled on your connection. With it off, UniversePay only receives the card and payment details - sending customer in your request has no effect.


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

  • ignore_callback -> optional, boolean - for cascading to work correctly, excludes finalizing the payment from the asynchronous callback; Corefy then relies only on an active status request (reconciliation) to finalize it.
  • send_customer_data -> optional, boolean - off by default - enables sending customer address data (country/region/city/post code/address) to UniversePay at all; see the important note above.
  • remove_space_from_initials -> optional, boolean - if the cardholder name consists of two single-letter initials and a surname (e.g. "J D Smith"), removes the space between the initials before sending it to UniversePay (e.g. "JD Smith").

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 - and only when send_customer_data is enabled.

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 -> a hardcoded placeholder is used (see the important note below)

Currently available constants (constant -> Corefy API field)

  • IP -> customer's IP address
  • DESCRIPTION -> the payment's description sent to UniversePay
  • LANG -> language of UniversePay-side communication
  • EMAIL -> customer.email
  • REASON -> the reason text sent with a refund
  • COUNTRY -> customer.address.country
  • CITY -> customer.address.city
  • STATE -> customer.address.region
  • ZIP -> customer.address.post_code
  • ADDRESS -> customer.address.full_address

Important

When send_customer_data is enabled and both the request value and the matching Constant are missing, UniversePay still receives a sale - just with hardcoded placeholder values for that field (a generic city/state/country/address combination and a placeholder email), instead of a rejection. Always send real customer data when you have it.


Refunds

UniversePay supports partial refunds, but only one refund per payment (no multiple partial refunds against the same payment) on the H2H Merchant account.


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

Connect Provider account in Corefy Dashboard

Step 1 - Open connection form

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

Step 2 - Fill in fields and select settings

  • Shop ID
  • Public Key
  • Secret Key
  • Provider URL -> (optional)
  • Test Mode -> (enable if you are using sandbox credentials)

Success

You have connected UniversePay Provider account!


First request to Corefy API (MIN)

What it does: creates a payment-invoice and redirects the customer to a UniversePay-hosted page to complete a card payment.

Payment - MIN

POST /api/payment-invoices

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

This connector also supports RUB.

Note

Public sources list additional local payment methods and Apple Pay/Google Pay for this provider, but only plain card payments are confirmed in the current Corefy integration - check with your account manager if you need a specific local method.

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "6795502c-e27d-4d07-85e0-93245aab9a3f",
      "service": "payment_card_eur_hpp",
      "currency": "EUR",
      "amount": 10,
      "customer": {
        "reference_id": "cus_123",
        "name": "John Smith",
        "email": "johnsmith@gmail.com",
        "phone": "+15551234567",
        "address": {
          "country": "FR"
        }
      }
    }
  }
}

customer is entirely optional - everything is only used to prefill the hosted form, it never blocks the sale.


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)

Configured per service. Where available: LANGUAGE, FIRST_NAME, LAST_NAME, EMAIL, PHONE, COUNTRY -> matching customer fields.


Refunds

This flow supports full refunds only (no partial refunds), and only one refund per payment.


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, 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 card.

Payout - MIN (card)

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "0dde9e79-2c64-4703-adaf-93d710633401",
      "service": "payment_card_eur",
      "currency": "EUR",
      "amount": 10,
      "fields": {
        "card_number": "4111111111111111"
      }
    }
  }
}

Important

fields.card_number is required for a plain card payout.

Token-based payout

This connector also supports paying out to a card token obtained earlier via a tokenize-on-sale request (see Payments above) instead of a raw card number - use service card_token and send fields.token (the token from the earlier sale) instead of fields.card_number.

Payout - MAX (card)

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "3c6d2f8e-8a2a-4e7a-9b1a-2f6a7b9c0d1e",
      "service": "payment_card_eur",
      "currency": "EUR",
      "amount": 10,
      "customer": {
        "reference_id": "cus_123",
        "name": "John Smith",
        "email": "johnsmith@gmail.com",
        "phone": "+15551234567"
      },
      "fields": {
        "card_number": "4111111111111111"
      }
    }
  }
}

customer is entirely optional - everything is only forwarded to UniversePay as recipient details. If omitted, your own merchant profile's company name/address is sent as the sender identity instead.


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)

Configured per service. Where available: DESCRIPTION, CUSTOMER_NAME, CUSTOMER_IP, CUSTOMER_EMAIL.


Additional info

  1. Callback routing is automatic - Corefy generates the callback/return URLs per transaction, nothing to configure in UniversePay's own back-office.

FAQ / Troubleshooting

  • Sale is missing customer data on UniversePay's side -> enable send_customer_data on the H2H Merchant account connection - it's off by default
  • Invalid credentials / auth error -> verify Shop ID/Public Key/Secret Key for the selected account type and environment
  • Refund fails -> the H2H Merchant account allows one partial refund per payment; the Provider account allows one full refund per payment - neither allows more than one
  • Currency or service is not supported -> confirm allowed currencies/features in your UniversePay account and in Corefy

Question

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