Trustly provides payments directly from bank accounts in Europe, and is a popular way to pay in the Nordic countries. With Trustly, you can offer customers who prefer not to pay with cards a way to pay online using their bank accounts.
|Payment type||Online banking|
|Payin countries||Austria, Denmark, Estonia, Finland, Germany, Latvia, Lithuania, Netherlands, Norway, Spain, Sweden, United Kingdom|
|Payout countries||Austria, Belgium, Bulgaria, Croatia, Cyprus, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Norway, Poland, Portugal, Romania, Slovakia, Slovenia, Spain, Sweden, United Kingdom|
|Customer currencies||BGN, CZK, DKK, EUR, GBP, HRK, HUF, NOK, PLN, RON, SEK|
|Processing currencies||BGN, CZK, DKK, EUR, GBP, HRK, HUF, NOK, PLN, RON, SEK|
|Settlement currencies||EUR, GBP, SEK, DKK, PLN|
How to pay with Trustly
- Customers are redirected to a Trustly-hosted payment page where they see a list of available banks in their country.
- They select their bank and are prompted to provide their online banking log-in credentials and authenticate as they would when logging into their online bank account.
- They select the account from where they want to make the payment and are prompted to provide a one-time code to confirm the payment.
- After they complete the payment, they are redirected back to your website or app.
If you want to use Trustly logos in your marketing materials or on the checkout page, please use official guidelines from Trustly. Trustly’s design guidelines has different logo formats and designs which can be used in your materials.
Step 1. Make a transaction request
From your server, make a POST /payment_preauthorize request.
Include in request:
merchantid: The merchant identification number.
orderid: The field orderid is optional and exclusively for the merchants convenience.
amount: The amount field contains the transaction’s total amount. This is the amount that will be transmitted to the authorizing system.
currency: The currency field contains the alphanumeric currency code for the transaction, according to ISO 4217, e.g. EUR, USD, AUD, CAD, NOK, SEK, CHF.
payment_method: The payment method id - 116.
signature: The signature field contains a 40-figure hexadecimal value. This signature value is a checksum designed to protect the merchant account from unauthorized access.
language: This parameter determines the language in which Trustly pages will be shown
valid values: da de en es et fi fr lt lv nl no pl ru sk sv.
country: Customer country in ISO Alpha-3 format. Supported countries: AUT, BEL, CZE, DEU, DNK, EST, ESP, FIN, GBR, LTU, LVA, NLD, NOR, POL, SWE, SVK.
url_success: Success transaction URL
url_failed: Failed transaction URL
You can see a full list of parameters in Pre-Authorization.
Redirection to url_return does not confirm that the transaction is successful. Always check the transaction via notification_url or use diagnose interface to get the final status of the transaction.
/payment_preauthorize&merchantid=8b22a30sdjkldsjfkldjsfk9e79e72ac2b875b14&orderid=fdfdfg7e3f35f0& amount=1000.00¤cy=EUR&payment_method=116&url_success=https%3A%2F%2Fgateway.merchant_url.com %2Fbackdirect%2Fsuccess%2FCO-69ab-f0cc-a997-5a95-5d5c-c4ca%2F6eebd443fb407e3f35f0& url_failed=https%3A%2F%2Fgateway.merchant_url.com%2Fba ckdirect%2Ferror%2FCO-69ab-f0cc-a997-5a95-5d5c-c4ca%2F6eebd443fb407e3f35f0& notification_url=https%3A%2F%2Fgateway.merchant_url.com%2Fpostback%2FCO-69ab-f0cc-a997-5a95-5d5c-c4ca%2F6eebd443fb407e3f35f0&url_return=https%3A%2F%2Fgateway.ixo pay.com%2Fbackdirect%2Fsuccess%2FCO-69ab-f0cc-a997-5a95-5d5c-c4ca%2F6eebd443fb407e3f35f0& language=en&firstname=muster&lastname=mann&country=LTU&email=some_email%40mail.ru& customerid=16064844&custom1=17425882&signature=641fae105559d7cca133d7ace0bcf5ebb9c5cdcf
Step 2. Handle the redirect
To complete the payment, you need to redirect the customer to the correct URL in the response.
After the client completed payment on the Trustly side, he will be redirected back to your
Additionally, you will get a notification to provided notification_url, which should be used to update statuses in your system.
"transactionid=116033311&type=capture&security=67cf6863d378sdfdsfdsaeb91dc5a9c072f7f1& errormessage=& errorcode=0&orderid=743222831" "https://www.notification_url"
When the customer finished or canceled the payment, he will be redirected back to
url_return, provided by you in the initial request to payment_preauthorize. After that, you will receive a notification, posted to
notification_url, with the final transaction status, which you suppose to use to update your system.
Notification URL can be configured by our tech support team in your account on our side,
or you can send it as a parameter
notification_url in the initial request to
notification_urlshould be provided by you to payabl. technical team.
Notification example with additional account parameters.
"bank_number=70440&account_number=LTXXXXXXXXXXXXXX4024&payment_state=credited&bank_name=SEB& errormessage=&type=capture&transactionid=116033311&account_holder=muster+mann& bank_country=LITHUANIA×tamp=1605788760& security=19667fb6d9d2f3c8457e29d949f72319a9986b88b0be47050d9fc49f746d279b&orderid=6eebd443fb407e3f35f0&errorcode=0" "https://www.notification_url"
Trustly supports refunds and can be initiated only on a successful captured transaction.
The request will send a credit note to the authorization system after the customer has already been charged. The refund amount will be credited to the customer and the merchant’s account will be charged.
The refund can be done in two ways:
- Through API integration
- Through payabl. dashboard
If you have API integration, you can check more in our documentation Refund.
Trustly payout allows merchants to send funds to any bank account from listed countries via wire transfer. This can be done for customers who already have a deposit through the Trustly system or when the merchant has the bank details of the customer.
This is a server-to-server API request with no callbacks/webhooks.
The payout request through Trustly can be done in two ways:
- Payout based on an existing transaction
- New account details.
Based on an existing transaction
Merchant can choose an existing successful deposit or CFT transaction ID to automatically extract the account details for payouts.
After you send a payout request, the system will validate your current balance. If your balance is sufficient then the transaction will be sent to Trustly for processing.
payabl. will send you a response letting you know if the payout was successful or not.
New account details
Merchant (non-gambling) can also send funds to accounts of customers that do not have an associated transaction id. For this, the account details need to be sent via API. Please pay attention to the country list table for information on the formatting of the account number field as it can contain IBANs.
accountnumber: IBAN or bank account number.
banknumber: This parameter is an option if IBAN is sent.
bankcountry: 2 digit ISO country code of the recipient’s bank. Please check the table below for support countries.
birthday: The customer's date of birth.
payabl. will send you a response.
In case an error occurs when processing the payout, a notification will be sent to the provided Notification URL so that you can flag the payout as failed in your system. Note that the notification will be sent AFTER the synchronous response has been sent.
There are 2 main reasons why a payout can fail after the response has been sent:
- There are not enough funds on the merchant’s account. In this case, the notification will be sent immediately after the payout request has been received.
- The funds are sent to the end user’s bank account, but then later Trustly is notified by the bank that the transfer failed, for example, if the recipient’s bank account has been closed. This is usually very uncommon, but if it happens the notification can be sent several days after the payout request was sent.
Sample failed notification:
Some IBAN/Account numbers to test Payouts:
Finland, Nordea – FI2618203060000015
Sweden, Swedbank – 8327960000015
Denmark, Danske Bank- 50006000000003
Supported countries for payout
|BANK COUNTRY||BANKNUMBER [REGEX]||ACCOUNTNUMBER [REGEX]|
Our Technical Support team is there to help you:
Email: [email protected]
Available Monday – Friday between 09:00 and 17:00 CET/CEST
Updated 2 months ago