For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Dashboard
GuidesAPI ReferenceSDKs
GuidesAPI ReferenceSDKs
  • Get Started
    • Overview and Solutions
    • Choose an Integration
    • Quickstart
    • Branding Guidelines
    • Get Support
  • Accept Payments
    • Instant Payments
    • Trustly Pay
    • Recurring Payments
    • Scan and Pay
    • Remember Me
    • Payment Integration Checklist
  • Send Money
    • Send Payouts Using Online Banking
    • Send Payouts Using Account Information
    • International Transfers
  • Retrieve Data
    • Verify Accounts Using Online Banking
    • Verify Accounts Using Micro-Deposits
    • Retrieve Bank and User Information
    • Tokenize Bank Information
    • Trustly ID
    • Insights Data
  • Core Concepts
    • Key Concepts
    • The Establish Data Object
    • Transactions and Transaction IDs
    • Tokens and Account Security
    • Redirect URLs and Return Flow
    • Webhooks and Events
    • Content Strings
  • API Fundamentals
    • Authentication and OAuth
    • Secure Requests and Signature Validation
    • Idempotency
    • Testing
    • Status codes and type definitions
  • Manage Your Integration
    • Go-Live Checklist
    • Merchant Portal
    • Reports and Reconciliation
    • Refresh Bank Authorization
    • Override Risk Declines
    • VIP Tiers
    • Financial Institution Status
Dashboard
Products
PaymentsDataPayouts
Company
AboutCareersContact Sales

Terms of Use | Privacy Policy | © 2026 Trustly, Inc.

Developer-friendly docs for your API
GitHub|Contact Support|Business Help Center|Merchant Portal
Terms of Use|Privacy Policy|© 2026 Trustly, Inc.
Developer-friendly docs for your API
LogoLogo
North AmericaEurope
North AmericaEurope
On this page
  • Usage
  • Parameter reference
  • Object definitions
  • Recurrence object
  • Account object
  • Customer object
  • Verification object
  • Address object
  • Driver license object
  • Metadata object
  • CLC object
Core Concepts

Establish Data object

|View as Markdown|Open in Claude|
Was this page helpful?
Previous

Key concepts

Next

Transaction ID

Built with

The Establish Data object consolidates the merchant credentials, transaction details, and customer data needed to authorize transactions securely and reliably.

With a correctly configured Establish Data object, you’ll be able to launch the Trustly UI (Lightbox or Select Bank Widget), and allow your customers to authorize payments or share bank data. Once the workflow is complete, you’re ready to handle payments or retrieve data with the Trustly APIs.

To integrate the JavaScript SDK (Web) or Mobile SDK required to launch the Trustly UI, see Integrate the client-side SDK.

Usage

The establishData object is passed to the selectBankWidget or establish functions and is used to initialize the Bank Authorization for further processing.

The primary method for initiating an authorization transaction is through the built-in methods of the Trustly UI libraries: establish and selectBankWidget. These methods both require the Establish Data as a parameter.

Parameter reference

The Establish Data object includes all required and optional parameters, grouped for clarity. Optional parameters may be required based on the paymentType and merchant conditions.

ParameterTypeRequiredDescription
accessIdStringTrueYour client application Access ID (provided by Trustly).
merchantIdStringTrueYour Trustly Merchant ID (provided by Trustly).
requestSignatureStringTrueRequest Signature used to secure the request. See Securing Requests for more information.
merchantReferenceStringTrueA unique identifier representing the transaction in your system (e.g., Order number or Payment ID).
returnUrlStringTrueRedirect URL to be called when a user successfully creates a bank authorization (Success URL).
cancelUrlStringTrueRedirect URL to be called when a user cancels from the Lightbox or the bank authorization is otherwise unsuccessful (Failure URL).
paymentTypeStringFalseSpecifies the type of transaction to create. Possible values are Deferred, Disbursement, Recurring, Verification, and Retrieval. Default value is Retrieval if not otherwise provided.
notificationUrlStringFalseNotification URL for Trustly to send events/webhooks associated with this transaction. Overrides the default configured URL.
amountFloat*Required for Instant payments. For Deferred payments, this is an optional limit for future capture transactions (10 character max).
currencyString*3-letter ISO Currency Code (e.g., USD or CAD). Required if amount is present.
descriptionString*A summary description of the order. Do not pass Consumer PII in this field.
displayAmountStringFalseThe amount displayed to the user during the Lightbox experience. This is for display purposes only and has no impact on the actual authorization.
customerObjectTrueCustomer associated with the payment. See [Customer Object].
recurrenceObject*Required if paymentType is Recurring. Configuration options for recurring payments. See Recurrence Object.
metadataObjectFalseUsed to customize components of the Trustly Lightbox. See [MetaData Object].
allowedPaymentProviderTypesArray(String)FalseUsed to limit payment provider types. Possible values: 1 (Online Banking) and 2 (Manual Electronic Check).
paymentProviderIdStringFalseIf provided, the Lightbox opens directly to the FI login page. ID must be retrieved from the List Payment Providers API.
addressObjectFalseShipping address, required if different from the customer’s billing address. See Address Object.
accountObjectFalseAccount information. Required if paymentType is Verification and a transactionId is not passed. See Account Object.
authTokenStringFalseValue is new. Required if paymentType is Verification and transactionId is passed.
transactionIdStringFalsePrevious transactionId that needs to be verified (e.g., split token refresh). Required if paymentType is Verification.
verificationObjectFalseUsed to set parameters for the fraud analysis engine. See [Verification Object].

