Shift4 EU
Experience the future of commerce
Supports in this guide: Payments
Provider website: shift4.com
What you need to do for start processing transactions (brief summary)
- Get your credentials (from Shift4)
- Connect in Dashboard
- Send an API request
Prerequisites: get from Shift4
Contact your Shift4 account manager to get your account verified and receive the following credentials.
- Merchant ID -> Corefy field
merchant_id. - Secret Key -> Corefy field
secret_key-> used to authenticate every request. - Save Instant Token (optional) -> Corefy field
save_instant_token-> enable to allow recurring charges (see Recurring below).
Note
This is a separate connection from the Shiftfour connector already available in Corefy - that one integrates against Shift4's older i4Go/REST API gateway, while this connector (listed as Shift4 EU) uses Shift4's newer unified API. Confirm with your account manager which one applies to your account.
Payments processing (connect H2H Merchant account, create payment-invoice)
Connect H2H Merchant account in Corefy Dashboard
Step 1 - Open connection form
Open Shift4 EU in the provider directory and press Connect at Shift4 EU Provider Overview page in the New connection section. Choose H2H Merchant account.
Step 2 - Fill in fields and select settings
- Merchant ID
- Secret Key
- Save Instant Token (optional)
- Test Mode -> (enable if you are using sandbox credentials)
Choose Currency / Features; check with your Corefy account manager which are enabled for your account.
Success
You have connected Shift4 EU 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. Shift4 supports full 3D Secure 2 - depending on the card and your account's liability-shift settings (see Options below), Shift4 may return a 3D Secure challenge redirect.
Payment - MIN
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "8e3dbbb0-17af-4c9a-bedb-93bdac6900a2",
"service": "payment_card_eur_hpp",
"currency": "EUR",
"amount": 10
}
}
}
This connector also supports USD, JPY, GBP.
Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "6795502c-e27d-4d07-85e0-93245aab9a3f",
"service": "payment_card_eur_hpp",
"currency": "EUR",
"amount": 10,
"customer": {
"reference_id": "cus_123",
"email": "johnsmith@gmail.com"
}
}
}
}
customer is normally optional, with one exception - see the important note below.
Important
If Save Instant Token is enabled on your connection, customer.email becomes required on every sale - the sale is rejected outright ("Customer email is required for token payment") if it's missing, since Shift4 needs it to register the saved card.
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 Constants are configured for this connector.
Options
stored_credential_mode-> optional, enum (none/recurring/unscheduled) - tells Shift4 what kind of stored-credential charge this is, per card network compliance rules:recurringfor subscription-style recurring charges,unscheduledfor customer- or merchant-initiated charges on file that don't follow a fixed schedule. Used together with Save Instant Token.charge_on_bypassed_liability_shift-> optional, boolean - after a 3D Secure challenge, allows the charge to proceed even when Shift4 reports the liability shift as "bypassed" (3DS wasn't actually performed), instead of declining it.charge_on_not_possible_liability_shift-> optional, boolean - allows the charge to proceed when Shift4 reports that a liability shift wasn't possible for this card, instead of declining it.charge_on_failed_liability_shift-> optional, boolean - allows the charge to proceed even when the 3D Secure liability shift itself failed, instead of declining it.
Note
By default (all three disabled), only a card with a successful liability shift is charged - anything else (bypassed, not possible, or failed) is declined for your protection against chargeback liability. Enable these options only if you understand and accept the added fraud/chargeback risk.
Recurring (save and charge a token)
If Save Instant Token is enabled on your connection, this connector registers the customer's card with Shift4 on the first sale (requires customer.email, see above) and lets you charge that saved card again later via Corefy's standard recurring request, without resubmitting full card data.
Refunds
Shift4 supports partial refunds, but only one refund per payment (no multiple partial refunds against the same payment).
Additional info
- Callback routing is automatic - Corefy generates the callback/return URLs per transaction, nothing to configure in Shift4's own back-office.
- No payouts - this connector does not support payouts through Corefy.
FAQ / Troubleshooting
- Sale fails with "Customer email is required for token payment" -> enable this only when you also send
customer.email, or disable Save Instant Token if you don't need recurring - Sale is declined right after a 3D Secure challenge -> check whether the liability shift result was bypassed, not possible, or failed - by default only a successful liability shift is charged; the
charge_on_*_liability_shiftoptions can relax this at your own chargeback risk - Invalid credentials / auth error -> verify Merchant ID/Secret Key for the selected environment
- Refund fails with multiple attempts -> only one refund per payment is supported
- Currency or service is not supported -> confirm allowed currencies/features in your Shift4 account and in Corefy
- Not sure if this is the right Shift4 connector? -> this one (Shift4 EU) uses Shift4's modern unified API; the separate Shiftfour connector in Corefy uses the older i4Go/REST API gateway - confirm with your account manager
Question
Still looking for help connecting your Shift4 account? Please contact our support team!