Skip to content

Last Updated: 01 October 2025 | Change Log

Trustly

A secure online payment transfer.

Note

Make yourself familiar with our API principles to ensure a resilient integration.

Product overview

Feature summary

Payment typeRecurringReversalsPartial reversals
Bank Transfer
  • Refund - yes
  • Cancel- No
  • Partial refund - yes
  • Partial cancel- No

Acceptance currencies

CurrencyCurrency codes
Bulgarian LevaBGN
Czech KorunaCZK
Danish KroneDKK
EuroEUR
Polish zlotyPLN
Pound SterlingGBP
Norwegian KroneNOK
Romanian LeuRON
Swedish KronaSEK
  • Minimum Transaction Value: 1,00 for each currency
  • Maximum Transaction Value: 10.000 EUR or currency equivalent

Get started

Get started using our API reference and set your headers.


Request

POST https://try.access.worldpay.com/apmPayments

Example request

application/json
{ "transactionReference": "Memory265-13/08/1876", "merchant": { "entity": "default" }, "instruction": { "method": "trustly", "value": { "amount": 2000, "currency": "EUR" }, "narrative": { "line1": "Joe Plumbing Ltd" }, "paymentInstrument": { "type": "direct", "country": "IT" }, "resultUrls": { "pending": "https://worldpay.com/pending", "success": "https://worldpay.com/success", "cancel": "https://worldpay.com/cancel" }, "customer": { "email": "shopper@worldpay.com" } } }

Parameters

