BergoPay
Supports in this guide: Payments
Provider website: bergopay.com
What you need to do for start processing transactions (brief summary)
- Choose account type
- Get your credentials (from BergoPay)
- Connect in Dashboard
- Send an API request
Choose account type
BergoPay can be connected in different ways (depending on your needs):
- If you do redirect payments (customer redirected to a hosted payment page) -> choose Provider account
If you're not sure which one to use, confirm with your Corefy account manager.
Prerequisites: get from BergoPay
Get the following values for your BergoPay project/account:
- Merchant ID -> Corefy field
merchant_id-> example:10-> sent asmerchant_idon every payment request to identify your account -> where to find: BergoPay back-office / issued by BergoPay manager - API key -> Corefy field
api_key-> example:sk_live_51Hx...-> used as a Bearer token to authenticate every request to BergoPay's API -> where to find: BergoPay back-office / issued by BergoPay manager - Webhook Secret -> Corefy field
webhook_secret-> format: plain text key -> used to verify the signature of incoming webhook notifications from BergoPay -> where to find: BergoPay back-office / issued by BergoPay manager, generated after you register your webhook endpoint with BergoPay
Payments processing (connect Provider account, create payment-invoice)
Connect Provider account in Corefy Dashboard
Step 1 - Open connection form
Open BergoPay in the provider directory and press Connect at BergoPay Provider Overview page in the New connection section. Choose Provider account.
Step 2 - Fill in fields and select settings
- Merchant ID ->
merchant_id - API key ->
api_key - API URL ->
api_url(optional, overrides the default gateway endpoint - leave blank unless told otherwise) - Webhook Secret ->
webhook_secret - Test Mode -> (enable if you are using sandbox credentials)
- Currency / Features -> choose values available for your account
Success
You have connected BergoPay Provider account!
First request to Corefy API (MIN)
What it does: creates a payment-invoice and returns a redirect link to BergoPay's hosted payment page.
Payment - MIN
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "9c1d3e56-7f8a-4b0c-8d12-3e4f5a6b7c8d",
"service": "applepay_eur_hpp",
"currency": "EUR",
"amount": 10
}
}
}
Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "0d2e4f67-8a9b-4c1d-8e23-4f5a6b7c8d9e",
"service": "applepay_eur_hpp",
"currency": "EUR",
"amount": 10,
"customer": {
"reference_id": "cus_123",
"name": "John Smith",
"email": "johnsmith@gmail.com",
"address": {
"country": "DE"
},
"metadata": {
"ip": "203.0.113.42"
}
}
}
}
}
BergoPay also supports googlepay_eur_hpp (Google Pay), eps_eur_hpp (EPS) and paysafecard_eur_hpp (paysafecard) - the request shape is identical, only the service code changes; the exact set of service codes available depends on your account configuration. customer.name is split into first/last name parts before being forwarded to BergoPay; customer.address.country and customer.metadata.ip are forwarded as-is, and the IP falls back to the request's own origin IP if metadata.ip isn't set. None of the customer fields above are required - Corefy only sends what you provide and omits the rest.
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)
FIRST_NAME->customer.name(first part)LAST_NAME->customer.name(last part)EMAIL->customer.emailCOUNTRY_CODE->customer.address.countryIP->customer.metadata.ip(falls back further to the request's own origin IP if neither is set)
Refunds
BergoPay supports partial refunds, but only one refund per transaction - a second refund against the same payment isn't supported. A refund can only be processed once the original BergoPay transaction id has been recorded against the payment; if it hasn't synced yet, the refund request is rejected until it has. Refund status can also be checked directly against BergoPay if a refund callback doesn't arrive.
Additional info
- BergoPay sends a webhook notification whenever a transaction's status changes; Corefy verifies its signature automatically using the Webhook Secret configured on the account. If no webhook arrives in time, Corefy can reconcile the payment status directly with BergoPay instead.
- The API URL field is optional and only needed if BergoPay instructs you to use a non-default endpoint (for example, a dedicated sandbox or merchant-specific host) - leave it blank to use the standard environment endpoint matching your Test Mode setting.
FAQ / Troubleshooting
- Invalid credentials / auth error -> verify Merchant ID and API key for the selected environment (Test Mode on/off)
- Webhook signature invalid -> verify the Webhook Secret matches the one currently registered with BergoPay for your webhook endpoint
- Refund rejected with a missing transaction error -> wait for the payment's BergoPay transaction id to sync, then retry the refund
- Currency or service is not supported -> confirm allowed currencies/features in your BergoPay account and in Corefy
- Not sure which account type to use? -> ask your Corefy account manager
Question
Still looking for help connecting your BergoPay account? Please contact our support team!