Salt Edge
Open Finance. Endless possibilities.
Supports in this guide: Payments
Provider website: saltedge.com
What you need to do for start processing transactions (brief summary)
- Get your credentials (from Salt Edge)
- Set your receiving bank account details (Constants)
- Connect in Dashboard
- Send an API request
Prerequisites: get from Salt Edge
Contact your Salt Edge account manager to get your account verified and receive the following credentials.
- App ID -> Corefy field
app_id. - Secret -> Corefy field
secret. - Public Key -> Corefy field
public_key-> uploaded as a file; also register it with Salt Edge per their documentation. - Private Key -> Corefy field
private_key-> uploaded as a file; used to sign every request.
Important
Salt Edge is an open banking (Pay by Bank) provider - there's no card data involved. Instead, your own receiving bank account details must be configured as connection Constants for each currency/service before you can accept payments with it - see Constants below.
Payments processing (connect Provider account, create payment-invoice)
Connect Provider account in Corefy Dashboard
Step 1 - Open connection form
Open Salt Edge in the provider directory and press Connect at Salt Edge Provider Overview page in the New connection section.
Step 2 - Fill in fields and select settings
- App ID
- Secret
- Public Key
- Private Key
- Test Mode -> (enable if you are using sandbox credentials)
For each currency/service you plan to use, fill in your receiving bank account Constants (see below) and the required Options - Charge Bearer and Theme must be explicitly set.
Success
You have connected Salt Edge Provider account!
First request to Corefy API (MIN)
What it does: creates a payment-invoice and redirects the customer to their own bank via Salt Edge's Open Banking widget to authorize a transfer. customer.email and customer.metadata.ip are mandatory - Corefy first registers the payer as a Salt Edge customer using them.
Payment - MIN
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "9d0e1f23-4a5b-4c6d-8e78-9f0a1b2c3d4e",
"service": "sepa_transfer_eur_hpp",
"currency": "EUR",
"amount": 10,
"customer": {
"reference_id": "cus_123",
"email": "johnsmith@gmail.com",
"metadata": {
"ip": "198.51.100.1"
}
}
}
}
}
This connector also supports sepa_transfer_instant_eur_hpp, revolut_bank_eur_hpp, wise_eur_hpp, n26_bank_eur_hpp, bunq_eur_hpp, sofortuberweisung_eur_hpp, faster_payments_gbp_hpp, plus a set of named-bank services for the Netherlands, Belgium, Germany, Estonia, Latvia, and Lithuania (EUR only) - the exact set depends on what's enabled for your account.
Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "0e1f2a34-5b6c-4d7e-8f89-0a1b2c3d4e5f",
"service": "sepa_transfer_eur_hpp",
"currency": "EUR",
"amount": 10,
"customer": {
"reference_id": "cus_123",
"name": "John Smith",
"email": "johnsmith@gmail.com",
"date_of_birth": "1990-05-20",
"address": {
"country": "DE",
"region": "Bavaria",
"city": "Munich",
"full_address": "1 Main street",
"post_code": "80331"
},
"metadata": {
"ip": "198.51.100.1"
}
},
"fields": {
"account": "DE89370400440532013000"
}
}
}
}
Important
customer.name,customer.address.*are forwarded as the payer's own details (debtor_*), automatically transliterated to Latin.customer.date_of_birth,customer.address.country/post_code/full_addressare additionally used once, up front, to register the payer as a Salt Edge customer (KYC).fields.accountis the payer's own IBAN - optional, used to prefill the widget.
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
charge_bearer-> required, enum (creditor,debtor,shared) - who pays the transfer fee, if any (relevant for SEPA Instant): you (creditor), the customer (debtor), or split.theme-> required, enum (light,dark) - color theme of Salt Edge's hosted widget.treat_executed_as_final-> optional, boolean - Salt Edge reports an intermediateexecutedstatus before final settlement; enabling this reports it as a final success immediately instead of waiting. Has no effect ifcreditor_reconcileis also enabled.finalize_after_minutes-> optional, number - if an active status check can no longer find the transaction at Salt Edge after this many minutes, reports it as failed/expired instead of leaving it pending indefinitely.creditor_reconcile-> optional, boolean - while the payment is in anexecuted/settledstate, an active status check additionally consults Salt Edge's own reconciliation status to resolve it to a definitive success or failure, instead of trusting the primary status alone.refresh_request_enable-> optional, boolean - if the payment is still pending after Salt Edge's own refresh-timeout window, an active status check proactively asks Salt Edge to refresh the status from the bank before reporting the result.use_reference_id_as_description-> optional, boolean - sends your provider reference ID as the payment description instead of your transaction descriptor or thedescriptionConstant.oauth_type-> optional, enum - advanced parameter controlling how the specific bank is selected in Salt Edge's widget; not available for the named-bank services. Confirm with your account manager which value applies to your setup.ftd_scoring-> optional, boolean - routes the request through Salt Edge's first-time-depositor risk-scoring endpoint instead of the standard one; not available for the named-bank services.
Constants (your receiving bank account)
Unlike most connectors, most of these Constants aren't fallback values - they're the only way Salt Edge learns where to send the money, since the API request never carries your own bank details. Configure them once per currency/service.
Available constants (constant -> meaning)
creditor_name-> your account/business name.creditor_iban-> your IBAN (all services exceptfaster_payments_gbp_hpp).creditor_sort_code,creditor_account_number-> your sort code and account number (faster_payments_gbp_hpponly, instead of IBAN).debtor_sort_code-> a default payer sort code (faster_payments_gbp_hpponly, when not resolved from the request).creditor_bic-> your bank's BIC/SWIFT code.creditor_agent_name-> your bank's name.creditor_address,creditor_street_name,creditor_building_number,creditor_post_code,creditor_town,creditor_region,creditor_country_code-> your registered business address, broken into parts.description-> fallback payment description, used unlessuse_reference_id_as_descriptionis enabled or your own transaction descriptor is set.
Refunds
This connector does not support refunds.
Additional info
- Callback routing is automatic - Corefy generates the callback/return URLs per transaction, nothing to configure in Salt Edge's own back-office.
- Active reconciliation is available - Payments support an active status request, in addition to the asynchronous callback.
- No payouts - this connector does not support payouts through Corefy.
FAQ / Troubleshooting
- Invalid credentials / auth error -> verify App ID/Secret and the uploaded Public Key/Private Key for the selected environment
- Payment fails with no receiving account configured -> make sure the Constants for your currency/service (IBAN or sort code + account number, plus name) are set
- Payment stuck in pending after the bank executed it -> consider
treat_executed_as_finalorcreditor_reconcile, depending on whether you need immediate finality or a double-checked one - Refund request fails -> refunds aren't supported by this connector
- Currency or service is not supported -> confirm allowed methods in your Salt Edge account and in Corefy
Question
Still looking for help connecting your Salt Edge account? Please contact our support team!