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)
- Choose account type
- Get your credentials (from FreePayment)
- Connect in Dashboard
- 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 ->
SimpleorAdvanced, 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.ipdescription-> payment descriptionlang-> page languageemail->customer.emailreason-> refund reason textcountry->customer.address.countrycity->customer.address.citystate->customer.address.regionzip->customer.address.post_codeaddress->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
- 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 theCUSTOMER_IP_ADDRESSconstant) 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!