emerchantpay
Supports in this guide: Payments
Provider website: emerchantpay.com
What you need to do for start processing transactions (brief summary)
- Choose account type
- Get your credentials (from emerchantpay)
- Connect in Dashboard
- Send an API request
Choose account type
emerchantpay 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 (Open Banking - customer picks their bank and authorises on emerchantpay's hosted page) -> choose Provider account
If you're not sure which one to use, confirm with your Corefy account manager.
Prerequisites: get from emerchantpay
Get the following values for your emerchantpay project/account. The same core credentials (Username, Password, Terminal Token) apply to both connection types below, but are entered separately when connecting each account type in the Dashboard.
- Username -> Corefy field
username-> example:merchant_01-> where to find: emerchantpay backoffice / issued by emerchantpay manager. Used together with Password for HTTP Basic authentication on every API request. - Password -> Corefy field
password-> example:9F3kD82jLxQ1vR7Z-> where to find: emerchantpay backoffice / issued by emerchantpay manager. Also used to verify the signature of asynchronous callbacks. - Terminal Token -> Corefy field
terminal_token-> example:4808273822b3d3875a00faaccc242ad83e4cd52-> where to find: emerchantpay backoffice / issued by emerchantpay manager. Identifies which of your terminals a request is processed on; sent as part of every request's URL path. - Recurring Terminal Token (H2H Merchant account only, optional) -> Corefy field
recurring_terminal_token-> example:2c0b7c86104a4f5a3d0a2a7d95c1c9de-> where to find: emerchantpay backoffice / issued by emerchantpay manager. A separate terminal used for recurring/instant (token-based) payments; only needed if you plan to charge saved cards. - Non-3DS Terminal Token (H2H Merchant account only, optional) -> Corefy field
non_3ds_terminal_token-> example:1a9e4c2f8b6d47e0a6f5c3b8d1e2a7c4-> where to find: emerchantpay backoffice / issued by emerchantpay manager. A separate terminal that processes card payments without 3-D Secure; only needed if you use theuse_non3ds_fallbackoption (see Options below).
Payments processing (connect H2H Merchant account, create payment-invoice)
Connect H2H Merchant account in Corefy Dashboard
Step 1 - Open connection form
Open emerchantpay in the provider directory and press Connect at emerchantpay Provider Overview page in the New connection section. Choose H2H Merchant account.
Step 2 - Fill in fields and select settings
- Username
- Password
- Terminal Token
- Recurring Terminal Token (optional, needed for recurring/instant payments)
- Non-3DS Terminal Token (optional, needed for the
use_non3ds_fallbackoption below) - Test Mode -> (enable if you are using sandbox credentials)
Choose Currency and Features. You can set these parameters according to available currencies and features for your emerchantpay account, but it is necessary to check details of the connection with your Corefy account manager.
Success
You have connected emerchantpay H2H Merchant account!
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": 10
}
}
}
Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"service": "payment_card_eur_hpp",
"currency": "EUR",
"amount": 10.04,
"customer": {
"reference_id": "cus_123",
"name": "John Smith",
"email": "johnsmith@gmail.com",
"phone": "+15551234567",
"date_of_birth": "1990-05-14",
"individual_tax_id": "123456789012",
"address": {
"country": "GB",
"city": "London",
"post_code": "SW1A 1AA",
"full_address": "10 Downing Street"
}
}
}
}
}
emerchantpay's own terminal configuration requires customer_email, first/last name, and a full billing address by default. If you omit customer.email/customer.name/customer.address, Corefy sends the configured Constants instead (defaults: email travis@example.com, name John Doe, address 14, Nerazdelni str, city Salvador, country BR, zip 1407 - see Constants below) rather than leaving the request incomplete - send real customer data to avoid placeholder billing details reaching emerchantpay. Whether the sale is submitted as sale or sale3d (3-D Secure) is decided automatically per transaction (see Additional info). emerchantpay also supports USD, RUB, and JPY (use payment_card_<currency>_hpp as the service code, lowercase currency).
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 (2)
use_sca_checker- checks whether Strong Customer Authentication is actually required before deciding on 3-D Secure.use_non3ds_fallback- automatically retries a 3-D-Secure-declined sale without 3-D Secure.
use_sca_checker
What it does: before submitting the sale, calls emerchantpay's SCA Checker endpoint to determine whether Strong Customer Authentication is actually required for this specific card and amount (e.g. an exemption applies). If the checker reports SCA isn't required, Corefy sends a non-3-D Secure sale instead of sale3d, even when 3-D Secure was otherwise requested for the payment.
When to use: enable it if you want to reduce unnecessary 3-D Secure challenges (and the friction/drop-off they cause) for transactions that qualify for an SCA exemption.
Default: "false"
Allowed values: true / false
use_non3ds_fallback
What it does: if a sale3d transaction is declined specifically because the card isn't 3-D-Secure-enrolled or couldn't be authenticated (no authentication data returned), automatically resubmits the same sale as a non-3-D Secure transaction using your Non-3DS Terminal Token, instead of leaving the sale declined.
When to use: enable it together with a configured Non-3DS Terminal Token if you'd rather complete the sale without 3-D Secure than lose it entirely when the card can't be authenticated.
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 -> provider may reject the request or apply its defaults (depends on provider)
Currently available constants (constant -> Corefy API field)
ADDRESS->customer.address.full_addressZIP->customer.address.post_codeCITY->customer.address.cityCOUNTRY->customer.address.countryEMAIL->customer.emailDEVICE_TYPE-> 3-D Secure v2 device type sent to emerchantpay (no per-request override - this is a fixed connection-level value)WINDOW_SIZE-> 3-D Secure v2 challenge window size sent to emerchantpay (no per-request override)CHALLENGE_INDICATOR-> 3-D Secure v2 challenge preference sent to emerchantpay (no per-request override)
Payments processing (connect Provider account, create payment-invoice)
Connect Provider account in Corefy Dashboard
Step 1 - Open connection form
Open emerchantpay in the provider directory and press Connect at emerchantpay Provider Overview page in the New connection section. Choose Provider account.
Step 2 - Fill in fields and select settings
- Username
- Password
- Terminal Token
- API URL (optional, overrides the default gateway endpoint)
- Test Mode -> (enable if you are using sandbox credentials)
Success
You have connected emerchantpay Provider account!
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": "openbanking_eur_hpp",
"currency": "EUR",
"amount": 10,
"customer": {
"name": "John Smith",
"email": "johnsmith@gmail.com",
"phone": "+15551234567",
"address": {
"country": "DE",
"city": "Berlin",
"post_code": "10115",
"full_address": "Unter den Linden 1"
}
}
}
}
}
Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"service": "openbanking_eur_hpp",
"currency": "EUR",
"amount": 10.04,
"customer": {
"reference_id": "cus_123",
"name": "John Smith",
"email": "johnsmith@gmail.com",
"phone": "+15551234567",
"address": {
"country": "DE",
"region": "Berlin",
"city": "Berlin",
"post_code": "10115",
"full_address": "Unter den Linden 1"
}
},
"fields": {
"bank_id": "TRL"
}
}
}
}
Unlike the H2H Merchant account flow above, this Open Banking method has no placeholder fallback for customer data - emerchantpay requires a real customer.email, customer.phone, customer.name, and billing address by default for this method, so omitting them risks the payment being declined rather than a placeholder being substituted. fields.bank_id is optional: TRL is currently the only supported bank code for Open Banking (across all its supported countries), so it rarely needs to be set explicitly - see Constants below. This method currently supports EUR and GBP, across the UK, Ireland, Germany, France, Belgium, Finland, Spain, and Italy (use openbanking_gbp_hpp for GBP).
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)
BANK_CODE->fields.bank_id
Additional info
H2H Merchant account:
-
Whether a sale is submitted as
saleorsale3d(3-D Secure) is decided automatically per transaction - not a field you set directly. See theuse_sca_checkeranduse_non3ds_fallbackoptions above for ways to influence this. -
Callback routing is handled automatically: emerchantpay calls back a notification URL Corefy generates per transaction. There's no fixed callback URL to configure in emerchantpay's backoffice.
Provider account (Open Banking):
- After the customer selects their bank and authorises the payment on emerchantpay's hosted page, they're redirected back to your return URL; the final transaction result arrives asynchronously via callback shortly after - reconcile the payment if the callback hasn't arrived after a reasonable wait.
FAQ / Troubleshooting
- Invalid credentials / auth error -> verify you used the correct Username / Password / Terminal Token for the chosen environment (sandbox vs production) and account type
- Currency not supported -> confirm allowed currencies/features in your emerchantpay account and in Corefy
- Missing customer data fields -> for H2H Merchant account, set constants (see "Constants") or provide fields in the API request; for Provider account (Open Banking), always provide real customer email/phone/name/address in the request - there's no constants fallback for this flow
- Not sure which account type to use? -> ask your Corefy account manager
Question
Still looking for help connecting your emerchantpay account? Please contact our support team!