Note: Most payment properties (amount, currency, description, customer) are required if paymentType is set to Deferred, Disbursement, Instant, or Recurring.

1{
2 "merchantId": "YOUR_MERCHANT_ID",
3 "accessId": "YOUR_ACCESS_ID",
4 "requestSignature": "{requestSignature}",
5 "merchantReference": "{unique_merchant_payment_identifier}",
6 "description": "any additional user-friendly descriptive information for the payment",
7 "paymentType": "Deferred",
8 "currency": "USD",
9 "amount": "0.00",
10 "customer": {
11 "name": "Joe User",
12 "email": "joe.user@email.com",
13 "address": {
14 "address1": "2000 Broadway St",
15 "city": "Redwood City",
16 "state": "CA",
17 "zip": "94063",
18 "country": "US"
19 }
20 },
21 "returnUrl": "https://yourapp.com/path/return",
22 "cancelUrl": "https://yourapp.com/path/cancel"
23}

Object definitions

The following objects define the nested data structures required for submitting customer details, verification data, and recurrence rules.

Recurrence object

See Capture Transaction for more information on Recurring Payments.

ParameterTypeRequiredDescription
frequencyUnitNumberTrueUnit that defines the frequency of payments based on the frequencyUnitType.
frequencyUnitTypeNumberTrueCode that defines the frequency unit type (1: day, 2: week, 3: month, 4: year).
recurringAmountStringTruePayment amount for each scheduled payment. (10 characters, 2 decimal places max).
automaticCaptureBooleanTrueSpecifies if Trustly automatically processes the payment per schedule, or if a Capture API request is required.
startDateUnix TimestampFalseStart date of the recurring payment (defaults to the date of authorization).
endDateUnix TimestampFalseEnd date of the recurring payment (continues until authorization is canceled if not specified).
frequencyNumberFalseUnit that defines how many payments should be made per Frequency Unit (Defaults to 1).

Account object

ParameterTypeRequiredDescription
accountNumberStringTrueBank Account Number.
ibanStringFalseStandardized account number for global transfers. Conditionally, only use with paymentType verification and don’t include an account number and routing number.
routingNumberStringTrueBank Routing Number.
typeNumberTrueFinancial Institution Account Type.

Customer object

ParameterTypeRequiredDescription
externalIdStringTrueYour external identifier for the Customer.
nameStringTrueUser’s full name.
addressObjectTrueAddress object representing the User’s address.
enrollDateUnix TimestampTrueDate of the user’s first transaction in your system (Unix Timestamp in ms).
taxIdString*Customer tax ID (for example, SSN, SIN). May be required depending on industry and location.
phoneStringTrueUser’s phone number in ITU E.164 format.
emailStringTrueUser’s email address.
dateOfBirthString*User’s date of birth (i.e. ‘1965-01-23’).
driverLicenseObjectFalseUser’s Drivers License number. See [Driver License Object].
vipStringFalseVIP status or tier. See VIP tiers.
balanceStringFalseUser’s current balance in your system (10 characters, 2 decimal places max).
currencyStringFalse3-character ISO Currency Code of the User’s balance.

Verification object

ParameterTypeRequiredDescription
verifyCustomerBooleanTrueIf true, Trustly only allows the transaction if the passed customer name and zip code match the data provided by the User’s selected Bank Account.

Address object

ParameterTypeRequiredDescription
zipStringTrueAddress zip (5 digit US Zip Code).
address1StringTrueAddress Line 1.
address2StringFalseAddress Line 2.
cityStringTrueAddress City.
stateStringTrueAddress State (2 character ISO code).
countryStringTrueAddress Country (ISO 3166 Country Code).

Driver license object

ParameterTypeRequiredDescription
numberStringTrueUser’s Drivers License number.
stateStringTrue2-character ISO State code where the User’s Drivers License was issued.

Metadata object

Additional data used for less common scenarios can be provided in the Metadata object.

The universalLink and deepLinkStrategy parameters are optional if you have already configured default values in the Admin Console. Any values provided here will override the defaults.

ParameterTypeDescription
langStringConfigures the Lightbox language ({ISO 639 Language Code}_{ISO 3166 Country Code}, e.g., de_DE). Defaults to en_US.
flowTypeStringConfigures the Lightbox to utilize a specific pre-configured user flow. Contact your Trustly point of contact for options.
finishButtonLabelTypeStringDynamically changes the final button label in the Lightbox. Valid options are: continue (Default), deposit, withdraw, pay.
integrationContextStringConfigures Trustly UI to handle OAuth bank login flows in mobile applications. Accepted values are InAppBrowser, InAppBrowserNotify and ExternalBrowser. See the OAuth and Mobile apps guide.
urlSchemeStringThe URL associated with your mobile application used for redirects on success or failure. See the OAuth and Mobile apps guide.
universalLinkStringThe Universal Link (iOS) or App Link (Android) used to redirect the user back to the merchant’s app.
deepLinkStrategyStringSpecifies the strategy used for deep linking. Accepted values are url-scheme or universal-link.
clcObjectIdentifying data for Trustly In-Person transactions. Requires Trustly In-Person configurations. See CLC Object

CLC object

If configured for Trustly In-Person, the CLC object is required.

ParameterTypeRequiredDescription
propertyIdStringTrueID number for property or location.
gamingAssetNumberStringTrueID number specific to Electronic Wagering System.
datetimeQRStringTrueTimestamp of QR code generation.
playerCardNumberStringFalsePlayer tracking number.