Skip to content

Trustly

DC Integration option

Payment

Payment Flow

  1. The customer initiates the payment on the merchant's website.
  2. The merchant sends a payment request to PaySage.io.
  3. PaySage.io responds with a link to the payment page.
  4. The merchant redirects the customer to the payment page.
  5. The customer completes the payment.
  6. 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.
email 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

  1. The customer initiates the payment on the merchant's website.
  2. The merchant sends a payment request to PaySage.io.
  3. PaySage.io responds with a link to the payment page.
  4. The merchant redirects the customer to the payment page.
  5. The customer completes the payment.
  6. 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.
email 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.