Skip to content

Logo

FreePayment

Flexible payment acceptance for your business

Supports in this guide: Payments

Provider website: freepayment.ru


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

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

Choose account type

FreePayment 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 redirect payments via SBP (Russian Fast Payment System, bank transfer) -> choose Provider account

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


Prerequisites: get from FreePayment

For H2H Merchant account:

  • Shop ID -> Corefy field shop_id.
  • Public Key -> Corefy field public_key.
  • Secret Key -> Corefy field secret_key.
  • API URL (optional) -> Corefy field api_url.

For Provider account:

  • Merchant ID -> Corefy field merchant_id.
  • Secret Key -> Corefy field secret_key.
  • Public Key -> Corefy field public_key.

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

Connect H2H Merchant account in Corefy Dashboard

Step 1 - Open connection form

Open FreePayment in the provider directory and press Connect at FreePayment 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
  • API URL (optional)
  • 3DS Mode -> Simple or Advanced, matching how your FreePayment merchant account is set up
  • Provider URL -> fixed to FreePayment's own endpoint

Choose Currency and Features. You can set these parameters according to available currencies and features for your FreePayment account (RUB, EUR, USD confirmed), but it is necessary to check details of the connection with your Corefy account manager.

Success

You have connected FreePayment 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_rub_hpp",
      "currency": "RUB",
      "amount": 100
    }
  }
}

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "6795502c-e27d-4d07-85e0-93245aab9a3f",
      "service": "payment_card_rub_hpp",
      "currency": "RUB",
      "amount": 100,
      "customer": {
        "reference_id": "cus_123",
        "name": "John Smith",
        "email": "johnsmith@gmail.com",
        "phone": "+15551234567",
        "address": {
          "country": "DE",
          "city": "Berlin",
          "region": "Berlin",
          "post_code": "10115",
          "full_address": "1 Main street"
        }
      }
    }
  }
}

A CVV is required for every H2H sale with this connector - a request without one fails before it reaches FreePayment. customer's billing details (name, phone, address) are only sent to FreePayment at all when Send Customer Data is enabled below (off by default); when it's on, anything you don't send falls back to the Constants listed below. This connector also supports EUR and USD (use payment_card_eur_hpp/payment_card_usd_hpp as the service code).


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 (7)

  • ignore_callback - tells Corefy to disregard FreePayment's own callback notifications entirely.
  • send_customer_data - sends the customer's billing details (name, phone, address) to FreePayment.
  • duplicate_check - asks FreePayment to check for and reject duplicate transactions.
  • transliterate_card_holder - transliterates the cardholder name to Latin characters before sending it.
  • transliterate_customer_data - transliterates the customer's billing details to Latin characters before sending them.
  • generate_random_customer_data - auto-generates placeholder billing details instead of using the real customer's data.
  • expand_ipv6 - expands a compressed IPv6 address to its full notation before sending it.
ignore_callback

What it does: when enabled, Corefy ignores callback notifications sent by FreePayment for this connection, relying on status checks/reconciliation instead.

When to use: enable only if instructed by FreePayment or your Corefy account manager.

Default: false

Allowed values: true / false

send_customer_data

What it does: when disabled, no billing address data (name, phone, country, city, region, zip, address) is sent to FreePayment at all, regardless of what your request includes.

When to use: enable it if FreePayment requires this detail for your account/flow.

Default: false

Allowed values: true / false

duplicate_check

What it does: asks FreePayment to check whether an identical transaction already exists and reject the new one if so.

When to use: enable it if you want FreePayment's own duplicate-transaction protection active for this connection.

Default: false

Allowed values: true / false

transliterate_card_holder

What it does: converts the cardholder name to Latin characters before sending it to FreePayment.

When to use: enable it if your cardholder names are commonly in a non-Latin script and FreePayment expects Latin characters.

Default: false

Allowed values: true / false

transliterate_customer_data

What it does: converts the customer's billing details (name, address) to Latin characters before sending them to FreePayment. Only relevant when Send Customer Data is also enabled.

When to use: enable it alongside Send Customer Data if your customer data is commonly in a non-Latin script.

Default: false

Allowed values: true / false

generate_random_customer_data

What it does: when Send Customer Data is enabled, generates plausible-looking placeholder billing details instead of using your request's real customer data.

When to use: enable it if you can't reliably collect real billing details but FreePayment still expects this data to be present.

Default: false

Allowed values: true / false

expand_ipv6

What it does: expands a compressed IPv6 address (e.g. 2001:db8::1) to its full notation before sending it to FreePayment.

When to use: enable it if FreePayment requires IPv6 addresses in full notation and your own source sends them compressed.

Default: false

Allowed values: true / false


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.

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 built-in placeholder default is used instead (see below)

Currently available constants (constant -> Corefy API field)

  • ip -> customer.metadata.ip
  • description -> payment description
  • lang -> page language
  • email -> customer.email
  • reason -> refund reason text
  • country -> customer.address.country
  • city -> customer.address.city
  • state -> customer.address.region
  • zip -> customer.address.post_code
  • address -> customer.address.full_address

If a field is missing from both the request and the Constants, Corefy sends one of these built-in placeholders instead of leaving it blank: ip -> 127.0.0.1, description -> Some service, lang -> en, email -> john@example.com, reason -> return of goods, country -> DE, city -> Denver, state -> CO, zip -> 96002, address -> 1st Street.


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

Connect Provider account in Corefy Dashboard

Step 1 - Open connection form

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

Step 2 - Fill in fields and select settings

  • Merchant ID
  • Secret Key
  • Public Key

Success

You have connected FreePayment Provider account!


First request to Corefy API (MIN)

What it does: creates a payment-invoice and returns a redirect link for the customer to complete an SBP bank transfer.

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "0dde9e79-2c64-4703-adaf-93d710633401",
      "service": "sbp_rub_hpp",
      "currency": "RUB",
      "amount": 100,
      "customer": {
        "reference_id": "cus_123",
        "metadata": {
          "ip": "203.0.113.10"
        }
      }
    }
  }
}

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "7976b4ce-fadd-4585-baa0-6b02c65351dc",
      "service": "sbp_rub_hpp",
      "currency": "RUB",
      "amount": 100,
      "customer": {
        "reference_id": "cus_123",
        "email": "johnsmith@gmail.com",
        "phone": "+79991234567",
        "metadata": {
          "ip": "203.0.113.10"
        }
      }
    }
  }
}

customer.metadata.ip (or the CUSTOMER_IP_ADDRESS constant below) is required - FreePayment rejects the request without it. customer.email/phone are optional pass-throughs. This flow only supports RUB via SBP.


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)

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.

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)

  • CUSTOMER_IP_ADDRESS -> customer.metadata.ip

Additional info

  1. Callback routing is automatic for both account types - Corefy generates the callback URL per transaction, nothing to configure in FreePayment's own back-office.

FAQ / Troubleshooting

  • Invalid credentials / auth error -> verify credentials for the selected environment and account type
  • H2H: payment rejected for missing CVV -> a CVV is required for every H2H sale with this connector
  • Provider account: payment rejected for missing IP -> customer.metadata.ip (or the CUSTOMER_IP_ADDRESS constant) is required for every SBP payment
  • Currency or service is not supported -> confirm allowed currencies/features in your FreePayment account and in Corefy
  • Not sure which account type to use? -> ask your Corefy account manager

Question

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