XMGate
Supports in this guide: Payments | Payouts
Provider website: n/a
What you need to do for start processing transactions (brief summary)
- Choose account type
- Get your credentials (from XMGate)
- Connect in Dashboard
- Send an API request
Choose account type
XMGate can be connected in different ways (depending on your needs):
- If you do H2H card payments (including Apple Pay / Google Pay) -> choose H2H 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 XMGate
XMGate issues separate credentials for each account type below.
For H2H Merchant account:
- Login -> Corefy field
login-> where to find: XMGate backoffice / issued by XMGate manager - Password -> Corefy field
password-> where to find: XMGate backoffice / issued by XMGate manager - Test Mode -> Corefy field
test_mode - Apple Pay Merchant ID -> optional, Corefy field
applepay_merchant_id-> your merchant ID registered with Apple - Apple Pay Display Name -> optional, Corefy field
applepay_display_name-> the name shown to customers during the Apple Pay merchant validation handshake - Apple Pay Merchant ID Certificate -> optional, Corefy field
applepay_merchant_id_certificate-> upload the Apple-issued Payment Processing Certificate (.p12) — used only to authenticate Corefy's Apple Pay merchant-session validation call to Apple, not for decrypting the payment token (see Additional info) - Apple Pay Merchant ID Certificate Password -> optional, Corefy field
applepay_merchant_id_certificate_password-> the password protecting the.p12file above - Google Pay Gateway Merchant ID -> optional, Corefy field
google_pay_gateway_merchant_id - Google Pay Merchant ID -> optional, Corefy field
google_pay_mid-> required if you want Google Pay to actually work — Google Pay initialization fails outright if this is left blank, even though the field itself is marked optional
For Provider account:
- Login -> Corefy field
login - Password -> Corefy field
password - Test Mode -> Corefy field
test_mode - API URL -> optional, Corefy field
api_url-> overrides the default host
Payments processing (connect H2H Merchant account, create payment-invoice)
Connect H2H Merchant account in Corefy Dashboard
Step 1 - Open connection form
Open XMGate in the provider directory and press Connect at XMGate Provider Overview page in the New connection section. Choose H2H Merchant account.
Step 2 - Fill in fields and select settings
- Login
- Password
- Test Mode
- Apple Pay Merchant ID -> (optional — see Additional info for the full Apple Pay setup)
- Apple Pay Display Name -> (optional)
- Apple Pay Merchant ID Certificate -> (optional, upload a
.p12file) - Apple Pay Merchant ID Certificate Password -> (optional)
- Google Pay Gateway Merchant ID -> (optional)
- Google Pay Merchant ID -> (optional, but required for Google Pay to actually work)
Choose Currency. XMGate supports AUD, CAD, EUR, GBP, and PLN — check with your Corefy account manager which are enabled for your account.
Success
You have connected XMGate 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": 100,
"reference_id": "86e68af6-6b95-4cc0-be16-e4df8044604c"
}
}
}
customer is entirely optional — nothing in XMGate's request-building code requires it, and no field falls back to a placeholder if you omit it (unlike some other connectors, XMGate just receives a null for whatever's missing). Card data (number/expiry/CVV) isn't part of this request — it's collected separately via Corefy's own card-capture step. Corefy's checkout requires CVV for this connector by default, even though XMGate's own API would accept a request without it. Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"service": "payment_card_eur_hpp",
"currency": "EUR",
"amount": 100,
"customer": {
"reference_id": "bc75bc54-5023-4f98-8c0d-ec5ed7e8f380",
"name": "John Smith",
"email": "johnsmith@gmail.com",
"phone": "+15551234567",
"address": {
"country": "DE",
"region": "Berlin",
"city": "Berlin",
"post_code": "10115",
"full_address": "1st Street 1"
}
},
"reference_id": "08f5e97c-1170-4bda-9625-3bde3c6dcd20"
}
}
}
AUD, CAD, GBP, and PLN (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 (1)
time_to_finalize- sets a delay (in minutes) before a pending card or Apple Pay transaction is automatically finalized
time_to_finalize
What it does: sets, in minutes, how long a pending card or Apple Pay transaction is given before Corefy automatically finalizes it.
When to use: enable it if XMGate transactions for your account are commonly left pending longer than Corefy's default handling expects.
Default: not set
Allowed values: a number, 1-3 digits
Note
If you are not sure which value to select, please contact our support team!
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. For XMGate these are all browser/device fingerprint values (used for 3D Secure risk-scoring), not customer profile data — configurable separately for card payments, Apple Pay, and Google Pay.
Currently available constants
OS-> the customer's operating systemOS_VERSION-> the customer's operating system versionPLUGINS-> installed browser pluginsIS_MOBILE-> whether the customer is on a mobile device
Payouts processing (connect Provider account, create payout-invoice)
Connect Provider account in Corefy Dashboard
Step 1 - Open connection form
Open XMGate in the provider directory and press Connect at XMGate Provider Overview page in the New connection section. Choose Provider account.
Step 2 - Fill in fields (provider -> Corefy)
- Login ->
login - Password ->
password - API URL ->
api_url-> (optional)
Success
You have connected XMGate Provider account!
First request to Corefy API (MIN)
What it does: creates a payout-invoice.
Payout - MIN
POST /api/payout-invoices
{
"data": {
"type": "payout-invoice",
"attributes": {
"service": "payment_card_eur",
"currency": "EUR",
"amount": 100,
"customer": {
"reference_id": "55041b5b-adfd-4073-a92b-fd8b495a4cc1",
"name": "John Smith"
},
"fields": {
"card_number": "4111111111111111"
},
"reference_id": "86e68af6-6b95-4cc0-be16-e4df8044604c"
}
}
}
fields.card_number and customer.name are both required. customer.name must be exactly two Latin-alphabet words (first name + last name) — XMGate rejects the payout with an invalid-details error otherwise, so a single name, a name with extra parts, or non-Latin characters will all fail. The card's expiry comes from Corefy's own card data when available. Payout - MAX
POST /api/payout-invoices
{
"data": {
"type": "payout-invoice",
"attributes": {
"service": "payment_card_eur",
"currency": "EUR",
"amount": 100,
"customer": {
"reference_id": "55041b5b-adfd-4073-a92b-fd8b495a4cc1",
"name": "John Smith",
"email": "johnsmith@gmail.com",
"phone": "+15551234567",
"address": {
"country": "DE",
"city": "Berlin",
"full_address": "1st Street 1"
}
},
"fields": {
"card_number": "4111111111111111"
},
"reference_id": "08f5e97c-1170-4bda-9625-3bde3c6dcd20"
}
}
}
AUD, AZN, BGN, CAD, CZK, GBP, HUF, JPY, KZT, NOK, NZD, PLN, RON, and USD for card payouts (use payment_card_<currency> 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
Additional info
-
Apple Pay setup — beyond the Dashboard fields above, Apple Pay requires real setup with Apple directly: an Apple Developer account, registering a Merchant ID with Apple, generating a Payment Processing Certificate (uploaded to Corefy as Apple Pay Merchant ID Certificate) and a separate Merchant ID Certificate (kept private, never shared with Corefy or XMGate), and verifying your domain with Apple. Talk to your Corefy account manager if you need help with this.
-
Apple Pay / Google Pay token handling — Corefy does not decrypt the wallet payment token itself; the encrypted token is forwarded as-is to XMGate's underlying Neolink infrastructure, which performs the decryption. Your uploaded Apple Pay certificate is used only for the separate Apple merchant-session validation handshake (proving to Apple that your domain/merchant ID is legitimate), not for token decryption.
For more information, visit:
-
Refunds are supported for H2H card payments — partial refunds are allowed, but only one refund per transaction (not multiple partial refunds against the same payment).
-
Tokenized recurring payments are supported via Corefy's standard tokenize-on-first-payment mechanism — no separate "Save Instant Token" toggle exists for this connector.
-
Callbacks are validated by source IP only — XMGate doesn't sign its callbacks, so Corefy checks that they originate from XMGate's known IP addresses instead.
FAQ / Troubleshooting
- Invalid credentials / auth error -> verify your Login/Password match the selected environment (test vs live) and account type
- Google Pay fails to initialize -> make sure Google Pay Merchant ID is set — Google Pay won't work with it left blank, even though the Dashboard field itself is optional
- Refund rejected after a previous refund -> XMGate only allows one refund per transaction; a second refund attempt on the same payment will fail
- Payment declined - invalid CVV -> Corefy's checkout requires CVV for this connector by default
- Payout rejected - invalid customer name ->
customer.namemust be exactly two Latin-alphabet words (first + last name) for payouts - Not sure which account type to use? -> ask your Corefy account manager
Question
Still looking for help connecting your XMGate account? Please contact our support team!