Trustly
DC Integration option
Payment
Payment Flow
- The customer initiates the payment on the merchant's website.
- The merchant sends a payment request to PaySage.io.
- PaySage.io responds with a link to the payment page.
- The merchant redirects the customer to the payment page.
- The customer completes the payment.
- PaySage.io sends a webhook notification with the payment status to the merchant.
Info
This integration option supports only DKK
, EUR
, GBP
, NOK
and SEK
currencies.
Request
Send a payment request with the following additional data:
Parameter | Type | Description |
---|---|---|
request | object | |
return_url * required |
string | URL to return the customer to when the transaction is completed. |
ip | string | The customer's IP address. |
method | object | A section of the payment method information. |
type * required |
string | trustly |
customer | object | A section of the customer details. |
first_name * required |
string | The customer's first name. |
last_name * required |
string | The customer's last name. |
country * required |
string (2) | The customer's country in the ISO 3166-1 Alpha-2 format. For example, ES . |
external_id * required |
string | The customer's identifier in the merchant's system. |
string | The customer's email address. | |
phone | string | The customer's phone number. |
city | string | The customer's billing city. |
address | string | The customer's billing address. |
zip | string | The customer's billing ZIP or postal code. |
birth_date | string | The customer's date of birth in the ISO 8601 format (YYYY-MM-DD). |
Request example
{
"request": {
"amount": 500,
"currency": "EUR",
"description": "description",
"test": true,
"return_url": "https://return.com",
"language": "en",
"customer": {
"first_name": "John",
"last_name": "Doe",
"country": "ES",
"external_id": "1306999j"
},
"method": {
"type": "trustly"
}
}
}
Response
Redirect your customer to the URL received as the value of the form.action
parameter.
Response example
{
"transaction": {
"uid": "d210921d-092e-4a04-b8b7-add19669e234",
"type": "payment",
"status": "pending",
"amount": 500,
"currency": "EUR",
"description": "description",
"created_at": "2025-04-07T09:49:22Z",
"updated_at": "2025-04-07T09:49:23Z",
"method_type": "trustly",
"receipt_url": "https://backoffice.paysage.io/customer/transactions/d210921d-092e-4a04-b8b7-add19669e234/987099812e37868ad17a102557b98c9103b62401b2b2e8e8cdb4d7c8d73f7cdf?language=en",
"payment": {
"status": "pending",
"gateway_id": 5220,
"ref_id": "5b5d36630263200a4982",
"message": "Transaction was initialized."
},
"trustly": {
"type": "trustly"
},
"customer": {
"first_name": "John",
"last_name": "Doe",
"country": "ES",
"external_id": "1306999j",
"email": null,
"ip": null
},
"manually_corrected_at": null,
"version": 0,
"message": "Transaction was initialized.",
"test": true,
"language": "en",
"billing_address": {
"first_name": "John",
"last_name": "Doe",
"country": "ES"
},
"additional_data": {
"payment_method": {
"type": "alternative"
}
},
"gateway": {
"iframe": false
},
"form": {
"action": "link-to-payment-page",
"method": "GET",
"fields": []
}
}
}
Refund
Request
Send a standard refund request. The amount
value must not exceed the amount of the parent transaction. It is possible to make multiple refunds for the same payment transaction, in this case the sum of refund amounts must not exceed the amount of the corresponding payment transaction.
PG Integration option
Payment
Payment Flow
- The customer initiates the payment on the merchant's website.
- The merchant sends a payment request to PaySage.io.
- PaySage.io responds with a link to the payment page.
- The merchant redirects the customer to the payment page.
- The customer completes the payment.
- PaySage.io sends a webhook notification with the payment status to the merchant.
Info
This integration option supports only DKK
, EUR
, GBP
, NOK
and SEK
currencies.
Request
Send a payment request with the following additional data:
Parameter | Type | Description |
---|---|---|
request | object | |
return_url * required |
string | URL to return the customer to when the transaction is completed. |
ip | string | The customer's IP address. |
method | object | A section of the payment method information. |
type * required |
string | trustly |
customer | object | A section of the customer details. |
first_name * required |
string | The customer's first name. |
last_name * required |
string | The customer's last name. |
country * required |
string (2) | The customer's country in the ISO 3166-1 Alpha-2 format. For example, ES . |
external_id * required |
string | The customer's identifier in the merchant's system. |
string | The customer's email address. | |
phone | string | The customer's phone number. |
city | string | The customer's billing city. |
address | string | The customer's billing address. |
zip | string | The customer's billing ZIP or postal code. |
birth_date | string | The customer's date of birth in the ISO 8601 format (YYYY-MM-DD). |
Request example
{
"request": {
"amount": 500,
"currency": "EUR",
"description": "description",
"test": true,
"return_url": "https://return.com",
"language": "en",
"customer": {
"first_name": "John",
"last_name": "Doe",
"country": "ES",
"external_id": "1306999j"
},
"method": {
"type": "trustly"
}
}
}
Response
Redirect your customer to the URL received as the value of the form.action
parameter.
Response example
{
"transaction": {
"uid": "d210921d-092e-4a04-b8b7-add19669e234",
"type": "payment",
"status": "pending",
"amount": 500,
"currency": "EUR",
"description": "description",
"created_at": "2025-04-07T09:49:22Z",
"updated_at": "2025-04-07T09:49:23Z",
"method_type": "trustly",
"receipt_url": "https://backoffice.paysage.io/customer/transactions/d210921d-092e-4a04-b8b7-add19669e234/987099812e37868ad17a102557b98c9103b62401b2b2e8e8cdb4d7c8d73f7cdf?language=en",
"payment": {
"status": "pending",
"gateway_id": 5220,
"ref_id": "5b5d36630263200a4982",
"message": "Transaction was initialized."
},
"trustly": {
"type": "trustly"
},
"customer": {
"first_name": "John",
"last_name": "Doe",
"country": "ES",
"external_id": "1306999j",
"email": null,
"ip": null
},
"manually_corrected_at": null,
"version": 0,
"message": "Transaction was initialized.",
"test": true,
"language": "en",
"billing_address": {
"first_name": "John",
"last_name": "Doe",
"country": "ES"
},
"additional_data": {
"payment_method": {
"type": "alternative"
}
},
"gateway": {
"iframe": false
},
"form": {
"action": "link-to-payment-page",
"method": "GET",
"fields": []
}
}
}
Refund
Request
Send a standard refund request. The amount
value must not exceed the amount of the parent transaction. It is possible to make multiple refunds for the same payment transaction, in this case the sum of refund amounts must not exceed the amount of the corresponding payment transaction.