Mercuryo
The payment engine behind top web3 business
Supports in this guide: Payments, Payouts
Provider website: mercuryo.io
What you need to do for start processing transactions (brief summary)
- Choose account type
- Get your credentials (from Mercuryo)
- Connect in Dashboard
- Send an API request
Choose account type
Mercuryo can be connected in different ways (depending on your needs):
- If you do H2H card payments (card data sent directly, non-3DS cards only) -> choose H2H Merchant account
- If you do hosted-widget payments (card or crypto, customer completes the purchase on Mercuryo's own page) -> choose Merchant account
- If you do payouts -> choose Provider account
If you're not sure which one to use, confirm with your Corefy account manager.
Prerequisites: get from Mercuryo
For H2H Merchant account:
- Login -> Corefy field
login. - API Key -> Corefy field
api_key. - Secret Key -> Corefy field
secret_key-> used to sign every request.
For Merchant account:
- Client ID -> Corefy field
client_id. - Client Secret -> Corefy field
client_secret. - Webhook Secret -> Corefy field
webhook_secret-> used to verify callback notifications from Mercuryo.
For Provider account:
- Service ID -> Corefy field
service_id. - Secret Key -> Corefy field
secret_key. - Currency -> Corefy field
currency-> single-select, choose from the currencies enabled for your account.
Payments processing (connect H2H Merchant account, create payment-invoice)
Connect H2H Merchant account in Corefy Dashboard
Step 1 - Open connection form
Open Mercuryo in the provider directory and press Connect at Mercuryo Provider Overview page in the New connection section. Choose H2H Merchant account.
Step 2 - Fill in fields and select settings
- Login
- API Key
- Secret Key
- Test Mode -> (enable if you are using sandbox credentials)
- API URL (optional) -> overrides the default API host.
- Merchant URL (optional) -> overrides the domain of the success/failure redirect Corefy sends to Mercuryo, so the customer is redirected back through your own domain instead of Corefy's default one.
Choose Currency and Features. USD and EUR are confirmed; check with your Corefy account manager which are enabled for your account.
Success
You have connected Mercuryo 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_usd_hpp",
"currency": "USD",
"amount": 10,
"customer": {
"reference_id": "cus_123",
"name": "John Smith",
"email": "johnsmith@gmail.com",
"address": {
"country": "DE",
"city": "Berlin",
"full_address": "1 Main street",
"post_code": "10115"
}
}
}
}
}
Important
Unlike most H2H connectors, customer here is not optional. Mercuryo rejects the sale outright unless Corefy can resolve customer.name (first/last), customer.email, and a full customer.address (city/country/full_address/post_code) - either from the request or from the Constants below (email has no Constants fallback - always send it in the request). For US/CA/AU addresses specifically, customer.address.region must also resolve to a valid state - if it can't, the sale fails with "Region not found".
Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "6795502c-e27d-4d07-85e0-93245aab9a3f",
"service": "payment_card_usd_hpp",
"currency": "USD",
"amount": 10,
"customer": {
"reference_id": "cus_123",
"name": "John Smith",
"email": "johnsmith@gmail.com",
"phone": "+15551234567",
"address": {
"country": "US",
"region": "California",
"city": "Los Angeles",
"full_address": "1 Main street",
"post_code": "90001"
}
}
}
}
}
Important
Mercuryo does not support 3D Secure - if the issuer determines the card requires a 3DS challenge, the sale is declined immediately rather than stepping up. This connector is only suitable for cards your customers can authenticate without 3DS.
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_FIRST_NAME->customer.name(first part)CUSTOMER_LAST_NAME->customer.name(second part)CUSTOMER_COUNTRY->customer.address.countryCUSTOMER_CITY->customer.address.cityCUSTOMER_ADDRESS_LINE_1->customer.address.full_addressCUSTOMER_POST_CODE->customer.address.post_codeCUSTOMER_REGION->customer.address.region(only read forUS/CA/AU)
Payments processing (connect Merchant account, create payment-invoice)
Connect Merchant account in Corefy Dashboard
Step 1 - Open connection form
Open Mercuryo in the provider directory and press Connect at Mercuryo Provider Overview page in the New connection section. Choose Merchant account.
Step 2 - Fill in fields and select settings
- Client ID
- Client Secret
- Webhook Secret
- Test Mode -> (enable if you are using sandbox credentials)
Success
You have connected Mercuryo Merchant account!
First request to Corefy API (MIN)
What it does: creates a payment-invoice and returns a redirect link to Mercuryo's hosted widget, where the customer buys with a card or crypto and completes any KYC Mercuryo itself requires.
Payment - MIN
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "8e3dbbb0-17af-4c9a-bedb-93bdac6900a2",
"service": "mercuryo_usd_hpp",
"currency": "USD",
"amount": 10
}
}
}
Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "6795502c-e27d-4d07-85e0-93245aab9a3f",
"service": "mercuryo_usd_hpp",
"currency": "USD",
"amount": 10
}
}
}
customer is not used on this flow at all - Mercuryo collects the customer's details and KYC itself on its own hosted widget. This connector also supports EUR and BTC (use mercuryo_eur_hpp/mercuryo_btc_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
No Options or Constants are configured for this flow.
Payouts processing (connect Provider account, create payout-invoice)
Connect Provider account in Corefy Dashboard
Step 1 - Open connection form
Open Mercuryo in the provider directory and press Connect at Mercuryo Provider Overview page in the New connection section. Choose Provider account.
Step 2 - Fill in fields and select settings
- Service ID
- Secret Key
- Currency -> single-select
- Test Mode -> (enable if you are using sandbox credentials)
Success
You have connected Mercuryo Provider account!
First request to Corefy API (MIN)
What it does: creates a payout-invoice and sends funds to a card.
Payout - MIN
POST /api/payout-invoices
{
"data": {
"type": "payout-invoice",
"attributes": {
"reference_id": "0dde9e79-2c64-4703-adaf-93d710633401",
"service": "payment_card_eur",
"currency": "EUR",
"amount": 10,
"customer": {
"reference_id": "cus_123",
"name": "John Smith"
},
"fields": {
"card_number": "4111111111111111"
}
}
}
}
Payout - MAX
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",
"name": "John Smith",
"email": "johnsmith@gmail.com",
"phone": "+15551234567",
"metadata": {
"date_of_birth": "1990-01-01"
}
},
"fields": {
"card_number": "4111111111111111"
}
}
}
}
fields.card_number is required; the cardholder's name is derived from customer.name. customer.phone, customer.email, and customer.metadata.date_of_birth are all optional. This connector also supports USD, GBP, UAH, KZT, and RUB (use payment_card_<ccy> 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
No Options or Constants are configured for this flow.
Additional info
- Callback routing. For H2H Merchant account, callback routing is handled automatically - Corefy generates the callback URL per transaction. For Merchant account (Payments), callback signatures are verified using the Webhook Secret. For Provider account (Payouts), callback routing is also automatic.
- No 3D Secure on the H2H flow. This is the main limitation of the H2H Merchant account - any card the issuer flags for 3DS is declined rather than challenged. If you need 3DS-eligible cards covered, route them to a different connector, or use the Merchant account (hosted widget) flow instead, where Mercuryo itself handles authentication.
FAQ / Troubleshooting
- Invalid credentials / auth error -> verify credentials for the selected environment and account type
- H2H payment declined immediately -> the card likely requires 3D Secure, which this connector's H2H flow doesn't support
- H2H payment rejected for missing customer details ->
customer.name,customer.email, and a fullcustomer.addressare required (email has no fallback Constant); forUS/CA/AUthe address region must also resolve - Currency or service is not supported -> confirm allowed currencies/features in your Mercuryo account and in Corefy
- Not sure which account type to use? -> ask your Corefy account manager
Question
Still looking for help connecting your Mercuryo account? Please contact our support team!