Skip to content

Last Updated: 09 July 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"alipay_cn"
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(AlipayCnInstrumentV2)required
instruction.​paymentInstrument.​typestringrequired

Type of instruction

Value"direct"
instruction.​paymentInstrument.​languagestring

Your customer's language.

Enum"aa""ab""ae""af""ak""am""an""ar""as""av"
instruction.​resultUrlsobject(ResultUrlsAlipay)required
instruction.​resultUrls.​cancelstring

The URL your customer is redirected to, after a cancelled payment outcome.

Example: "https://worldpay.com/cancel"
instruction.​resultUrls.​failurestringrequired

The URL your customer is redirected to, after a failed payment outcome.

Example: "https://worldpay.com/failure"
instruction.​resultUrls.​pendingstringrequired

The URL your customer is redirected to, after a pending payment outcome.

Example: "https://worldpay.com/pending"
instruction.​resultUrls.​successstringrequired

The URL your customer is redirected to, after a successful payment outcome.

Example: "https://worldpay.com/success"
instruction.​deviceDataobject(DeviceData)
instruction.​customerobject(CustomerWithName)

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