transactionReferencestring[ 1 .. 64 ] characters^[a-zA-Z0-9\-_/!@#$%()*=.:;?\[\]{}~+]*$required
merchantobject(MerchantV2)required
merchant.​entitystring[ 3 .. 32 ] characters^([a-zA-Z0-9\- ]*)$required

Used to route the request in Access Worldpay, created as part of on-boarding.

Example: "default"
instructionobject(InstructionV2)required

Object that contains the payment type and details.

instruction.​methodstringrequired

Type of payment method

Value"ach"
Discriminator
instruction.​valueobject(Value)required

The value of the payment.

instruction.​value.​amountinteger(int64)[ 1 .. 2147483647 ]required

The amount in the lowest denomination of the currency e.g. pennies for GBP, cents for USD.

Example: 12
instruction.​value.​currencystringrequired
Enum"AED""AFN""ANG""AOA""ARS""AUD""AWG""AZN""BAM""BBD"
instruction.​narrativeobject(NarrativeBase)required
instruction.​narrative.​line1string[ 1 .. 24 ] characters^[a-zA-Z0-9-., ]*$required

The description shown on your customer's bank statement for the payment.

Example: "MindPalace"
instruction.​paymentInstrumentobject(AchEftPaymentInstrumentV2)required
instruction.​paymentInstrument.​typestringrequired

The type of instrument.

Value"direct"
instruction.​paymentInstrument.​accountTypestringrequired

Account type.

Enum"checking""savings""corporate""corporateSavings"
Example: "checking"
instruction.​paymentInstrument.​accountNumberstring[ 1 .. 17 ] characters^[0-9]*$required

Account number of direct debit account.

Example: "123456789"
instruction.​paymentInstrument.​routingNumberstring= 9 characters^[0-9]*$required

Routing number of direct debit account.

Example: "123456789"
instruction.​paymentInstrument.​checkNumberstring[ 1 .. 15 ] characters^[0-9]*$

Check number of the direct debit account.

Example: "123456789"
instruction.​paymentInstrument.​companyNamestring[ 1 .. 40 ] characters^[0-9]*$

Company name if a corporate account.

Example: "123456789"
instruction.​paymentInstrument.​billingAddressobject(AchEftBillingAddress)required
instruction.​paymentInstrument.​billingAddress.​address1string[ 1 .. 80 ] characters
instruction.​paymentInstrument.​billingAddress.​address2string[ 1 .. 80 ] characters
instruction.​paymentInstrument.​billingAddress.​address3string[ 1 .. 80 ] characters
instruction.​paymentInstrument.​billingAddress.​citystring[ 1 .. 50 ] characters

City.

instruction.​paymentInstrument.​billingAddress.​countryCodestring
Enum"AD""AE""AF""AG""AI""AL""AM""AN""AO""AQ"
instruction.​paymentInstrument.​billingAddress.​postalCodestring[ 1 .. 15 ] characters

Postal code.

instruction.​paymentInstrument.​billingAddress.​statestring[ 1 .. 30 ] characters

State code of the billing address in ISO 3166-2 format.

Example: "US-OH"
instruction.​customerobject(CustomerDetailsAch)required
instruction.​customer.​firstNamestring[ 1 .. 22 ] charactersrequired

Your customer's first name.

instruction.​customer.​lastNamestring[ 1 .. 22 ] charactersrequired

Your customer's last name.

instruction.​customer.​customerIdstring<= 15 characters^[a-zA-Z0-9]*$

Your unique reference for the customer so that the 'pay faster next time' function can be used during checkout. This allows the shoppers chosen bank to be stored for their next payment.

Example: "44528abcd"
instruction.​customer.​emailstring

The customer's e-mail address.

Example: "customer@worldpay.com"

Response

Successful request response

  • an HTTP code 201
  • a paymentId which is unique to the payment - we recommend storing the "id", as you can use it to manage the payment later
  • a url to redirect your customer to the APM provider to complete the payment
  • a link to query the payment status
  • an object which will give flow information such as method (e.g. trustly) and type (direct)
  • a commandId generated by us identifying a single merchant interaction (e.g. cmdYNdIHBPJwbkjLiykzTx0)

Example response

{
  "paymentInstrument": {
    "method": "trustly",
    "type": "direct"
  },
  "paymentId": "eyJrIjoiYXBtLXNlcnZpY2UtZGVmYXVsdCIsImxpbmtWZXJzaW9uIjoiNi4wLjAifQ==.BnnxxcMle38OazhwbF8J+4rtJi8CAq:Y3zUOn1dw6VWfvx:PHL5L0S+5ara5vz6ouV5yBmVUQCiSwQjs+1x5qJIJxAKWMWc2Mlb1doricEYlzsZIRIGCflvnYu1Ns8g1S0+66n6wCELiB9OHfX7cdDZM8QaH19DiFbmMAchPSTyHNCTMvOMr7z:d61dLntVSAaFT9PiiV:KsP+z2Cdr9o:XFrnd4GNEHV7yDuZt9Jyqf5XZUPFYfD4fs2JzaCZKV3L7DQm7JfXl6rjXA0ubX6hJpY5kUX4Djm9+PFFKUS69VdPTc30HsveUM9XjnvE4YIx9jkBR3rQ+pDZRw+HYcrhKM2Ks:rlczHJ2DGe1:xPRqjBWEQYSfjhGO0ig5hWkD70cWvOUr9oNei3iC:3d01MiKXp01ZX4AeiXlWYKZF5hbcrjMRprcUptpLfoEB8QBFXfS8l+w00uMOJ3COd2qPA==",
  "lastEvent": "pending",
  "_links": {
    "self": {
      "href": "https://try.access.worldpay.com/apmPayments/eyJrIjoiYXBtLXNlcnZpY2UtZGVmYXVsdCIsImxpbmtWZXJzaW9uIjoiNi4wLjAifQ==.BnnxxcMle38OazhwbF8J+4rtJi8CAq:Y3zUOn1dw6VWfvx:PHL5L0S+5ara5vz6ouV5yBmVUQCiSwQjs+1x5qJIJxAKWMWc2Mlb1doricEYlzsZIRIGCflvnYu1Ns8g1S0+66n6wCELiB9OHfX7cdDZM8QaH19DiFbmMAchPSTyHNCTMvOMr7z:d61dLntVSAaFT9PiiV:KsP+z2Cdr9o:XFrnd4GNEHV7yDuZt9Jyqf5XZUPFYfD4fs2JzaCZKV3L7DQm7JfXl6rjXA0ubX6hJpY5kUX4Djm9+PFFKUS69VdPTc30HsveUM9XjnvE4YIx9jkBR3rQ+pDZRw+HYcrhKM2Ks:rlczHJ2DGe1:xPRqjBWEQYSfjhGO0ig5hWkD70cWvOUr9oNei3iC:3d01MiKXp01ZX4AeiXlWYKZF5hbcrjMRprcUptpLfoEB8QBFXfS8l+w00uMOJ3COd2qPA=="
    }
  },
  "_actions": {},
  "redirect": "http://secure-test.worldpay.com/redirect?tokenId=f1ff338b-a0d7-4a17-b64f-31b2b994391c",
  "commandId": "cmdKZ4gnUp1aNkfNi7Kmwi1N0"
}

Errors

Check out our API reference for the full error code schema.

Next steps


Manage your Trustly payment