openapi: 3.1.0 info: title: Trustly North America API version: 1.0.0 description: Trustly Pay by Bank REST API for the United States and Canada (Trustly Inc., formerly PayWithMyBank). Establish and authorize bank transactions, capture and deposit funds, send payouts, refund and cancel, tokenize and verify bank accounts, retrieve account data and Trustly ID identity details, manage customers and disputes, and receive event notifications (webhooks). Sandbox and production share one contract; only the host differs. contact: name: Trustly North America developer experience url: https://amer.developers.trustly.com/help email: amer.developer.experience@trustly.com termsOfService: https://www.trustly.com/about-us/terms-and-conditions x-api-evangelist-provenance: source: https://amer.developers.trustly.com/openapi.json fetched: '2026-09-18' note: Verbatim provider spec from the Fern-hosted docs (also linked from /.well-known/api-catalog as /openapi/api.yaml). info.title/description/contact/termsOfService added by API Evangelist from the provider docs; paths, schemas and webhooks untouched. Production server added from the Environment URLs table at https://amer.developers.trustly.com/integrate/api-fundamentals/testing. paths: /transactions/{transactionId}/accountSummary: get: operationId: accountData_get-transaction-account-summary summary: Get account activity summary description: 'Returns summarized and aggregated information about an account such as deposits, withdrawals and balances for various time periods. **Warning**
Please wait to receive the [DataReady](/api-reference/api/event-notifications/data-ready) event before calling this endpoint. Requests to this endpoint made prior to receiving the DataReady event can result in partial data being returned.' tags: - accountData parameters: - name: transactionId in: path description: Transaction ID retrieved from a Trustly Authorization transaction. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Account_Data_get-transaction-account-summary_Response_200' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Get-transaction-account-summaryRequestBadRequestError' security: - HTTPBasic: [] /transactions/{transactionId}/payment/paymentProvider/account/balance: get: operationId: accountData_get-transactions-account-balance summary: Get account balance description: 'Retrieves the details of an Account that was authorized for a Transaction. You need only supply the unique transactionId that was returned as part of a bank authorization. This is a restricted API and must be approved for usage by the Trustly Compliance team. **Note**
This endpoint retrieves data for the account selected during the Lightbox flow, which is already available once authorization completes. Waiting for the [DataReady](/api-reference/api/event-notifications/data-ready) event is not required to call this endpoint — DataReady signals completion of data retrieval for non-selected accounts and full account activity, not the selected account''s balance. **Note for International Financial Institutions**
In some geographies the `Account` object in the response for this API may contain additional properties. For example, the `taxId` returned for accounts from Brazilian institutions.' tags: - accountData parameters: - name: transactionId in: path description: Transaction ID retrieved from a Trustly Authorization transaction. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Account_Data_get-transactions-account-balance_Response_200' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Get-transactions-account-balanceRequestBadRequestError' security: - HTTPBasic: [] /transactions/{transactionId}/payment/paymentProvider/user: get: operationId: accountData_get-user summary: Get account users description: 'This endpoint retrieves users'' information from an Authorized Bank transaction. **Warning**
Please wait to receive the [DataReady](/api-reference/api/event-notifications/data-ready) event before calling this endpoint. Requests to this endpoint made prior to receiving the DataReady event can result in partial data being returned.' tags: - accountData parameters: - name: transactionId in: path description: Transaction ID retrieved from a Trustly Authorization transaction. required: true schema: type: string - name: expand in: query description: A field in the API response to be expanded in order for more details to be provided (e.g. customer.segmentedName). required: false schema: type: array items: $ref: '#/components/schemas/TransactionsTransactionIdPaymentPaymentProviderUserGetParametersExpandSchemaItems' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FIUser' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Get-userRequestBadRequestError' security: - HTTPBasic: [] /transactions/{transactionId}/payment/paymentProvider/accounts: get: operationId: accountData_list-selected-accounts summary: List all accounts description: 'Returns a list of all user-selected accounts associated with a given authorization transaction. **Warning**
Please wait to receive the [DataReady](/api-reference/api/event-notifications/data-ready) event before calling this endpoint. Requests to this endpoint made prior to receiving the DataReady event can result in partial data being returned.' tags: - accountData parameters: - name: transactionId in: path description: Transaction ID retrieved from a Trustly Authorization transaction. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Account_Data_list-selected-accounts_Response_200' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/List-selected-accountsRequestBadRequestError' security: - HTTPBasic: [] /feedback: post: operationId: accounts_post-account-feedback summary: Post account feedback description: "Utilize this endpoint to record feedback regarding the result of an ACH payment using the account information\ \ verified by Trustly during a Verification Transaction. This feedback data helps optimize account verification scores\ \ over time. It is **required** when using Trustly Connect. \n\n> **Note for Trustly Pay** \n> For apps using Trustly\ \ Pay, feedback should be provided on individual transactions rather than on the account. See [`/transactions/{id}/feedback`](ref:post-transaction-feedback)\ \ for transaction-specific feedback details." tags: - accounts responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Accounts_post-account-feedback_Response_200' '400': description: Invalid parameter content: application/json: schema: $ref: '#/components/schemas/BaseException' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/BaseException' requestBody: description: '' content: application/json: schema: type: object properties: merchantId: type: number format: double description: A unique Trustly merchant identifier. account: $ref: '#/components/schemas/FeedbackPostRequestBodyContentApplicationJsonSchemaAccount' description: The token is required only when account number and routing number are not sent and vice-versa. feedback: $ref: '#/components/schemas/Feedback' required: - merchantId - account - feedback security: - HTTPBasic: [] /accounts/tokenize: post: operationId: accounts_post-accounts-tokenize?-verifyAccount summary: Tokenize an account description: Convert legacy ACH ABA routing and account numbers or an International Bank Account Number (IBAN) into a verified token to meet NACHA requirements. tags: - accounts parameters: - name: verifyAccount in: query description: If true, Trustly will verify the provided account data. Default value is false. required: false schema: type: boolean default: false responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Accounts_post-accounts-tokenize_-verifyAccount_Response_200' '400': description: One of the request parameters is invalid (sending an invalid amount format string for example). content: application/json: schema: $ref: '#/components/schemas/Post-accounts-tokenize_-verifyAccountRequestBadRequestError' requestBody: description: '' content: application/json: schema: type: object properties: merchantId: type: string minLength: 1 account: $ref: '#/components/schemas/AccountsTokenizePostRequestBodyContentApplicationJsonSchemaAccount' required: - merchantId - account security: - HTTPBasic: [] /accounts/verify: post: operationId: accounts_get-accounts-verify summary: Verify an account description: Allows for verification of most global accounts by passing in an account object containing either bank routing and account numbers or an IBAN. tags: - accounts parameters: - name: expand in: query description: A field in the API response to be expanded in order for more details to be provided (e.g. account.paymentProvider). required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FinancialInstitutionAccount' '400': description: One of the request parameters is invalid (sending an invalid amount format string for example). content: application/json: schema: $ref: '#/components/schemas/Get-accounts-verifyRequestBadRequestError' requestBody: content: application/json: schema: type: object properties: merchantId: type: number format: double description: A unique Trustly merchant identifier. account: $ref: '#/components/schemas/AccountsVerifyPostRequestBodyContentApplicationJsonSchemaAccount' required: - merchantId - account security: - HTTPBasic: [] /countries: get: operationId: countries_get-countries summary: List countries description: Returns a list of all available products by country. tags: - countries parameters: - name: country in: query description: 2-character ISO code of the country for the bank account that was selected. Currently only the US, CA, UK, DE, and AU are supported. required: false schema: $ref: '#/components/schemas/CountriesGetParametersCountry' - name: paymentType in: query description: Returns the countries that support this Payment Type. required: false schema: type: string - name: paymentProvider.subType in: query description: Returns the countries that support this Payment Provider SubType required: false schema: type: string - name: enabled in: query description: If true, returns all countries that are currently supported. Default value is true. required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Countries_get-countries_Response_200' '400': description: One of the request parameters is invalid (sending an invalid amount format string for example). content: application/json: schema: $ref: '#/components/schemas/Get-countriesRequestBadRequestError' security: - HTTPBasic: [] /customers: post: operationId: customers_post-customers summary: Create or Update a Customer description: 'Creates a new customer record in the merchant account. In cases when the customer was not created at the time an Authorization was established, use this endpoint to register customer details, such as name, email, and optional metadata, to support your integration. If an existing `customerId` or `externalId` is provided, the specified customer will be updated with any new or updated properties. To remove properties of an existing customer, set the property to `null`. Before using this endpoint, it may be helpful to call [Get Customer by ID](ref:get-customers-customerid) to obtain the relevant customer object.' tags: - customers parameters: - name: externalId in: query description: The externalId that was passed when the Customer record was created. required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Customers_post-customers_Response_200' requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Customer' security: - HTTPBasic: [] get: operationId: customers_get-customers summary: Get Customers description: "Retrieves a list of customers associated with the merchant account. Use this endpoint to view customer\ \ details relevant to your integration. \n\n Results can be filtered by either the `externalId` or `customerId` properties\ \ in order to retrieve the details of a single customer using the unique `externalId` that was provided during customer\ \ creation. Other filtering and paging capabilities are not supported at this time." tags: - customers parameters: - name: externalId in: query description: The externalId that was passed when the Customer record was created. required: false schema: type: string - name: customerId in: query description: The identifier of the Customer to be retrieved. required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Customers_get-customers_Response_200' security: - HTTPBasic: [] /customers/{customerId}: get: operationId: customers_get-customers-customerId summary: Get Customer by ID description: Retrieves the details of a Customer using the unique `customerId` that was returned upon customer creation. tags: - customers parameters: - name: customerId in: path description: The identifier of the Customer to be retrieved. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Customers_get-customers-customerId_Response_200' security: - HTTPBasic: [] post: operationId: customers_post-customers-customerId summary: Update Customer by ID description: Updates the specified Customer by setting the values of the parameters on the customer object passed. Before calling this endpoint, it may be beneficial to call [Get Customer by ID](/api-reference/api/customers/get-customers-customer-id) to obtain a Customer Object. Change the desired fields in the Customer object and then modify the object before calling the update endpoint with the modified object. tags: - customers parameters: - name: customerId in: path description: The identifier of the Customer to be retrieved. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Customers_post-customers-customerId_Response_200' requestBody: content: application/json: schema: $ref: '#/components/schemas/Customer' security: - HTTPBasic: [] /collections/recovery/dispute: post: operationId: disputeManagement_post-dispute-recovery summary: Post a dispute description: This endpoint allows you to recover a retail dispute. The response includes key transaction information, such as the transaction status, as well as amounts, and account details for payment or authorization transactions. tags: - disputeManagement parameters: - name: Idempotency-Key in: header required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Transaction' '400': description: Invalid parameter content: application/json: schema: $ref: '#/components/schemas/BaseException' requestBody: content: application/json: schema: type: object properties: transactionId: type: string description: Transaction ID retrieved from a Trustly Dispute Webhook. amount: type: string maxLength: 10 description: The amount to be captured. If the value is omitted, the maximum allowed amount is captured. (maximum of 10 characters with support for 2 decimal places). required: - transactionId - amount security: - HTTPBasic: [] /transactions/{transactionId}/user: get: operationId: identity_get-trustly-id-user-data summary: Get user description: Retrieve the User object associated with the Trustly ID authorization transaction. tags: - identity parameters: - name: transactionId in: path description: Transaction ID retrieved from a Trustly Authorization transaction. required: true schema: type: string - name: expand in: query description: "A field in the API response to be expanded in order for more details to be provided.\nSupported values:\n\ \ * `segmentedName`: returns a segmented version of the name field returned in the response." required: false schema: type: array items: $ref: '#/components/schemas/TransactionsTransactionIdUserGetParametersExpandSchemaItems' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/User' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Get-trustly-id-user-dataRequestBadRequestError' security: - HTTPBasic: [] /transactions/{transactionId}/user/detail: get: operationId: identity_get-trustly-id-user-details summary: Get user verification details description: "Retrieve the verification results and details of a Trustly ID-enabled authorization transaction. The details\ \ returned by this endpoint are segmented into two lists: verifications and attributes. \n\nThe verification objects\ \ contain the `name` and `result` of the verification as well as reason codes and reason descriptions corresponding\ \ to the results. If a verification includes a sanction screening and a match was returned, the results of the screening\ \ will also be included. If no `screeningResults` property is returned in the verification object, no match was returned.\n\ >**Note:** Verifications are configured per application, check with your Trustly services team member for definitions\ \ of your configured verifications.\n\nThe attribute objects contain metadata which describe how the property was\ \ verified and a list of `verification` objects which apply to the attribute." tags: - identity parameters: - name: transactionId in: path description: Transaction ID retrieved from a Trustly Authorization transaction. required: true schema: type: string - name: expand in: query description: "A field in the API response to be expanded in order for more details to be provided.\nSupported values:\n\ \ * `verification`: returns human-readable reason rules and descriptions." required: false schema: type: array items: $ref: '#/components/schemas/TransactionsTransactionIdUserDetailGetParametersExpandSchemaItems' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UserVerificationDetail' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Get-trustly-id-user-detailsRequestBadRequestError' security: - HTTPBasic: [] /transactions/{transactionId}/feedback: post: operationId: identity_post-transaction-feedback summary: Update user status description: "This endpoint updates the status of a user by posting feedback data to Trustly for an authorized Identity\ \ transaction. This communicates to Trustly that the user associated with the transaction has been successfully registered\ \ in the merchant system, or that the user record has been voided and therefore will not be eligible for future payment\ \ transactions. \n\nTo confirm a user was registered, set properties `status` to `4`, `subStatus` to `559` and `description`\ \ to `Registered`. To void a user who did not complete registration after completing the Trustly ID flow, set `status`\ \ to `13`, `subStatus` to `558` and `description` to `Known bad user`. \n\nfor more information about Trustly ID,\ \ see [Verify identity with Trustly ID](/integrate/retrieve-data/trustly-id)." tags: - identity parameters: - name: transactionId in: path description: Transaction ID retrieved from a Trustly Authorization transaction. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Transaction' '401': description: Access not authorized content: application/json: schema: $ref: '#/components/schemas/Post-transaction-feedbackRequestUnauthorizedError' requestBody: content: application/json: schema: type: object properties: status: type: integer default: 4 subStatus: type: integer default: 559 description: type: string default: Registered security: - HTTPBasic: [] /customers/lookup: get: operationId: networkCheckApi_get-customer-lookup summary: Look up whether a user is known to Trustly description: 'Checks whether a user has previously used Trustly, based on one or more provided identifiers (email or phone). Merchants can use this endpoint without having to launch Trustly widget/lightbox. One such use case could be to use this endpoint early in the payment funnel — before the user reaches the payment selection screen — to determine whether to surface Trustly as the top payment option. A `true` response indicates the user is already familiar with Pay by Bank and is more likely to complete a Trustly-powered transaction. **How it works:** The lookup queries Trustly''s user database across all stored identifiers. If any provided identifier matches a known Trustly user, `isInTrustlyNetwork` is returned as `true`. **Authentication:** Requests must be authenticated with HTTP Basic Auth using your `accessId` as the username and `accessKey` as the password.' tags: - networkCheckApi parameters: - name: email in: query description: User's email address. required: true schema: type: string format: email - name: phone in: query description: User's phone number in ITU E.164 format. required: false schema: type: string responses: '200': description: Lookup result content: application/json: schema: $ref: '#/components/schemas/CustomerLookupResponse' '400': description: Bad Request — missing mandatory fields or invalid email content: application/json: schema: $ref: '#/components/schemas/CustomerLookupResponse' '401': description: Access not authorized content: application/json: schema: $ref: '#/components/schemas/Get-customer-lookupRequestUnauthorizedError' '500': description: Internal server error content: application/json: schema: description: Any type security: - HTTPBasic: [] /paymentProviders: get: operationId: paymentProviders_get-paymentProviders summary: List payment providers description: Returns a list of payment providers, filtered by country. It can be paged and filtered by appending arguments to the query string of the request. tags: - paymentProviders parameters: - name: countries in: query description: 2 character ISO Country code. There can be multiple instances of this query parameter to represent a list of countries. required: false schema: type: string - name: paymentType in: query description: Filters out payment providers not enabled for the specified payment type. Possible values are Instant, Deferred, Disbursement, Recurring, Verification, and Retrieval. required: false schema: type: string - name: startIndex in: query description: Returns payment providers from that offset. required: false schema: type: string - name: count in: query description: Returns the maximum number of payment providers specified by this field. required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Payment_Providers_get-paymentProviders_Response_200' security: - HTTPBasic: [] /payments: get: operationId: payments_list-payments summary: List payments description: Returns a list of transactions. It can be paged and filtered by appending arguments to the query string of the request. tags: - payments parameters: - name: paymentType in: query description: Returns payments of this Payment Type. It is possible to filter by multiple values by repeating this argument. required: false schema: type: array items: type: string - name: merchantReference in: query description: Returns transactions of the payments associated with this merchant reference. required: false schema: type: string - name: authorization.status in: query description: Returns transactions of the payments at this payment Authorization Status. required: false schema: type: array items: type: string - name: verification.status in: query description: Returns transactions of the payments at this payment Verification Status. required: false schema: type: array items: type: string - name: paymentId in: query description: Returns payments of this identification. required: false schema: type: string - name: merchant.merchantId in: query description: Returns payments by this merchant identification. required: false schema: type: string - name: description in: query description: Returns payments by description. required: false schema: type: string - name: paymentProvider.paymentProviderId in: query description: Returns payments by this payment provider identification. required: false schema: type: string - name: customer.customerId in: query description: Returns payments by this customer identification. required: false schema: type: string - name: fingerprint in: query description: Returns payments by this fingerprint. required: false schema: type: string - name: createdAt.start in: query description: Returns payments after this creation date required: false schema: type: string - name: createdAt.end in: query description: Returns payments before this creation date required: false schema: type: string - name: updatedAt.start in: query description: Returns payments after this update date required: false schema: type: string - name: updatedAt.end in: query description: Returns payments before this update date required: false schema: type: string - name: amount.min in: query description: Returns payments for that minimum amount. required: false schema: type: string - name: amount.max in: query description: Returns payments for that maximum amount. required: false schema: type: string - name: paid.min in: query description: Returns payments for that minimum paid. required: false schema: type: string - name: paid.max in: query description: Returns payments for that maximum paid. required: false schema: type: string - name: refunded.min in: query description: Returns payments with this minimum refund amount. required: false schema: type: string - name: refunded.max in: query description: Returns payments with this maximum refund amount. required: false schema: type: string - name: orderBy in: query description: List payments by order field. required: false schema: type: string - name: sortOrder in: query description: Returns payments by this sort order required: false schema: type: string - name: startIndex in: query description: Returns payments from that offset required: false schema: type: string - name: count in: query description: Returns the maximum number of payments specified by this field required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Payments_list-payments_Response_200' security: - HTTPBasic: [] /payments/{paymentId}: get: operationId: payments_get-payments summary: Retrieve payment description: Retrieves the details of a Payment. Supply the unique paymentId that was returned from your previous request, and Trustly will return the corresponding payment information. tags: - payments parameters: - name: paymentId in: path description: The identifier of the payment object to be retrieved. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Payment' security: - HTTPBasic: [] /transactions/{transactionId}/cancel: post: operationId: transactions_post-transactions-cancel summary: Cancel transaction description: 'Cancels an existing transaction that has not yet been processed. A cancellation should be issued as soon as you know the transaction will not be completed. A Deferred or Instant payment transaction can only be canceled before the payment processing cut-off time. If the Cancel request returns an error, a Refund call should be executed instead. Additionally, this endpoint can be used to cancel a Bank Authorization when a user revokes access to their bank from your application. If the bank authorization transaction is voided, further `/capture` or `/deposit` requests using the canceled transaction will not be permitted. Any outstanding transactions with a `pending` status related to the bank authorization will remain unchanged and must be canceled individually if necessary.' tags: - transactions parameters: - name: transactionId in: path description: Authorization Transaction ID retrieved from a Trustly Deferred or Recurring transaction. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Transaction' requestBody: description: '' content: application/json: schema: type: object properties: merchantReference: type: string description: A specific merchant reference for this cancellation. For example, this could be a merchant order number or the same merchant reference value used in the original establish call. message: type: string description: An optional message describing the reason for the cancellation. (maximum of 40 characters) reason: type: number format: double description: 'A specific reason code for this cancellation. ' signature: type: string description: 'A specific signature for this cancellation. ' security: - HTTPBasic: [] /transactions/{transactionId}/capture: post: operationId: transactions_post-transactions-transactionId-capture summary: Capture transaction description: "Capture collects money amounts (minimum of 0.99) from a customer bank account of a previously authorized\ \ transaction.\n\nThis operation creates a new transaction called a Capture transaction. It is linked to the payment\ \ you are partially or fully capturing.\n\nYou can issue multiple capture requests against a single Authorization.\ \ However, the sum of these captures must be less than or equal to what is allowed by the authorized payment.\n\n\ Ensure you also implement an Event Notification Handler to get transaction status updates. Although the splitToken\ \ field is optional at the API level, if you are using 'guaranteed' payments, omitting this field will result in a\ \ Fail event. When providing a splitToken, be sure the string is URL encoded.\n\n> **Note for Money Transfer** \n\ > If your application is configured for \"Money Transfer\" many properties in the `beneficiary` and `beneficiaryAccount`\ \ objects will be required. \n> See [Send money](/integrate/send-money) for more details." tags: - transactions parameters: - name: transactionId in: path description: Authorization Transaction ID retrieved from a Trustly Deferred or Recurring transaction, or Preauthorization Transaction ID retrieved from a Trustly Preauthorize API. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Transaction' requestBody: content: application/json: schema: type: object properties: merchantReference: type: string description: A specific merchant reference for this capture such as an order number. If your account is configured for idempotency, this value must be unique to prevent duplicate transactions. amount: type: string maxLength: 10 description: The amount to be captured. If the value is omitted, the maximum allowed amount is captured. (maximum of 10 characters with support for 2 decimal places) splitToken: type: string description: Encrypted token received from the Authorize event. Note, token may include url escape characters which must be encoded or the request will result in an error. beneficiaryAccount.iban: type: string pattern: ^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$ description: International Bank Account Number (IBAN) beneficiaryAccount.accountNumber: type: string maxLength: 12 description: Account Number beneficiaryAccount.paymentProvider.name: type: string maxLength: 35 description: Name of financial institution. 35 characters maximum. beneficiaryAccount.paymentProvider.swift: type: string minLength: 8 maxLength: 11 description: International SWIFT code of the payment provider beneficiaryAccount.paymentProvider.routingNumber: type: string pattern: ^[0-9]{9}$ maxLength: 9 description: Routing Number (9 digits)" beneficiaryAccount.paymentProvider.country: type: string minLength: 2 maxLength: 2 description: 2-letter ISO country code of the beneficiary financial institution beneficiary.name: type: string description: Customer full legal name beneficiary.email: type: string description: Customer email address beneficiary.dateOfBirth: type: string description: Customer date of birth beneficiary.taxId: type: string description: Customer tax ID (e.g. SSN [US], SIN [CA]) beneficiary.address.address1: type: string description: Street address of the beneficiary financial institution beneficiary.address.address2: type: string description: Street address line 2 of the beneficiary financial institution (if applicable) beneficiary.address.city: type: string description: City or Locality of the beneficiary financial institution beneficiary.address.state: type: string description: State or Province of the beneficiary financial institution beneficiary.address.zip: type: string description: ZIP or postal code of the beneficiary financial institution beneficiary.address.country: type: string minLength: 2 maxLength: 2 description: 2 character ISO Country code of the beneficiary financial institution metadata.remittance.withdrawalMethod: $ref: '#/components/schemas/TransactionsTransactionIdCapturePostRequestBodyContentApplicationXWwwFormUrlencodedSchemaMetadataRemittanceWithdrawalMethod' description: The method by which the recipient will receive the funds. interactionId: type: string description: Optional interaction ID parameter for Preauthorization and Capture APIs, inclusion of which signifies consumer interaction tied to data obtained from getTrustlyInteraction function. If not specified, Trustly assumes the consumer is present in session. Set to "consumerNotPresent" to signify that the transaction is merchant-initiated and the consumer is not present. required: - merchantReference - amount - splitToken security: - HTTPBasic: [] /transactions/{transactionId}/deposit: post: operationId: transactions_post-transactions-deposit summary: Deposit transaction description: 'Deposit sends money amounts (minimum of 0.99) to a customer bank account of a previously authorized Disbursement or Deferred transaction. This operation creates a new transaction called a Deposit transaction. It is linked to the disbursement payment. You can create multiple Deposit transactions against a single Disbursement or Deferred Authorization so long as the amount doesn''t exceed the total of the Authorization. Ensure you also implement an Event Notification Handler to get transaction status updates.' tags: - transactions parameters: - name: transactionId in: path description: Authorization Transaction ID retrieved from a Trustly Deferred or Disbursement Authorization. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Transaction' requestBody: description: '' content: application/json: schema: type: object properties: merchantReference: type: string description: A specific merchant reference for this deposit. For example, this could be a merchant order number or the same merchant reference value used in the original establish call. amount: type: string title: float description: The amount to be sent. (maximum of 10 characters with support for 2 decimal places) instantPayoutRequest: type: boolean description: Whether instant payout for the deposit will be attempted. externalTier: type: string description: The merchant's tier associated with the customer (e.g. vip). required: - merchantReference security: - HTTPBasic: [] /establish: post: operationId: transactions_post-establish summary: Establish a new transaction for authorization description: "This endpoint creates a new unauthorized transaction and returns a URL to be provided for a user to authorize\ \ the transaction. After the user has authorized the transaction with a bank, the transaction can be used with other\ \ Trustly APIs to retrieve account data or process payments.\n\nFor more details and descriptions of the fields supported\ \ by this endpoint see [Establish Data object](doc:features/establish-data-object).\n\n> **Note for Money Transfer**\ \ \n> If your application is configured for \"Money Transfer\" many properties in the `customer`, `beneficiary` and\ \ `beneficiaryAccount` objects will be required. \n> See [Send money](/integrate/send-money) for more details." tags: - transactions parameters: - name: createTransaction in: query description: If true, Trustly will return a transactionId that can be used with other API's. Either createTransaction or notify is required. required: false schema: type: boolean - name: notify in: query description: If true, Trustly will notify the User via SMS or Email with a URL that can be used to complete the transaction. Either createTransaction or notify is required. required: false schema: type: boolean - name: channel in: query description: 'Comma separated list of notification channels. Currently only sms and email are supported. Example: sms,email will send a notification via SMS and email to the User. Required if notify is true.' required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/EstablishData' requestBody: description: '' content: application/json: schema: type: object properties: merchantId: type: string minLength: 1 description: Your Trustly-provided Merchant ID. accessId: type: string minLength: 1 description: Your Trustly-provided client application access ID. amount: type: string minLength: 1 description: The amount of the transaction. This represents the maximum amount of the transactions that can be processed with the Authorization. If the amount is 0.00, there will be no upper bound on the transaction. (10 characters with support for 2 decimal places) currency: $ref: '#/components/schemas/EstablishPostRequestBodyContentApplicationJsonSchemaCurrency' description: 3-letter ISO Currency Code. description: type: string minLength: 1 description: A summary description of the order. Do not pass Consumer PII (name, email address, etc) in this field. returnUrl: type: string minLength: 1 description: The URL where the user should be redirected to when the user successfully authorizes the transaction (must be a valid URL or function). cancelUrl: type: string minLength: 1 description: The URL where the user should be redirected to if the user exits or the transaction is canceled (must be a valid URL or function). notificationUrl: type: string description: Notification URL to use for notifications associated with this transaction. This overrides the notification URL configured by Trustly during onboarding. paymentType: $ref: '#/components/schemas/EstablishPostRequestBodyContentApplicationJsonSchemaPaymentType' description: "Specifies the type of transaction to create. Possible values are Instant, Deferred, Disbursement,\ \ Recurring, Verification, and Retrieval. Default is Retrieval.\n\n **Note:** If your application is configured\ \ for \"Money Transfer\" and utilizes the \"Instant\" `paymentType` several properties under `customer`,\ \ `beneficiary` and `beneficiaryAccount` will be required. \n> See [Send money](/integrate/send-money)\ \ for more details." requestSignature: type: string minLength: 1 description: Request Signature used to secure the request. displayAmount: type: string minLength: 1 description: 'Optionally displays the provided transaction amount to the user throughout the Lightbox experience. **Note:** This value must be sent as a JSON string (for example, `"10.50"`), not as a numeric value.' merchantReference: type: string minLength: 1 description: A unique identifier that you create to represent the Transaction in the Trustly system. customer: $ref: '#/components/schemas/Customer' account: $ref: '#/components/schemas/EstablishPostRequestBodyContentApplicationJsonSchemaAccount' description: Account information. Required if paymentType is Verification and a transactionId is not included. beneficiary: $ref: '#/components/schemas/EstablishPostRequestBodyContentApplicationJsonSchemaBeneficiary' description: 'The ultimate beneficiary of this payment. Required when using `paymentType: Instant` for [Money Transfer](/integrate/send-money)' beneficiaryAccount: $ref: '#/components/schemas/EstablishPostRequestBodyContentApplicationJsonSchemaBeneficiaryAccount' description: 'Financial institution account associated with the ultimate beneficiary of a transaction. Required when using `paymentType: Instant` for [Money Transfer](/integrate/send-money)' kycType: type: string description: Specifies the KYC (Know Your Customer) type. This field is optional and can only be used by merchants configured for [Trustly ID](/integrate/retrieve-data/trustly-id). metadata: $ref: '#/components/schemas/EstablishPostRequestBodyContentApplicationJsonSchemaMetadata' description: Provide additional use case-specific properties in this object. required: - merchantId - accessId - currency - returnUrl - cancelUrl - requestSignature - merchantReference security: - HTTPBasic: [] /transactions: get: operationId: transactions_list-transactions summary: Get transactions description: Returns a list of transactions. It can be paged and filtered by appending arguments to the query string of the request. tags: - transactions parameters: - name: transactionType in: query description: Returns transactions of this Transaction Type. It is possible to filter by multiple values by repeating this argument. required: false schema: type: array items: type: string - name: transactionStatus in: query description: Returns transactions that currently have this Transaction Status. It is possible to filter by multiple values by repeating this argument. required: false schema: type: array items: type: string - name: originalTransactionId in: query description: Returns transactions that belongs to this original transaction identifier. required: false schema: type: string - name: payment.paymentId in: query description: Returns transactions of the payment specified by this payment ID. required: false schema: type: string - name: payment.paymentType in: query description: Returns transactions of the payments of this Payment Type. It is possible to filter by multiple values by repeating this argument. required: false schema: type: array items: type: string - name: payment.merchantReference in: query description: Returns transactions of the payments associated with this merchant reference. required: false schema: type: string - name: payment.verification.status in: query description: Returns transactions of the payments at this payment Verification Status. required: false schema: type: number format: double - name: paymentProviderTransaction.ppTrxStatusCode in: query description: Returns transactions of the payment specified by this payment provider status code. required: false schema: type: string - name: orderBy in: query description: Returns transactions by this order field required: false schema: type: string - name: sortOrder in: query description: Returns transactions by this sort order required: false schema: type: string - name: startIndex in: query description: Returns transactions from that offset required: false schema: type: string - name: count in: query description: Returns the maximum number of transactions specified by this field required: false schema: type: string - name: amount.min in: query description: Returns transactions for that minimum amount. required: false schema: type: string - name: amount.max in: query description: Returns transactions for that maximum amount. required: false schema: type: string - name: paid.min in: query description: Returns transactions for that minimum paid. required: false schema: type: string - name: paid.max in: query description: Returns transactions for that maximum paid. required: false schema: type: string - name: refunded.min in: query description: Returns transactions with this minimum refund amount. required: false schema: type: string - name: refunded.max in: query description: Returns transactions with this maximum refund amount. required: false schema: type: string - name: createdAt.start in: query description: Returns transactions after this creation date required: false schema: type: string - name: createdAt.end in: query description: Returns transactions before this creation date required: false schema: type: string - name: updatedAt.start in: query description: Returns transactions after this update date required: false schema: type: string - name: updatedAt.end in: query description: Returns transactions before this update date required: false schema: type: string - name: processedAt.start in: query description: Returns transactions after this processing date required: false schema: type: string - name: processedAt.end in: query description: Returns transactions before this processing date required: false schema: type: string - name: completedAt.start in: query description: Returns transactions after this completion date required: false schema: type: string - name: completedAt.end in: query description: Returns transactions before this completion date required: false schema: type: string - name: paymentProviderTransaction.paymentProviderTransactionId in: query description: Returns transactions of the payment specified by this payment provider id. required: false schema: type: string - name: payment.description in: query description: Returns transactions with this payment description required: false schema: type: string - name: payment.fingerprint in: query description: Returns transactions with this payment fingerprint required: false schema: type: string - name: payment.merchant.merchantId in: query description: Returns transactions of the payment specified by this merchant identification. required: false schema: type: string - name: payment.paymentProvider.paymentProviderId in: query description: Returns transactions by this payment provider identification. required: false schema: type: string - name: payment.authorization.status in: query description: Returns transactions of the payments at this payment Authorization Status. required: false schema: type: array items: type: string - name: payment.fiAccount.providerId in: query description: Returns transactions of the payment specified by this payment provider identification. required: false schema: type: string - name: payment.fiAccount.accountNumber in: query description: Returns transactions of the payment specified by account number. required: false schema: type: string - name: payment.fiAccount.routingNumber in: query description: Returns transactions of the payment specified by routing number. required: false schema: type: string - name: payment.fiAccount.verified in: query description: Returns transactions of the payment if account is verified. required: false schema: type: boolean - name: ipAddr in: query description: Returns transactions with this IP address required: false schema: type: string - name: routingNumber in: query description: Returns transactions with this routing number required: false schema: type: string - name: accountNumber in: query description: Returns transactions with this account number required: false schema: type: string - name: customerName in: query description: Returns transactions with this customer name required: false schema: type: string - name: payment.customer.name in: query description: Returns transactions of the payment specified by customer name. required: false schema: type: string - name: payment.customer.externalId in: query description: Returns transactions of the payment specified by customer external identification. required: false schema: type: string - name: ignoreUserPortalTransactions in: query description: Returns transactions bypassing the portal user. required: false schema: type: boolean - name: payment.paymentProvider.framework in: query description: Returns transactions of the payment provider specified by framework. required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Transactions_list-transactions_Response_200' security: - HTTPBasic: [] /transactions/{transactionId}/capture/preAuth: post: operationId: transactions_post-transactions-transactionId-capture-preauth summary: Preauthorize transaction description: The Preauthorize API allows the merchant to pre-authorize one or more captures up to the total pre-authorized amount on a pre-authorized period interval in hours. Captures after the pre-authorized period interval are treated as normal Captures (will need to pass the full balance and risk analysis to be guaranteed). tags: - transactions parameters: - name: transactionId in: path description: Authorization Transaction ID retrieved from a Trustly Deferred or Recurring transaction. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Transaction' requestBody: description: '' content: application/json: schema: type: object properties: merchantReference: type: string description: A specific merchant reference for this preauthorization. For example, this could be a merchant order number or the same merchant reference value used in the original establish call. period: type: integer minimum: 1 maximum: 6 default: 0 description: Number of hours the preauthorization will be valid for. amount: type: string description: The amount to be authorized. (maximum of 10 characters with support for 2 decimal places). Required if the bank authorization was created with an amount of 0.00. If not specified, then the full amount of the bank authorization will be used. splitToken: type: string description: Token received on the Authorize event. externalTier: type: string description: The merchant's tier associated with the customer (e.g. vip). metadata.remittance.withdrawalMethod: $ref: '#/components/schemas/TransactionsTransactionIdCapturePreAuthPostRequestBodyContentApplicationXWwwFormUrlencodedSchemaMetadataRemittanceWithdrawalMethod' description: The method by which the recipient will receive the funds. interactionId: type: string description: Optional interaction ID parameter for Preauthorization and Capture APIs, inclusion of which signifies consumer interaction tied to data obtained from getTrustlyInteraction function. If not specified, Trustly assumes the consumer is present in session. Set to "consumerNotPresent" to signify that the transaction is merchant-initiated and the consumer is not present. required: - merchantReference - period - amount security: - HTTPBasic: [] /transactions/{transactionId}/reclaim: post: operationId: transactions_post-transactions-transactionId-reclaim summary: Reclaim transaction description: 'Reclaims a previously completed Deposit transaction (minimum of 0.99). You can optionally reclaim partially. You can do so as many times as you wish until the entire deposited amount has been reclaimed. A Deposit transaction can only be reclaimed after the transaction has been processed and completed. Ensure you also implement an [event notification](/integrate/core-concepts/webhooks-and-events) handler to get transaction status updates.' tags: - transactions parameters: - name: transactionId in: path description: Deposit Transaction ID retrieved from a Trustly Deposit transaction. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Transaction' requestBody: description: '' content: application/json: schema: type: object properties: merchantReference: type: string description: A specific merchant reference for this reclaim. For example, this could be a merchant order number or the same merchant reference value used in the original establish call. amount: type: string maxLength: 10 description: The amount to be reclaimed which can be less or equal than the current balance of the deposit transaction being reclaimed. If the value is omitted the remaining balance is reclaimed. (maximum of 10 characters with support for 2 decimal places) required: - amount security: - HTTPBasic: [] /transactions/{transactionId}/refresh: post: operationId: transactions_post-transactions-refresh summary: Refresh a transaction description: Refresh allows for data associated with a transaction to be updated to the most recent available. tags: - transactions parameters: - name: transactionId in: path description: Authorization Transaction ID retrieved from a Trustly Deferred or Recurring transaction, or Preauthorization Transaction ID retrieved from a Trustly Preauthorize API. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Transactions_post-transactions-refresh_Response_200' requestBody: description: '' content: application/json: schema: type: object properties: splitToken: type: string description: 'Token received from the Authorize event. Note: string value must be URL encoded.' required: - splitToken security: - HTTPBasic: [] /transactions/{transactionId}/refund: post: operationId: transactions_post-transactions-refund summary: Refund transaction description: 'Refunds a previously completed Capture or Instant transaction (minimum of 0.99). You can optionally refund partially. You can do so as many times as you wish until the entire collected amount has been refunded. A *Capture* or *Pay* transaction can only be refunded after the bank money collection has been processed and completed. Ensure you also implement an Event Notification Handler to get transaction status updates.' tags: - transactions parameters: - name: transactionId in: path description: Capture Transaction ID retrieved from a Trustly Capture transaction. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Transaction' requestBody: description: '' content: application/json: schema: type: object properties: merchantReference: type: string description: A specific merchant reference for this refund. For example, this could be a merchant order number or the same merchant reference value used in the original establish call. amount: type: string description: The amount to be refunded which can be less or equal than the current balance of the transaction being refunded. If the value is omitted the remaining balance is refunded. (maximum of 10 characters with support for 2 decimal places) security: - HTTPBasic: [] /transactions/{transactionId}: get: operationId: transactions_get-transaction summary: Retrieve a transaction description: This endpoint allows you to retrieve comprehensive details about a transaction using its unique identifier `transactionId`. The response includes key transaction information, such as the transaction status, as well as amounts, and account details for payment or authorization transactions. This endpoint is useful for checking the current state of a transaction or verifying transaction information after processing. tags: - transactions parameters: - name: transactionId in: path description: Transaction ID retrieved from Trustly. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Transaction' security: - HTTPBasic: [] /transactions/{transactionId}/payment/customer/verify: get: operationId: verifyCustomer_get-verify-customer summary: Get customer verification data description: Retrieves verification results for a given transaction. Returns a match result for each attribute compared. tags: - verifyCustomer parameters: - name: transactionId in: path description: Transaction ID retrieved from a Trustly Authorization transaction. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Verify_Customer_get-verify-customer_Response_200' '400': description: One or more required fields are missing from the request object. content: application/json: schema: $ref: '#/components/schemas/Get-verify-customerRequestBadRequestError' '401': description: Access not authorized content: application/json: schema: $ref: '#/components/schemas/Get-verify-customerRequestUnauthorizedError' security: - HTTPBasic: [] tags: - name: accountData - name: accounts - name: countries - name: customers - name: disputeManagement - name: identity - name: networkCheckApi - name: paymentProviders - name: payments - name: transactions - name: verifyCustomer servers: - url: https://trustly.one/api/v1 description: Production - url: https://sandbox.trustly.one/api/v1 description: Sandbox webhooks: eventNotifications_Authorize: post: operationId: eventNotifications_Authorize summary: Authorize description: The `Authorize` event indicates that the user has successfully authorized the transaction with their bank. responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/EventAuthorize' eventNotifications_Completed: post: operationId: eventNotifications_Completed summary: Completed description: The `Completed` event indicates that the funds for a transaction have successfully settled. responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/EventCompleted' eventNotifications_DataReady: post: operationId: eventNotifications_DataReady summary: Data Ready description: The `DataReady` event indicates that all bank-qualified data, such as account details and balance, has been retrieved and is ready for consumption. Wait for this event before calling Account Data endpoints. responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/EventDataReady' eventNotifications_Dispute: post: operationId: eventNotifications_Dispute summary: Dispute description: The `Dispute` indicates that a transaction received a return that generated a dispute. The returnType property specifies the type of return responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: type: object properties: createdAt: type: string format: int64 description: The timestamp when the event was created, represented as a Unix timestamp in milliseconds. eventId: type: string description: Unique identifier for the event. eventType: type: string description: The type of event that triggered the webhook. objectId: type: string description: Unique identifier for the object associated with the event, such as a transaction. objectType: type: string description: The type of object associated with the event. reference: type: string transactionId: type: string transactionDatetime: type: string returnType: type: string customerId: type: string returnDatetime: type: string amountReturned: type: string eventNotifications_Establish: post: operationId: eventNotifications_Establish summary: Establish description: The `Establish` event indicates that a new transaction has been created. This occurs when a user activates the Trustly User Interface (UI) or when you create a transaction using the API responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/EventEstablish' eventNotifications_Expired: post: operationId: eventNotifications_Expired summary: Expired description: The `Expired` event indicates that a transaction or session timed out before the user completed the flow. responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/EventExpire' eventNotifications_Failed: post: operationId: eventNotifications_Failed summary: Failed description: The `Failed` event indicates that the transaction could not be completed because of an error, decline, or cancellation. responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/EventFailed' eventNotifications_Refresh: post: operationId: eventNotifications_Refresh summary: Refresh description: The `Refresh` event indicates that the account data for a transaction has been successfully refreshed. responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/EventRefresh' eventNotifications_Update: post: operationId: eventNotifications_Update summary: Update description: The `Update` event indicates that the status of a transaction has changed. For example, when a transaction moves from `Pending` to `Authorized` responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/EventUpdate' eventNotifications_VerifyCustomer: post: operationId: eventNotifications_VerifyCustomer summary: Verify Customer description: The `VerifyCustomer` event provides the result of the identity verification check performed against the data from the bank. responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/EventVerifyCustomer' components: schemas: TransactionsTransactionIdAccountSummaryGetResponsesContentApplicationJsonSchemaSummaryItemsAggregationsItems: type: object properties: days: type: integer activityEarliestDate: type: integer activityLatestDate: type: integer balanceMax: type: string balanceMin: type: string balanceAvg: type: string depositCount: type: integer depositAmountTotal: type: string depositAmountMax: type: string withdrawalCount: type: integer withdrawalAmountTotal: type: string withdrawalAmountMax: type: string overdraftCount: type: integer overdraftAmountTotal: type: string nsfCount: type: integer nsfFeeAmountTotal: type: string title: TransactionsTransactionIdAccountSummaryGetResponsesContentApplicationJsonSchemaSummaryItemsAggregationsItems TransactionsTransactionIdAccountSummaryGetResponsesContentApplicationJsonSchemaSummaryItems: type: object properties: selectedAccount: type: boolean currency: type: string nameOnAccount: type: string accountNumber: type: string routingNumber: type: string aggregations: type: array items: $ref: '#/components/schemas/TransactionsTransactionIdAccountSummaryGetResponsesContentApplicationJsonSchemaSummaryItemsAggregationsItems' title: TransactionsTransactionIdAccountSummaryGetResponsesContentApplicationJsonSchemaSummaryItems Account_Data_get-transaction-account-summary_Response_200: type: object properties: customerId: type: string lastUpdated: type: integer summary: type: array items: $ref: '#/components/schemas/TransactionsTransactionIdAccountSummaryGetResponsesContentApplicationJsonSchemaSummaryItems' title: Account Data_get-transaction-account-summary_Response_200 TransactionsTransactionIdAccountSummaryGetResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: domain: type: string minLength: 1 code: type: number format: double location: type: string minLength: 1 message: type: string minLength: 1 occurredAt: type: number format: double required: - domain - code - location - message - occurredAt title: TransactionsTransactionIdAccountSummaryGetResponsesContentApplicationJsonSchemaErrorsItems Get-transaction-account-summaryRequestBadRequestError: type: object properties: errors: type: array items: $ref: '#/components/schemas/TransactionsTransactionIdAccountSummaryGetResponsesContentApplicationJsonSchemaErrorsItems' required: - errors title: Get-transaction-account-summaryRequestBadRequestError PaymentProvider2SubType: type: string enum: - '1000' - '2000' - '2001' description: "Financial Institution Account Type:\n * `1000`: Online Banking\n * `2000`: Manual Entry\n * `2001`: Manual\ \ Entry with Challenge Deposit\n" title: PaymentProvider2SubType Address3Country: type: string enum: - US description: 2 character ISO Country code. Currently only the US is supported. title: Address3Country Address-3: type: object properties: address1: type: string minLength: 1 description: Address Line 1. city: type: string minLength: 1 description: Address City. state: type: string minLength: 1 description: 2 character ISO State code. zip: type: string minLength: 1 description: 5 character US Zip Code. country: $ref: '#/components/schemas/Address3Country' description: 2 character ISO Country code. Currently only the US is supported. address2: type: string description: Address Line 2. required: - country title: Address-3 PaymentProvider2Country: type: string enum: - US - CA - UK - DE - AU description: 2-character ISO code of the country for the bank account that was selected. Currently only the US, CA, UK, DE, and AU are supported. title: PaymentProvider2Country PaymentProvider-2: type: object properties: paymentProviderId: type: string minLength: 1 description: A unique identifier for the Payment Provider. type: type: number format: double name: type: string minLength: 1 description: Payment Provider name. instantPayoutAvailable: type: boolean description: Whether payment provider supports instant payout. subType: $ref: '#/components/schemas/PaymentProvider2SubType' description: "Financial Institution Account Type:\n * `1000`: Online Banking\n * `2000`: Manual Entry\n * `2001`:\ \ Manual Entry with Challenge Deposit\n" swift: type: string address: $ref: '#/components/schemas/Address-3' country: $ref: '#/components/schemas/PaymentProvider2Country' description: 2-character ISO code of the country for the bank account that was selected. Currently only the US, CA, UK, DE, and AU are supported. instantPayment: type: boolean required: - paymentProviderId - type - name - instantPayoutAvailable title: PaymentProvider-2 ? TransactionsTransactionIdPaymentPaymentProviderAccountBalanceGetResponsesContentApplicationJsonSchemaAccountBalanceAccountCountry : type: string enum: - US - CA - UK - DE - AU description: 2-character ISO code of the country for the bank account that was selected. Currently only the US, CA, UK, DE, and AU are supported. title: TransactionsTransactionIdPaymentPaymentProviderAccountBalanceGetResponsesContentApplicationJsonSchemaAccountBalanceAccountCountry FinancialInstitutionAccountVerificationType: type: string enum: - '1' - '2' - '3' description: "Verification Type:\n * `1`: Manual - The account was verified with manual account verification. For example,\ \ Manual Electronic Check and Micro Challenge Deposit.\n * `2`: Online Banking verification\t- The Account was verified\ \ using the Trustly Online Banking application.\n * `3`: Database verification\t- The Account was verified using the\ \ Trustly database or a Third-Party Service. \n" title: FinancialInstitutionAccountVerificationType FinancialInstitutionAccountVerificationScore: type: string enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '9' - '10' description: "Verification Score:\n * `0`: Invalid input. The account or routing number are invalid. (Verified Mapping\ \ = false)\n * `1`: There is a strong indication that the account is invalid. (Verified Mapping = false)\n * `2`:\ \ There are active non-bankable returns on this account that are less than 3 years old. (Verified Mapping = false)\n\ \ * `3`: There are administrative returns on this account. (Verified Mapping = false)\n * `4`: The format appears\ \ to be suspicious. (Verified Mapping = false)\n * `5`: There is no data on this account or format. (Verified Mapping\ \ = false)\n * `6`: We have not seen this account, but the format appears to be valid. (Verified Mapping = true)\n\ \ * `7`: We have seen this account but have not received a final disposition on the transaction. (Verified Mapping\ \ = true)\n * `8`: We have seen this account, but not in the last 6 months, and have seen no returns associated with\ \ the account. (Verified Mapping = true)\n * `9`: We have seen this account in the last 6 months and have seen no\ \ returns associated with the account. (Verified Mapping = true)\n * `10`: This account has been directly validated\ \ with/by the financial institution or 3rd party. We have the highest confidence that this account is valid. (Verified\ \ Mapping = true)\n" title: FinancialInstitutionAccountVerificationScore FinancialInstitutionAccountVerificationThirdPartyScore: type: string enum: - '0' - '100' - '200' - '300' - '400' - '500' - '600' - '700' - '800' - '900' - '999' description: "Verification Third-Party Score:\n * `0`: Failed RT validation. (Verified Mapping = 0)\n * `100`: The supplier\ \ has a strong indication that this account is invalid. (Verified Mapping = 1)\n * `200`: The supplier has active\ \ non-bankable debt(s) on this account that are less than 3 years old. (Verified Mapping = 2)\n * `300`: The supplier\ \ has administrative returns on this account. (Verified Mapping = 3)\n * `400`: The supplier does not have Neg data\ \ on this account, but the format appears to be suspicious. (Verified Mapping = 4)\n * `500`: The supplier does not\ \ have data on this account or format. (Verified Mapping = 5)\n * `600`: The supplier has not seen this account, but\ \ the format appears valid. (Verified Mapping = 6)\n * `700`: The supplier has seen this account, but did not receive\ \ a final disposition on the transaction. (Verified Mapping = 7)\n * `800`: The supplier has seen this account, but\ \ not in the last 6 months. (Verified Mapping = 8)\n * `900`: The supplier has seen this account in the last 6 months.\ \ (Verified Mapping = 9)\n * `999`: The supplier has the highest confidence that this account is valid. (Verified\ \ Mapping = 10)\n" title: FinancialInstitutionAccountVerificationThirdPartyScore FinancialInstitutionAccountVerification: type: object properties: verified: type: boolean description: true if the account is verified; false otherwise. type: $ref: '#/components/schemas/FinancialInstitutionAccountVerificationType' description: "Verification Type:\n * `1`: Manual - The account was verified with manual account verification. For\ \ example, Manual Electronic Check and Micro Challenge Deposit.\n * `2`: Online Banking verification\t- The Account\ \ was verified using the Trustly Online Banking application.\n * `3`: Database verification\t- The Account was\ \ verified using the Trustly database or a Third-Party Service. \n" hasEnoughFunds: type: boolean description: If true, there is enough balance in account. verificationDate: type: integer description: "The date and time the verification was completed \n as a UNIX timestamp." score: $ref: '#/components/schemas/FinancialInstitutionAccountVerificationScore' description: "Verification Score:\n * `0`: Invalid input. The account or routing number are invalid. (Verified Mapping\ \ = false)\n * `1`: There is a strong indication that the account is invalid. (Verified Mapping = false)\n * `2`:\ \ There are active non-bankable returns on this account that are less than 3 years old. (Verified Mapping = false)\n\ \ * `3`: There are administrative returns on this account. (Verified Mapping = false)\n * `4`: The format appears\ \ to be suspicious. (Verified Mapping = false)\n * `5`: There is no data on this account or format. (Verified\ \ Mapping = false)\n * `6`: We have not seen this account, but the format appears to be valid. (Verified Mapping\ \ = true)\n * `7`: We have seen this account but have not received a final disposition on the transaction. (Verified\ \ Mapping = true)\n * `8`: We have seen this account, but not in the last 6 months, and have seen no returns associated\ \ with the account. (Verified Mapping = true)\n * `9`: We have seen this account in the last 6 months and have\ \ seen no returns associated with the account. (Verified Mapping = true)\n * `10`: This account has been directly\ \ validated with/by the financial institution or 3rd party. We have the highest confidence that this account is\ \ valid. (Verified Mapping = true)\n" thirdPartyScore: $ref: '#/components/schemas/FinancialInstitutionAccountVerificationThirdPartyScore' description: "Verification Third-Party Score:\n * `0`: Failed RT validation. (Verified Mapping = 0)\n * `100`: The\ \ supplier has a strong indication that this account is invalid. (Verified Mapping = 1)\n * `200`: The supplier\ \ has active non-bankable debt(s) on this account that are less than 3 years old. (Verified Mapping = 2)\n * `300`:\ \ The supplier has administrative returns on this account. (Verified Mapping = 3)\n * `400`: The supplier does\ \ not have Neg data on this account, but the format appears to be suspicious. (Verified Mapping = 4)\n * `500`:\ \ The supplier does not have data on this account or format. (Verified Mapping = 5)\n * `600`: The supplier has\ \ not seen this account, but the format appears valid. (Verified Mapping = 6)\n * `700`: The supplier has seen\ \ this account, but did not receive a final disposition on the transaction. (Verified Mapping = 7)\n * `800`:\ \ The supplier has seen this account, but not in the last 6 months. (Verified Mapping = 8)\n * `900`: The supplier\ \ has seen this account in the last 6 months. (Verified Mapping = 9)\n * `999`: The supplier has the highest confidence\ \ that this account is valid. (Verified Mapping = 10)\n" numberOfTries: type: number format: double description: Number of tries allowed. numberOfAttemptsLeft: type: number format: double description: Number of remaining attempts. required: - verified - type - hasEnoughFunds - verificationDate title: FinancialInstitutionAccountVerification TransactionsTransactionIdPaymentPaymentProviderAccountBalanceGetResponsesContentApplicationJsonSchemaAccountBalanceAccount: type: object properties: providerId: type: string description: Payment provider ID. paymentProvider: $ref: '#/components/schemas/PaymentProvider-2' nameOnAccount: type: string description: Account owner name. country: $ref: '#/components/schemas/TransactionsTransactionIdPaymentPaymentProviderAccountBalanceGetResponsesContentApplicationJsonSchemaAccountBalanceAccountCountry' description: 2-character ISO code of the country for the bank account that was selected. Currently only the US, CA, UK, DE, and AU are supported. name: type: string description: A description to identify an specific account (e.g. "Test checking account") type: type: number format: double description: See Financial Institution Account Type Values. profile: type: number format: double description: See Financial Institution Account Profile Values accountNumber: type: string minLength: 1 description: Bank Account Number or VAN if `virtualAccountRoutingPair` is equal to `true`. iban: type: string description: IBAN (International Bank Account Number) is an internationally agreed system of identifying bank accounts across national borders verified: type: boolean description: Indicates if the account is verified or not. verification: $ref: '#/components/schemas/FinancialInstitutionAccountVerification' source: type: number format: double routingNumber: type: string minLength: 1 description: Bank Routing Number. token: type: string minLength: 1 description: The Account Token. accountNumberLastFour: type: string description: The last 4 digits of the real account number. virtualAccountRoutingPair: type: boolean description: Indicates if account is using virtual/tokenized account and routing numbers (VANs/TANs) or not. taxId: type: string description: (Only Brazilian Accounts) Personal or business taxpayer identifier. title: TransactionsTransactionIdPaymentPaymentProviderAccountBalanceGetResponsesContentApplicationJsonSchemaAccountBalanceAccount TransactionsTransactionIdPaymentPaymentProviderAccountBalanceGetResponsesContentApplicationJsonSchemaAccountBalance: type: object properties: account: $ref: '#/components/schemas/TransactionsTransactionIdPaymentPaymentProviderAccountBalanceGetResponsesContentApplicationJsonSchemaAccountBalanceAccount' available: type: string minLength: 1 description: Funds currently available for withdrawal or spending (after pending transactions). Returns a decimal numeric string. currency: type: string minLength: 1 amount: type: string minLength: 1 required: - account - currency title: TransactionsTransactionIdPaymentPaymentProviderAccountBalanceGetResponsesContentApplicationJsonSchemaAccountBalance Account_Data_get-transactions-account-balance_Response_200: type: object properties: accountBalance: $ref: '#/components/schemas/TransactionsTransactionIdPaymentPaymentProviderAccountBalanceGetResponsesContentApplicationJsonSchemaAccountBalance' required: - accountBalance title: Account Data_get-transactions-account-balance_Response_200 TransactionsTransactionIdPaymentPaymentProviderAccountBalanceGetResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: domain: type: string minLength: 1 code: type: number format: double location: type: string minLength: 1 message: type: string minLength: 1 occurredAt: type: number format: double required: - domain - code - location - message - occurredAt title: TransactionsTransactionIdPaymentPaymentProviderAccountBalanceGetResponsesContentApplicationJsonSchemaErrorsItems Get-transactions-account-balanceRequestBadRequestError: type: object properties: errors: type: array items: $ref: '#/components/schemas/TransactionsTransactionIdPaymentPaymentProviderAccountBalanceGetResponsesContentApplicationJsonSchemaErrorsItems' required: - errors title: Get-transactions-account-balanceRequestBadRequestError TransactionsTransactionIdPaymentPaymentProviderUserGetParametersExpandSchemaItems: type: string enum: - customer.segmentedName - names - contact - account.paymentProvider.routinginfo - account.paymentProvider.address title: TransactionsTransactionIdPaymentPaymentProviderUserGetParametersExpandSchemaItems SegmentedName: type: object properties: title: type: string description: The title of a given full name. firstName: type: string description: The first name of a given full name. middleName: type: array items: type: string description: The list of middle names of a given full name. lastName: type: string description: The last name of a given full name. suffix: type: string description: The suffix of a given full name. description: The segmented version of a given name. title: SegmentedName FIUser: type: object properties: fingerprint: type: string description: Internal use only. paymentProvider: $ref: '#/components/schemas/PaymentProvider-2' name: type: array items: description: Any type description: Array of User Name's associated with the Bank Account. address: type: array items: $ref: '#/components/schemas/Address-3' description: Array of Addresses associated with the Bank Account. See Address Object. phone: type: array items: description: Any type description: Array of Phone Numbers associated with the Bank Account. email: type: array items: description: Any type description: Array of Email Addresses associated with the Bank Account. createdAt: type: integer description: Timestamp representing the time the User Object was created. updatedAt: type: integer description: Timestamp representing the time the User Object was last updated. segmentedName: $ref: '#/components/schemas/SegmentedName' description: Financial Institution User title: FIUser TransactionsTransactionIdPaymentPaymentProviderUserGetResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: domain: type: string minLength: 1 code: type: number format: double location: type: string minLength: 1 message: type: string minLength: 1 occurredAt: type: number format: double required: - domain - code - location - message - occurredAt title: TransactionsTransactionIdPaymentPaymentProviderUserGetResponsesContentApplicationJsonSchemaErrorsItems Get-userRequestBadRequestError: type: object properties: errors: type: array items: $ref: '#/components/schemas/TransactionsTransactionIdPaymentPaymentProviderUserGetResponsesContentApplicationJsonSchemaErrorsItems' required: - errors title: Get-userRequestBadRequestError Account2Country: type: string enum: - US - CA - UK - DE - AU description: 2-character ISO code of the country for the bank account that was selected. Currently only the US, CA, UK, DE, and AU are supported. title: Account2Country Account-2: type: object properties: providerId: type: string description: Payment provider ID. paymentProvider: $ref: '#/components/schemas/PaymentProvider-2' nameOnAccount: type: string description: Account owner name. country: $ref: '#/components/schemas/Account2Country' description: 2-character ISO code of the country for the bank account that was selected. Currently only the US, CA, UK, DE, and AU are supported. name: type: string description: A description to identify an specific account (e.g. "Test checking account") type: type: number format: double description: See Financial Institution Account Type Values. profile: type: number format: double description: See Financial Institution Account Profile Values accountNumber: type: string minLength: 1 description: Bank Account Number or VAN if `virtualAccountRoutingPair` is equal to `true`. iban: type: string description: IBAN (International Bank Account Number) is an internationally agreed system of identifying bank accounts across national borders verified: type: boolean description: Indicates if the account is verified or not. verification: $ref: '#/components/schemas/FinancialInstitutionAccountVerification' source: type: number format: double routingNumber: type: string minLength: 1 description: Bank Routing Number. token: type: string minLength: 1 description: The Account Token. accountNumberLastFour: type: string description: The last 4 digits of the real account number. virtualAccountRoutingPair: type: boolean description: Indicates if account is using virtual/tokenized account and routing numbers (VANs/TANs) or not. title: Account-2 Account_Data_list-selected-accounts_Response_200: type: object properties: accounts: type: array items: $ref: '#/components/schemas/Account-2' required: - accounts title: Account Data_list-selected-accounts_Response_200 TransactionsTransactionIdPaymentPaymentProviderAccountsGetResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: domain: type: string minLength: 1 code: type: number format: double location: type: string minLength: 1 message: type: string minLength: 1 occurredAt: type: number format: double required: - domain - code - location - message - occurredAt title: TransactionsTransactionIdPaymentPaymentProviderAccountsGetResponsesContentApplicationJsonSchemaErrorsItems List-selected-accountsRequestBadRequestError: type: object properties: errors: type: array items: $ref: '#/components/schemas/TransactionsTransactionIdPaymentPaymentProviderAccountsGetResponsesContentApplicationJsonSchemaErrorsItems' required: - errors title: List-selected-accountsRequestBadRequestError FeedbackPostRequestBodyContentApplicationJsonSchemaAccount: type: object properties: accountNumber: type: string minLength: 6 routingNumber: type: string minLength: 6 token: type: string description: The token received as return of the Tokenize API. description: The token is required only when account number and routing number are not sent and vice-versa. title: FeedbackPostRequestBodyContentApplicationJsonSchemaAccount FeedbackStatus: type: string enum: - '2' - '3' - '4' - '5' - '6' - '7' - '9' - '10' - '13' description: 'The final status of the payment operation: * `2`: Authorized * `3`: Processed * `4`: Completed * `5`: Failed * `6`: Expired * `7`: Canceled * `9`: Disputed * `10`: Reversed * `13`: Voided' title: FeedbackStatus FeedbackCurrency: type: string enum: - USD description: 3-letter ISO Currency Code. Currently only USD is supported. title: FeedbackCurrency Feedback: type: object properties: externalId: type: string description: The merchant reference of the payment. status: $ref: '#/components/schemas/FeedbackStatus' description: 'The final status of the payment operation: * `2`: Authorized * `3`: Processed * `4`: Completed * `5`: Failed * `6`: Expired * `7`: Canceled * `9`: Disputed * `10`: Reversed * `13`: Voided' subStatus: type: string description: 'The ACH return code. Example: * `R01`: Insufficient Fund * `R04`: Invalid Account Number * `R16`: Account Frozen' description: type: string description: Unrestricted field to inform any description about the payment. submissionDate: type: number format: double description: The Unix Timestamp (epoch) in ms of when the payment was sent to ACH. returnDate: type: number format: double description: The Unix Timestamp (epoch) in ms of when ACH provided a return. amount: type: string minLength: 1 description: The amount of the payment. (10 characters with support for 2 decimal places) currency: $ref: '#/components/schemas/FeedbackCurrency' description: 3-letter ISO Currency Code. Currently only USD is supported. required: - status - subStatus description: The resulting feedback of an ACH transaction title: Feedback Accounts_post-account-feedback_Response_200: type: object properties: message: type: string description: Successful message. title: Accounts_post-account-feedback_Response_200 BaseException: type: object properties: domain: type: string code: type: integer location: type: string message: type: string occurredAt: type: integer title: BaseException AccountsTokenizePostRequestBodyContentApplicationJsonSchemaAccount: type: object properties: accountNumber: type: string minLength: 6 routingNumber: type: string minLength: 6 iban: type: string minLength: 15 description: IBAN (International Bank Account Number) is an internationally agreed system of identifying bank accounts across national borders nameOnAccount: type: string description: The name of the account owner for name verification purposes. title: AccountsTokenizePostRequestBodyContentApplicationJsonSchemaAccount AccountsTokenizePostResponsesContentApplicationJsonSchemaType: type: string enum: - '-1' - '0' - '1' - '2' description: "Financial Institution Account Type:\n * `-1`: Unknown\n * `0`: Other\n * `1`: Checking\n * `2`: Savings\ \ \n" title: AccountsTokenizePostResponsesContentApplicationJsonSchemaType AccountsTokenizePostResponsesContentApplicationJsonSchemaProfile: type: string enum: - '-1' - '0' - '1' - '2' description: "Financial Institution Account Profile:\n * `-1`: Unknown\n * `0`: Other\n * `1`: Personal\n * `2`: Business\ \ \n" title: AccountsTokenizePostResponsesContentApplicationJsonSchemaProfile PaymentProviderSubType: type: string enum: - '1000' - '2000' - '2001' description: "Financial Institution Account Type:\n * `1000`: Online Banking\n * `2000`: Manual Entry\n * `2001`: Manual\ \ Entry with Challenge Deposit\n" title: PaymentProviderSubType Address: type: object properties: address1: type: string minLength: 1 description: Address line 1 (e.g., street or PO Box) address2: type: string description: Address line 2 (e.g., apartment, suite or unit number) city: type: string minLength: 1 description: City, district, town or village state: type: string minLength: 2 description: State, province or region code zip: type: string minLength: 5 description: ZIP or Postal Code country: type: string minLength: 2 description: 2 character [ISO Country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) required: - country description: Valid mailing or billing address associated with the customer title: Address PaymentProviderCountry: type: string enum: - US - CA - UK - DE - AU description: 2-letter ISO country code of the financial institution title: PaymentProviderCountry PaymentProvider: type: object properties: paymentProviderId: type: string minLength: 1 description: A unique identifier for the Payment Provider. type: type: number format: double name: type: string minLength: 1 description: Name of the payment provider instantPayoutAvailable: type: boolean description: Whether payment provider supports instant payout. subType: $ref: '#/components/schemas/PaymentProviderSubType' description: "Financial Institution Account Type:\n * `1000`: Online Banking\n * `2000`: Manual Entry\n * `2001`:\ \ Manual Entry with Challenge Deposit\n" swift: type: string address: $ref: '#/components/schemas/Address' country: $ref: '#/components/schemas/PaymentProviderCountry' description: 2-letter ISO country code of the financial institution instantPayment: type: boolean required: - name description: Details of the Financial institution title: PaymentProvider AccountsTokenizePostResponsesContentApplicationJsonSchemaCountry: type: string enum: - US - CA - UK - DE - AU description: 2-character ISO code of the country for the bank account that was selected. Currently only the US, CA, UK, DE, and AU are supported. title: AccountsTokenizePostResponsesContentApplicationJsonSchemaCountry Accounts_post-accounts-tokenize_-verifyAccount_Response_200: type: object properties: nameOnAccount: type: string minLength: 1 description: Account owner name. name: type: string minLength: 1 description: Account name. type: $ref: '#/components/schemas/AccountsTokenizePostResponsesContentApplicationJsonSchemaType' description: "Financial Institution Account Type:\n * `-1`: Unknown\n * `0`: Other\n * `1`: Checking\n * `2`: Savings\ \ \n" profile: $ref: '#/components/schemas/AccountsTokenizePostResponsesContentApplicationJsonSchemaProfile' description: "Financial Institution Account Profile:\n * `-1`: Unknown\n * `0`: Other\n * `1`: Personal\n * `2`:\ \ Business \n" verification: $ref: '#/components/schemas/FinancialInstitutionAccountVerification' accountNumber: type: string minLength: 1 maxLength: 4 description: Financial institution account number routingNumber: type: string minLength: 1 maxLength: 17 description: Bank Routing Number provided by the selected account. iban: type: string minLength: 1 description: IBAN (International Bank Account Number) is an internationally agreed system of identifying bank accounts across national borders token: type: string minLength: 1 description: Account token for the returned account. This can be used to identify duplicate bank accounts in your system. accountId: type: string providerId: type: string paymentProvider: $ref: '#/components/schemas/PaymentProvider' verified: type: boolean description: If true, the account is verified. country: $ref: '#/components/schemas/AccountsTokenizePostResponsesContentApplicationJsonSchemaCountry' description: 2-character ISO code of the country for the bank account that was selected. Currently only the US, CA, UK, DE, and AU are supported. required: - name - type - profile - verification - accountNumber - token - verified description: Financial Institution account title: Accounts_post-accounts-tokenize?-verifyAccount_Response_200 Post-accounts-tokenize_-verifyAccountRequestBadRequestError: type: object properties: message: type: string title: Post-accounts-tokenize?-verifyAccountRequestBadRequestError AccountsVerifyPostRequestBodyContentApplicationJsonSchemaAccount: type: object properties: accountNumber: type: string minLength: 6 routingNumber: type: string minLength: 6 iban: type: string minLength: 15 description: IBAN (International Bank Account Number) is an internationally agreed system of identifying bank accounts across national borders nameOnAccount: type: string description: The name of the account owner for name verification purposes. title: AccountsVerifyPostRequestBodyContentApplicationJsonSchemaAccount FinancialInstitutionAccountType: type: string enum: - '-1' - '0' - '1' - '2' description: "Financial Institution Account Type:\n * `-1`: Unknown\n * `0`: Other\n * `1`: Checking\n * `2`: Savings\ \ \n" title: FinancialInstitutionAccountType FinancialInstitutionAccountProfile: type: string enum: - '-1' - '0' - '1' - '2' description: "Financial Institution Account Profile:\n * `-1`: Unknown\n * `0`: Other\n * `1`: Personal\n * `2`: Business\ \ \n" title: FinancialInstitutionAccountProfile FinancialInstitutionAccountCountry: type: string enum: - US - CA - UK - DE - AU description: 2-character ISO code of the country for the bank account that was selected. Currently only the US, CA, UK, DE, and AU are supported. title: FinancialInstitutionAccountCountry FinancialInstitutionAccount: type: object properties: nameOnAccount: type: string minLength: 1 description: Account owner name. name: type: string minLength: 1 description: Account name. type: $ref: '#/components/schemas/FinancialInstitutionAccountType' description: "Financial Institution Account Type:\n * `-1`: Unknown\n * `0`: Other\n * `1`: Checking\n * `2`: Savings\ \ \n" profile: $ref: '#/components/schemas/FinancialInstitutionAccountProfile' description: "Financial Institution Account Profile:\n * `-1`: Unknown\n * `0`: Other\n * `1`: Personal\n * `2`:\ \ Business \n" verification: $ref: '#/components/schemas/FinancialInstitutionAccountVerification' accountNumber: type: string minLength: 1 maxLength: 4 description: Last 4 digits of the bank account selected routingNumber: type: string minLength: 1 maxLength: 17 description: Bank Routing Number provided by the selected account. iban: type: string minLength: 1 description: IBAN (International Bank Account Number) is an internationally agreed system of identifying bank accounts across national borders token: type: string minLength: 1 description: Account token for the returned account. This can be used to identify duplicate bank accounts in your system. accountId: type: string providerId: type: string paymentProvider: $ref: '#/components/schemas/PaymentProvider' verified: type: boolean description: If true, the account is verified. country: $ref: '#/components/schemas/FinancialInstitutionAccountCountry' description: 2-character ISO code of the country for the bank account that was selected. Currently only the US, CA, UK, DE, and AU are supported. required: - name - type - profile - verification - accountNumber - token - verified description: Financial Institution account title: FinancialInstitutionAccount Get-accounts-verifyRequestBadRequestError: type: object properties: message: type: string title: Get-accounts-verifyRequestBadRequestError CountriesGetParametersCountry: type: string enum: - US - CA - UK - DE - AU title: CountriesGetParametersCountry PaymentType: type: string enum: - instant - deferred - recurring - disbursement - verification - retrieval description: "Payment Type:\n * `instant`: Instant payment. The debit instruction is automatically initiated with that\ \ day''s batch after consumer authorization.\n * `deferred`: Deferred payment. Payment is authorized but the capture\ \ operation must be called to initiate the debit. You can start to initiate multiple captures that are less than or\ \ equal to the original transaction authorization amount.\n * `recurring`: Recurring payment. Same as deferred but\ \ associated to a payment agreement between consumer and merchant that defines how much and when the capture can be\ \ started.\n * `disbursement`: Disbursement payment. This payment type can only be used for disbursements.\n * `verification`:\ \ This payment type is used to verify the customer financial institution account as the payments will be done outside\ \ of the Trustly system.\n * `retrieval`: Data retrieval. This payment type is used to retrieve account and user\ \ information from Trustly without an associated payment request. This payment type is not enabled by default. Contact\ \ Trustly if you need this feature." title: PaymentType PaymentProviderSubtype: type: string enum: - '1000' - '2000' - '2001' description: "Payment Provider Subtype:\n * `1000`: EasyOnline\n * `2000`: MEC\n * `2001`: MCD" title: PaymentProviderSubtype Country: type: object properties: numericCode: type: integer description: Number Country numeric code defined in ISO 3166-1 alpha2Code: type: string description: Country alpha2 code defined in ISO 3166-1 alpha3Code: type: string description: Country alpha3 code defined in ISO 3166-1 name: type: string description: Country name currencies: type: array items: type: string description: Array of currencies supported by country paymentTypes: type: array items: $ref: '#/components/schemas/PaymentType' description: Array of payment types supported by country paymentProviderSubtypes: type: array items: $ref: '#/components/schemas/PaymentProviderSubtype' description: 'Array of Payment Provider Subtypes values supported by country ' enabled: type: boolean description: Indicates if the country is currently supported title: Country Countries_get-countries_Response_200: type: object properties: countries: type: array items: $ref: '#/components/schemas/Country' title: Countries_get-countries_Response_200 Get-countriesRequestBadRequestError: type: object properties: message: type: string title: Get-countriesRequestBadRequestError CustomerCustomData: type: object properties: {} description: Object for sending merchant-specific custom data. title: CustomerCustomData DriverLicense: type: object properties: number: type: string description: Driver License number. state: type: string description: 2 character ISO State code. required: - number - state title: DriverLicense Customer: type: object properties: name: type: string minLength: 1 description: Full name of the Customer taxId: type: string description: Customer tax ID (e.g. SSN [US], SIN [CA]). *May be required depending on industry and location.* address: $ref: '#/components/schemas/Address' phone: type: string description: Customer phone number. email: type: string minLength: 1 description: Customer email address. dateOfBirth: type: string description: Customer date of birth. createdAt: type: integer description: The record created date and time as a UNIX timestamp. updatedAt: type: integer description: The record created date and time as a UNIX timestamp. customerId: type: string description: A unique Trustly customer identifier. externalId: type: string minLength: 1 description: A unique merchant customer identifier. merchantId: type: string minLength: 1 description: A unique Trustly merchant identifier. enrollDate: type: integer description: Date of the user's first transaction in your system, regardless of payment method used as a UNIX timestamp. vip: type: string description: Range that determines how low-risk the customer represents to the merchant currency: type: string description: Customer currency. balance: type: string description: Customer account balance (not associated with a financial institution account). organizationNumber: type: string description: Organization number for business accounts externalTier: type: string description: It should describe the customer''s rank to the merchant (e.g. Gold, Diamond, 4 stars, etc.) personId: type: string description: Unique customer identity throughout different banks. customData: $ref: '#/components/schemas/CustomerCustomData' description: Object for sending merchant-specific custom data. driverLicense: $ref: '#/components/schemas/DriverLicense' nationalId: type: string description: Customer National ID required: - name - address - phone - email description: The Trustly customer object, containing identification details and contact information. title: Customer Customers_post-customers_Response_200: type: object properties: customer: $ref: '#/components/schemas/Customer' title: Customers_post-customers_Response_200 Customers_get-customers-customerId_Response_200: type: object properties: customer: $ref: '#/components/schemas/Customer' title: Customers_get-customers-customerId_Response_200 Customers_get-customers_Response_200: type: object properties: customers: type: array items: $ref: '#/components/schemas/Customer' title: Customers_get-customers_Response_200 Customers_post-customers-customerId_Response_200: type: object properties: customer: $ref: '#/components/schemas/Customer' title: Customers_post-customers-customerId_Response_200 TransactionTransactionType: type: string enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '10' description: Type of transaction record. See [Transaction Types](/integrate/api-fundamentals/status-codes-and-type-definitions#transaction-types) title: TransactionTransactionType PaymentPaymentType: type: string enum: - '1' - '2' - '3' - '4' - '5' - '6' description: "Financial Institution Account Type:\n * `1`: Instant -\tInstant payment. The debit instruction is automatically\ \ initiated with that day's batch after consumer authorization.\n * `2`: Deferred - Deferred payment. Payment is authorized\ \ but the capture operation must be called to initiate the debit. You can start to initiate multiple captures that\ \ are less than or equal to the original transaction authorization amount.\n * `3`: Recurring - Recurring payment.\ \ Same as deferred but associated to a payment agreement between consumer and merchant that defines how much and when\ \ the capture can be started.\n * `4`: Disbursement - Disbursement payment. This payment type can only be used for\ \ disbursements.\n * `5`: Verification - This payment type is used to verify the customer financial institution account\ \ as the payments will be done outside of the Trustly system.\n * `6`: Retrieval\tData retrieval. This payment type\ \ is used to retrieve account and user information from Trustly without an associated payment request. This payment\ \ type is not enabled by default. Contact Trustly if you need this feature." title: PaymentPaymentType PaymentMerchant: type: object properties: merchantId: type: string description: Unique Trustly Merchant ID. name: type: string description: Merchants name. title: PaymentMerchant VerificationStatus: type: string enum: - '1' - '2' - '3' - '4' description: "Verification Status:\n * `1`: Automatic - Payment verification followed Trustly internal rules.\n *\ \ `2`: ToVerify\t- Payment transaction is held (status = OnHold) for further investigation and approval by the merchant.\n\ \ * `3`: Verified - Payment was verified and approved by the merchant or Trustly (see Verification Mode).\n * `4`:\ \ Refused - Payment was denied by the merchant or Trustly after verification.\n" title: VerificationStatus VerificationMode: type: string enum: - '1' - '2' - '3' - '4' description: "Verification Mode:\n * `1`: VerifiedByMerchant\n * `2`: ApprovedByMerchant\n * `3`: VerifiedByTrustly\n\ \ * `4`: AmountAuthorizedByMerchant\n" title: VerificationMode Verification: type: object properties: status: $ref: '#/components/schemas/VerificationStatus' description: "Verification Status:\n * `1`: Automatic - Payment verification followed Trustly internal rules.\n\ \ * `2`: ToVerify\t- Payment transaction is held (status = OnHold) for further investigation and approval by\ \ the merchant.\n * `3`: Verified - Payment was verified and approved by the merchant or Trustly (see Verification\ \ Mode).\n * `4`: Refused - Payment was denied by the merchant or Trustly after verification.\n" mode: $ref: '#/components/schemas/VerificationMode' description: "Verification Mode:\n * `1`: VerifiedByMerchant\n * `2`: ApprovedByMerchant\n * `3`: VerifiedByTrustly\n\ \ * `4`: AmountAuthorizedByMerchant\n" verifyCustomer: type: boolean description: If true, the Customer information (name and zip code) was verified against information provided by the User's bank. title: Verification AccountCountry: type: string enum: - US - CA - UK - DE - AU description: 2-character ISO code of the country for the bank account that was selected. Currently only the US, CA, UK, DE, and AU are supported. title: AccountCountry Account: type: object properties: providerId: type: string description: Payment provider ID. paymentProvider: $ref: '#/components/schemas/PaymentProvider' country: $ref: '#/components/schemas/AccountCountry' description: 2-character ISO code of the country for the bank account that was selected. Currently only the US, CA, UK, DE, and AU are supported. name: type: string description: A description to identify a specific account (e.g. Test checking account) type: type: number format: double description: See Financial Institution Account Type Values. profile: type: number format: double description: See Financial Institution Account Profile Values accountNumber: type: string minLength: 1 description: Bank Account Number or VAN if `virtualAccountRoutingPair` is equal to `true`. iban: type: string description: IBAN (International Bank Account Number) is an internationally agreed system of identifying bank accounts across national borders verified: type: boolean description: Indicates if the account is verified or not. verification: $ref: '#/components/schemas/FinancialInstitutionAccountVerification' source: type: number format: double routingNumber: type: string minLength: 1 description: Bank Routing Number token: type: string minLength: 1 description: The Account Token accountNumberLastFour: type: string description: The last 4 digits of the real account number. virtualAccountRoutingPair: type: boolean description: Indicates if account is using virtual/tokenized account and routing numbers (VANs/TANs) or not. title: Account PaymentCurrency: type: string enum: - USD description: 3-letter ISO Currency Code. Currently only USD is supported. title: PaymentCurrency PaymentAuth: type: object properties: token: type: string description: Authorization token. status: type: integer description: See Authorization Status Values. message: type: string description: Authorization message. title: PaymentAuth RecurrenceFrequencyUnitType: type: string enum: - Day - Week - Month - Year description: Frequency Unit Type title: RecurrenceFrequencyUnitType Recurrence: type: object properties: startDate: type: string format: date-time description: Recurring payment start date as a UNIX timestamp. endDate: type: string format: date-time description: Recurring payment end date as a UNIX timestamp. nextOccurrence: type: string format: date-time description: When the next capture will be issued if using automatic captures as a UNIX timestamp. recurringAmount: type: string maxLength: 10 description: Recurring payment amount. (maximum of 10 characters with support for 2 decimal places) debtSettlement: type: string maxLength: 10 description: Any debt amount settlement done outside of the Trustly like discounts or when consumers pays one recurring debt using another payment method like traditional checks or credit cards. (maximum of 10 characters with support for 2 decimal places) frequency: type: integer default: 1 description: 'How many payments per frequencyUnit. Defaults to 1. Example: To define 2 recurring payments every 3 months set: frequency=2, frequencyUnit=3 and frequencyUnitType=3.' frequencyUnit: type: number format: double description: Defines with frequencyUnitType the interval of the frequency of payments. frequencyUnitType: $ref: '#/components/schemas/RecurrenceFrequencyUnitType' description: Frequency Unit Type automaticCapture: type: boolean description: If true, payment captures are issued automatically. recurrenceId: type: string description: Recurring payment options title: Recurrence PaymentSystem: type: string enum: - '-1' - '1' - '2' description: "Financial Institution Account Type:\n * `-1`: None\n * `1`: PayWithMyBank\n * `2`: TrustlyAB" title: PaymentSystem PaymentCountry: type: string enum: - US - CA - UK - DE - AU description: 2-character ISO code of the country for the bank account that was selected. Currently only the US, CA, UK, DE, and AU are supported. title: PaymentCountry Payment: type: object properties: paymentId: type: string minLength: 1 description: A unique payment identifier generated by Trustly (15 character max). paymentType: $ref: '#/components/schemas/PaymentPaymentType' description: "Financial Institution Account Type:\n * `1`: Instant -\tInstant payment. The debit instruction is\ \ automatically initiated with that day's batch after consumer authorization.\n * `2`: Deferred - Deferred payment.\ \ Payment is authorized but the capture operation must be called to initiate the debit. You can start to initiate\ \ multiple captures that are less than or equal to the original transaction authorization amount.\n * `3`: Recurring\ \ - Recurring payment. Same as deferred but associated to a payment agreement between consumer and merchant that\ \ defines how much and when the capture can be started.\n * `4`: Disbursement - Disbursement payment. This payment\ \ type can only be used for disbursements.\n * `5`: Verification - This payment type is used to verify the customer\ \ financial institution account as the payments will be done outside of the Trustly system.\n * `6`: Retrieval\t\ Data retrieval. This payment type is used to retrieve account and user information from Trustly without an associated\ \ payment request. This payment type is not enabled by default. Contact Trustly if you need this feature." merchant: $ref: '#/components/schemas/PaymentMerchant' merchantReference: type: string minLength: 1 description: 'An external reference from the merchant. Ex: Order identifier from merchant e-commerce application.' merchantId: type: string minLength: 1 description: Your Trustly Merchant Id. It will be provided to you. fingerprint: type: string minLength: 1 description: Internal use only verification: $ref: '#/components/schemas/Verification' account: $ref: '#/components/schemas/Account' description: type: string minLength: 1 description: A summary description of the order. returnUrl: type: string minLength: 1 description: Return URL provided with the bank authorization. cancelUrl: type: string minLength: 1 description: Cancel URL provided with the bank authorization. currency: $ref: '#/components/schemas/PaymentCurrency' description: 3-letter ISO Currency Code. Currently only USD is supported. amount: type: string minLength: 1 description: "\tThe total amount of the order, including tax and shipping. If transactionType is Recurring, this\ \ is the Setup Fee Amount." paymentProvider: $ref: '#/components/schemas/PaymentProvider' allowedPaymentProviderType: type: array items: type: integer auth: $ref: '#/components/schemas/PaymentAuth' authorization: type: string minLength: 1 description: Authorization token. authorizationStatus: type: number format: double description: Status of the related bank authorization. See Transaction Status Values. authorizationStatusMessage: type: string minLength: 1 description: Status message of the related bank authorization. pending: type: string minLength: 1 description: The total amount that is still pending completion. (10 characters with support for 2 decimal places) paid: type: string minLength: 1 description: The total amount that was already paid. (10 characters with support for 2 decimal places) refunded: type: string minLength: 1 description: The total amount that was refunded. (10 characters with support for 2 decimal places) reversed: type: string minLength: 1 description: The total amount that was reversed. (10 characters with support for 2 decimal places) balance: type: string minLength: 1 description: The balance of the amount paid, minus the amount reversed and/or refunded. (10 characters with support for 2 decimal places) createdAt: type: integer description: The date and time the transaction was created as a UNIX timestamp. updatedAt: type: integer description: The date and time the transaction was last updated as a UNIX timestamp. recordVersion: type: number format: double description: The current record version. paymentFlow: type: number format: double description: internal use only customer: $ref: '#/components/schemas/Customer' address: $ref: '#/components/schemas/Address' recurrence: $ref: '#/components/schemas/Recurrence' system: $ref: '#/components/schemas/PaymentSystem' description: "Financial Institution Account Type:\n * `-1`: None\n * `1`: PayWithMyBank\n * `2`: TrustlyAB" country: $ref: '#/components/schemas/PaymentCountry' description: 2-character ISO code of the country for the bank account that was selected. Currently only the US, CA, UK, DE, and AU are supported. paymentProviderSubtype: $ref: '#/components/schemas/PaymentProviderSubtype' required: - paymentId - paymentType - merchant - merchantReference - merchantId - fingerprint - verification - account - currency - amount - paymentProvider - allowedPaymentProviderType - auth - authorization - authorizationStatus - authorizationStatusMessage - pending - paid - refunded - reversed - balance - createdAt - updatedAt - recordVersion - paymentFlow description: A Trustly Payment title: Payment TransactionCurrency: type: string enum: - USD description: 3-letter ISO Currency Code. Currently only USD is supported. title: TransactionCurrency PaymentProviderTransactionPaymentProcessor: type: object properties: paymentProcessorId: type: string type: type: integer name: type: string shortName: type: string url: type: string active: type: string title: PaymentProviderTransactionPaymentProcessor PaymentProviderTransaction: type: object properties: paymentProviderTransactionId: type: string description: Unique payment provider transaction identifier. status: type: string description: See Payment Provider Transaction Status Codes. statusMessage: type: string description: Payment provider transaction status message. signature: type: string statusDescription: type: string paymentProcessor: $ref: '#/components/schemas/PaymentProviderTransactionPaymentProcessor' thirdPartyDeclineCode: type: string clearingHouse: type: string instantSettle: type: boolean description: Whether instant settlement was used for transaction. description: Payment Provider Transaction title: PaymentProviderTransaction TransactionStatus: type: string enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '10' - '11' - '12' - '13' - '14' description: Status code of the Payment Provider Transaction record. See [Transaction Types](/integrate/api-fundamentals/status-codes-and-type-definitions#transaction-types) title: TransactionStatus Transaction: type: object properties: transactionId: type: string minLength: 1 description: A unique transaction identifier generated by Trustly (15 character max). transactionType: $ref: '#/components/schemas/TransactionTransactionType' description: Type of transaction record. See [Transaction Types](/integrate/api-fundamentals/status-codes-and-type-definitions#transaction-types) payment: $ref: '#/components/schemas/Payment' currency: $ref: '#/components/schemas/TransactionCurrency' description: 3-letter ISO Currency Code. Currently only USD is supported. amount: type: string minLength: 1 description: The amount of the transaction. (10 characters with support for 2 decimal places) pending: type: string minLength: 1 description: The total amount that is still pending completion. (10 characters with support for 2 decimal places) paid: type: string minLength: 1 description: The total amount that was already paid. (10 characters with support for 2 decimal places) refunded: type: string minLength: 1 description: The total amount that was refunded. (10 characters with support for 2 decimal places) reversed: type: string minLength: 1 description: The total amount that was reversed. (10 characters with support for 2 decimal places) balance: type: string minLength: 1 description: The balance of the amount paid, minus the amount reversed and/or refunded. (10 characters with support for 2 decimal places) paymentProviderTransaction: $ref: '#/components/schemas/PaymentProviderTransaction' status: $ref: '#/components/schemas/TransactionStatus' description: Status code of the Payment Provider Transaction record. See [Transaction Types](/integrate/api-fundamentals/status-codes-and-type-definitions#transaction-types) statusMessage: type: string minLength: 1 description: A descriptive status message. (120 characters) ip: type: string minLength: 1 description: The client IP address in IPv4 or IPv6 format. createdAt: type: integer description: The date and time the transaction was created as a UNIX timestamp. processedAt: type: integer description: The date and time the transaction was processed as a UNIX timestamp. completedAt: type: integer description: The date and time the transaction was completed as a UNIX timestamp. updatedAt: type: integer description: The date and time the transaction was last updated as a UNIX timestamp. ppTrxId: type: string minLength: 1 description: internal use only merchantReference: type: string minLength: 1 description: Merchants internal reference id for the transaction. expiredAt: type: integer description: The date and time the preauthorization will expire as a UNIX timestamp. recordVersion: type: number format: double description: The current record version. originalTransactionId: type: string fee: type: string timeZone: type: string representmentScheduledAt: type: number format: double paymentProcessorType: type: string statusCode: type: string preAuthorized: type: boolean required: - transactionId - transactionType - payment - currency - amount - pending - paid - refunded - reversed - balance - paymentProviderTransaction - status - statusMessage - ip - createdAt - processedAt - completedAt - updatedAt - merchantReference - recordVersion description: A Trustly transaction object title: Transaction TransactionsTransactionIdUserGetParametersExpandSchemaItems: type: string enum: - segmentedName title: TransactionsTransactionIdUserGetParametersExpandSchemaItems StateCode: type: string minLength: 1 description: 2 character ISO State code. title: StateCode Address2Country: type: string enum: - US description: 2 character ISO Country code. Currently only the US is supported. title: Address2Country Address-2: type: object properties: address1: type: string minLength: 1 description: Address Line 1. address2: type: string description: Address Line 2. city: type: string minLength: 1 description: Address City. state: $ref: '#/components/schemas/StateCode' zip: type: string minLength: 1 description: 5 character US Zip Code. country: $ref: '#/components/schemas/Address2Country' description: 2 character ISO Country code. Currently only the US is supported. required: - country title: Address-2 DriverLicense-2: type: object properties: number: type: string minLength: 1 description: The driver's license number. Even though this field is called 'number', it may contain non-numeric characters if the country allows that. state: $ref: '#/components/schemas/StateCode' description: A driver's license. title: DriverLicense-2 User: type: object properties: name: type: string description: The full name of the user address: type: array items: $ref: '#/components/schemas/Address-2' description: Array of addresses associated with the user. phone: type: array items: type: string description: Array of phone numbers associated with the user. email: type: array items: type: string description: Array of e-mail addresses associated with the user. dateOfBirth: type: string description: The date of birth of the user in the format YYYY-MM-DD taxId: type: string description: The user's government issued tax ID e.g. SSN (US) or SIN (CA) deceased: type: boolean description: If `true`, then the user is deceased. driverLicense: $ref: '#/components/schemas/DriverLicense-2' eligible: type: boolean description: Indicates if the user has got a successful result in all verifications and is eligible. createdAt: type: integer description: Timestamp representing the time the User Object was created. updatedAt: type: integer description: Timestamp representing the time the User Object was last updated. segmentedName: $ref: '#/components/schemas/SegmentedName' description: Trustly User title: User TransactionsTransactionIdUserGetResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: domain: type: string minLength: 1 code: type: number format: double location: type: string minLength: 1 message: type: string minLength: 1 occurredAt: type: number format: double required: - domain - code - location - message - occurredAt title: TransactionsTransactionIdUserGetResponsesContentApplicationJsonSchemaErrorsItems Get-trustly-id-user-dataRequestBadRequestError: type: object properties: errors: type: array items: $ref: '#/components/schemas/TransactionsTransactionIdUserGetResponsesContentApplicationJsonSchemaErrorsItems' required: - errors title: Get-trustly-id-user-dataRequestBadRequestError TransactionsTransactionIdUserDetailGetParametersExpandSchemaItems: type: string enum: - verification title: TransactionsTransactionIdUserDetailGetParametersExpandSchemaItems UserVerificationResultCode: type: string enum: - '1' - '2' - '3' description: 'A code indicating the final outcome of the verification. May be: * `1`: the verification was rejected. * `2`: the verification was inconclusive. * `3`: the verification was approved.' title: UserVerificationResultCode UserVerificationErrorCode: type: string enum: - '-1' - '1' - '2' - '3' - '4' - '5' - '6' description: 'An error code indicating why the user verification has failed. May be: * `-1`: no error. the verification was successful. * `1`: there was an internal, unspecified error (should not happen). * `2`: the user is below the minimum age. * `3`: some of the attributes did not meet the minimum verification criteria. * `4`: some mandatory attributes are not available. * `5`: the user was identified as a person who is deceased. * `6`: entries were matched during the screening process' title: UserVerificationErrorCode UserVerificationReason: type: object properties: code: $ref: '#/components/schemas/UserVerificationErrorCode' reason: type: string description: Descriptive text, in English, on why the user verification failed. description: An object describing why an user verification has succeeded or failed. title: UserVerificationReason ScreeningResultScreeningType: type: string enum: - '1' - '2' - '3' description: 'Type of screening being performed. May be: * `1`: Watchlist Screening. * `2`: Adverse Media Screening. * `3`: PEP Screening.' title: ScreeningResultScreeningType WatchlistScreeningResultGender: type: string enum: - male - female description: Gender of the user. title: WatchlistScreeningResultGender WatchlistScreeningResult: type: object properties: screeningType: $ref: '#/components/schemas/ScreeningResultScreeningType' score: type: string title: float description: Match score indicating the strength of a match. name: type: string description: Name of the user. aliases: type: array items: type: string description: List of known aliases. dateOfBirth: type: string format: date description: Date of birth. nationality: type: string description: Nationality. source: type: string description: Source of the information. sourceRegion: type: string description: Region of the source. remarks: type: string description: Additional remarks. caution: type: string description: Caution notes. url: type: string format: uri description: Source's URL. address: type: string description: Full street address of the user with city and country. gender: $ref: '#/components/schemas/WatchlistScreeningResultGender' description: Gender of the user. designationDate: type: string format: date description: Designation date. trustedEntity: type: string description: The name of the entity that provided the watchlist match. description: Screening information for Watchlist Screening. title: WatchlistScreeningResult AdversityMediaScreeningResult: type: object properties: screeningType: $ref: '#/components/schemas/ScreeningResultScreeningType' score: type: string title: float description: Match score indicating the strength of a match. name: type: string description: Name of the user. text: type: string description: Text description. url: type: string description: Source's URL. title: type: string description: The adverse media title. date: type: string format: date description: The adverse media date. trustedEntity: type: string description: The name of the entity that provided the adverse media match. description: Screening information for Adversity Media Screening. title: AdversityMediaScreeningResult PEPScreeningResult: type: object properties: screeningType: $ref: '#/components/schemas/ScreeningResultScreeningType' score: type: string title: float description: Match score indicating the strength of a match. name: type: string description: Name of the user. dateOfBirth: type: string format: date description: Date of birth. contry: type: string description: Country. professionalHistory: type: array items: type: string trustedEntity: type: string description: The name of the entity that provided the PEP match. description: Screening information for PEP Screening. title: PEPScreeningResult ScreeningResultItems: oneOf: - $ref: '#/components/schemas/WatchlistScreeningResult' - $ref: '#/components/schemas/AdversityMediaScreeningResult' - $ref: '#/components/schemas/PEPScreeningResult' title: ScreeningResultItems ScreeningResult: type: array items: $ref: '#/components/schemas/ScreeningResultItems' title: ScreeningResult UserVerificationResult: type: object properties: result: $ref: '#/components/schemas/UserVerificationResultCode' reasons: type: array items: $ref: '#/components/schemas/UserVerificationReason' screeningResult: type: array items: $ref: '#/components/schemas/ScreeningResult' description: Details on the user verification. title: UserVerificationResult AttributeVerificationDetailName: type: string enum: - taxId - name - address - phone - dateOfBirth - email - driverLicense - deceased description: Which attribute does this entry refer to. title: AttributeVerificationDetailName AttributeVerificationDetailSource: type: object properties: name: type: string description: The name of the entity where the attribute value was fetched from. type: type: integer description: 'Indicates the type of the entity that provided this piece of data. It can be: * `1` the data came from a financial institution. * `2` the data came from the user. * `4` the data came from an external provider. * `5` the data came from the merchant.' title: AttributeVerificationDetailSource AttributeVerificationMethod: type: integer description: 'Indicates which type of verification was performed. It can be: * `1` means electronic identity verification. * `2` meaning it is manual document verification. * `3` meaning it is OCR verification. * `4` meaning it is Trusted Entity.' title: AttributeVerificationMethod AttributeVerificationResult: type: integer description: 'Indicates the result of the individual attribute verification. It can be: * `1` meaning the attribute did not match the expected value. * `2` meaning the result was inconclusive. * `3` meaning attribute did match the expected attribute.' title: AttributeVerificationResult AttributeVerification: type: object properties: trustedEntity: type: string description: The name of the entity that verified the attribute. verificationType: type: integer description: 'Indicates the type of the entity that verified this piece of data. It can be: * `1` verified by a financial institution. * `2` verified by user input. * `3` verified by the Trustly internal database. * `4` verified by an external provider.' verificationMethod: $ref: '#/components/schemas/AttributeVerificationMethod' result: $ref: '#/components/schemas/AttributeVerificationResult' verifiedAt: type: integer format: int64 description: Unix Timestamp in milliseconds (since the epoch) when the verification took place. title: AttributeVerification AttributeVerificationDetail: type: object properties: name: $ref: '#/components/schemas/AttributeVerificationDetailName' description: Which attribute does this entry refer to. source: $ref: '#/components/schemas/AttributeVerificationDetailSource' createdAt: type: integer format: int64 description: Unix Timestamp in milliseconds (since the epoch) when the attribute was fetched from an external source and associated with the user. link: type: string description: Link to user attribute using JSON pointer syntax. verification: type: array items: $ref: '#/components/schemas/AttributeVerification' description: Attribute details as part of a Trustly ID user verification details title: AttributeVerificationDetail UserVerificationDetailDetail: type: object properties: verification: type: array items: $ref: '#/components/schemas/UserVerificationResult' attribute: type: array items: $ref: '#/components/schemas/AttributeVerificationDetail' title: UserVerificationDetailDetail UserVerificationDetail: type: object properties: detail: $ref: '#/components/schemas/UserVerificationDetailDetail' title: UserVerificationDetail TransactionsTransactionIdUserDetailGetResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: domain: type: string minLength: 1 code: type: number format: double location: type: string minLength: 1 message: type: string minLength: 1 occurredAt: type: number format: double required: - domain - code - location - message - occurredAt title: TransactionsTransactionIdUserDetailGetResponsesContentApplicationJsonSchemaErrorsItems Get-trustly-id-user-detailsRequestBadRequestError: type: object properties: errors: type: array items: $ref: '#/components/schemas/TransactionsTransactionIdUserDetailGetResponsesContentApplicationJsonSchemaErrorsItems' required: - errors title: Get-trustly-id-user-detailsRequestBadRequestError Post-transaction-feedbackRequestUnauthorizedError: type: object properties: errors: type: array items: $ref: '#/components/schemas/BaseException' required: - errors title: Post-transaction-feedbackRequestUnauthorizedError CustomerLookupResponseErrorsListItems: type: object properties: code: type: integer message: type: string location: type: string domain: type: string occurredAt: type: integer title: CustomerLookupResponseErrorsListItems CustomerLookupResponse: type: object properties: isInTrustlyNetwork: type: boolean description: True if a transaction has ever been made with any of the provided identifiers. errorsList: type: array items: $ref: '#/components/schemas/CustomerLookupResponseErrorsListItems' description: Present only on error responses. title: CustomerLookupResponse Get-customer-lookupRequestUnauthorizedError: type: object properties: errors: type: array items: $ref: '#/components/schemas/BaseException' required: - errors title: Get-customer-lookupRequestUnauthorizedError Payment_Providers_get-paymentProviders_Response_200: type: object properties: paymentProviders: type: array items: $ref: '#/components/schemas/PaymentProvider' startIndex: type: number format: double itemsPerPage: type: number format: double title: Payment Providers_get-paymentProviders_Response_200 Payments_list-payments_Response_200: type: object properties: payments: type: array items: $ref: '#/components/schemas/Payment' startIndex: type: number format: double itemsPerPage: type: number format: double required: - payments - startIndex - itemsPerPage title: Payments_list-payments_Response_200 ? TransactionsTransactionIdCapturePostRequestBodyContentApplicationXWwwFormUrlencodedSchemaMetadataRemittanceWithdrawalMethod : type: string enum: - BankDeposit - Cash - DebitCard - DigitalWallet - HomeDelivery description: The method by which the recipient will receive the funds. title: TransactionsTransactionIdCapturePostRequestBodyContentApplicationXWwwFormUrlencodedSchemaMetadataRemittanceWithdrawalMethod EstablishPostRequestBodyContentApplicationJsonSchemaCurrency: type: string enum: - USD - CAD description: 3-letter ISO Currency Code. title: EstablishPostRequestBodyContentApplicationJsonSchemaCurrency EstablishPostRequestBodyContentApplicationJsonSchemaPaymentType: type: string enum: - Retrieval - Deferred - Disbursement - Instant - Recurring - Verification description: "Specifies the type of transaction to create. Possible values are Instant, Deferred, Disbursement, Recurring,\ \ Verification, and Retrieval. Default is Retrieval.\n\n **Note:** If your application is configured for \"Money Transfer\"\ \ and utilizes the \"Instant\" `paymentType` several properties under `customer`, `beneficiary` and `beneficiaryAccount`\ \ will be required. \n> See [Send money](/integrate/send-money) for more details." title: EstablishPostRequestBodyContentApplicationJsonSchemaPaymentType EstablishPostRequestBodyContentApplicationJsonSchemaAccount: type: object properties: routingNumber: type: string minLength: 1 description: Bank Routing Number accountNumber: type: string minLength: 1 description: Bank Account Number type: type: string description: Financial Institution Account Type description: Account information. Required if paymentType is Verification and a transactionId is not included. title: EstablishPostRequestBodyContentApplicationJsonSchemaAccount EstablishPostRequestBodyContentApplicationJsonSchemaBeneficiary: type: object properties: name: type: string minLength: 1 description: Full name of the Customer taxId: type: string description: Customer tax ID (e.g. SSN [US], SIN [CA]). *May be required depending on industry and location.* address: $ref: '#/components/schemas/Address' phone: type: string description: Customer phone number. email: type: string minLength: 1 description: Customer email address. dateOfBirth: type: string description: Customer date of birth. createdAt: type: integer description: The record created date and time as a UNIX timestamp. updatedAt: type: integer description: The record created date and time as a UNIX timestamp. description: 'The ultimate beneficiary of this payment. Required when using `paymentType: Instant` for [Money Transfer](/integrate/send-money)' title: EstablishPostRequestBodyContentApplicationJsonSchemaBeneficiary EstablishPostRequestBodyContentApplicationJsonSchemaBeneficiaryAccount: type: object properties: accountNumber: type: number format: double iban: type: string pattern: ^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$ description: International Bank Account Number (IBAN) paymentProvider: $ref: '#/components/schemas/PaymentProvider' description: 'Financial institution account associated with the ultimate beneficiary of a transaction. Required when using `paymentType: Instant` for [Money Transfer](/integrate/send-money)' title: EstablishPostRequestBodyContentApplicationJsonSchemaBeneficiaryAccount EstablishPostRequestBodyContentApplicationJsonSchemaMetadataFinishButtonLabelType: type: string enum: - pay - deposit - withdraw description: Modify the final button label of the Trustly UI. The default label is "Continue", by passing a supported alternative in this property the button label can be changed to "Pay Now", "Deposit" or "Withdraw". title: EstablishPostRequestBodyContentApplicationJsonSchemaMetadataFinishButtonLabelType EstablishPostRequestBodyContentApplicationJsonSchemaMetadataIntegrationContext: type: string enum: - InAppBrowser - InAppBrowserNotify - ExternalBrowser description: Configuration required for mobile app compatibility with OAuth bank login flows. More details can be found in the [OAuth and Mobile apps guide](doc:oauth-guide). title: EstablishPostRequestBodyContentApplicationJsonSchemaMetadataIntegrationContext EstablishPostRequestBodyContentApplicationJsonSchemaMetadataClc: type: object properties: propertyId: type: number format: double description: ID number for property or location machineId: type: number format: double description: ID number specific to an associated Electronic Wagering System qrTimestamp: type: string format: date-time description: Timestamp of QR code generation playerNumber: type: number format: double description: Player tracking number description: Properties relating to Trustly In-Person configuration. Required for Trustly In-Person apps. title: EstablishPostRequestBodyContentApplicationJsonSchemaMetadataClc EstablishPostRequestBodyContentApplicationJsonSchemaMetadata: type: object properties: lang: type: string description: Display language for text in the Trustly UI using the [ISO 639 Language Code](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) format (e.g. `de_DE` or `fr_CA`). Defaults to `en_US` if not provided. finishButtonLabelType: $ref: '#/components/schemas/EstablishPostRequestBodyContentApplicationJsonSchemaMetadataFinishButtonLabelType' description: Modify the final button label of the Trustly UI. The default label is "Continue", by passing a supported alternative in this property the button label can be changed to "Pay Now", "Deposit" or "Withdraw". integrationContext: $ref: '#/components/schemas/EstablishPostRequestBodyContentApplicationJsonSchemaMetadataIntegrationContext' description: Configuration required for mobile app compatibility with OAuth bank login flows. More details can be found in the [OAuth and Mobile apps guide](doc:oauth-guide). urlScheme: type: string description: The deep link url associated with your mobile application. When users are directed to an external bank login or bank application on success or failure they will be redirected to this url. More details can be found in the [OAuth and Mobile apps guide](doc:oauth-guide). clc: $ref: '#/components/schemas/EstablishPostRequestBodyContentApplicationJsonSchemaMetadataClc' description: Properties relating to Trustly In-Person configuration. Required for Trustly In-Person apps. description: Provide additional use case-specific properties in this object. title: EstablishPostRequestBodyContentApplicationJsonSchemaMetadata EstablishDataCurrency: type: string enum: - USD description: 3-letter ISO Currency Code. Currently only USD is supported. title: EstablishDataCurrency EstablishDataKycType: type: string enum: - OnlineBanking description: Specifies the KYC (Know Your Customer) type as number. The possible value is 1 (OnlineBanking). This field is optional and can only be used by merchants configured for [Trustly ID](/integrate/retrieve-data/trustly-id). title: EstablishDataKycType Attribute: type: object properties: name: type: string value: type: string title: Attribute TrustlyABRequest: type: object properties: successURL: type: string failURL: type: string uRLTarget: type: string callbackURL: type: string notificationURL: type: string title: TrustlyABRequest EstablishData: type: object properties: merchantId: type: string description: Your Merchant ID. paymentType: type: number format: double description: The Payment Type of the transaction to create. Currently only Disbursement, Deferred, and Instant are supported. returnUrl: type: string description: Return URL to use when the transaction is completed. cancelUrl: type: string description: Cancel URL to use if the user cancels the transaction. notificationUrl: type: string description: Notification URL to use for notifications associated with this transaction. This overrides the notification URL configured at the merchant level. data: type: string accessId: type: string description: Your client application access id. It will be provided to you. requestSignature: type: string description: Request Signature that can be validated to verify the response authenticity. transactionId: type: string description: Transaction ID retrieved from Trustly. merchantReference: type: string description: 'An external reference from the merchant. Ex: Order identifier from merchant e-commerce application.' description: type: string description: Merchant order description currency: $ref: '#/components/schemas/EstablishDataCurrency' description: 3-letter ISO Currency Code. Currently only USD is supported. kycType: $ref: '#/components/schemas/EstablishDataKycType' description: Specifies the KYC (Know Your Customer) type as number. The possible value is 1 (OnlineBanking). This field is optional and can only be used by merchants configured for [Trustly ID](/integrate/retrieve-data/trustly-id). amount: type: string description: The amount of the transaction. This represents the maximum amount of the transactions that can be processed with the Authorization. If the amount is 0.00, there will be no upper bound on the transaction. (10 characters with support for 2 decimal places) verification: $ref: '#/components/schemas/Verification' customer: $ref: '#/components/schemas/Customer' account: $ref: '#/components/schemas/Account' metadata: $ref: '#/components/schemas/Attribute' trustlyABRequest: $ref: '#/components/schemas/TrustlyABRequest' url: type: string minLength: 1 required: - url description: '`establishData` is required to establish a new user authorization or to launch the Trustly UI for any other reason' title: EstablishData Transactions_list-transactions_Response_200: type: object properties: transactions: type: array items: $ref: '#/components/schemas/Transaction' title: Transactions_list-transactions_Response_200 ? TransactionsTransactionIdCapturePreAuthPostRequestBodyContentApplicationXWwwFormUrlencodedSchemaMetadataRemittanceWithdrawalMethod : type: string enum: - BankDeposit - Cash - DebitCard - DigitalWallet - HomeDelivery description: The method by which the recipient will receive the funds. title: TransactionsTransactionIdCapturePreAuthPostRequestBodyContentApplicationXWwwFormUrlencodedSchemaMetadataRemittanceWithdrawalMethod TransactionsTransactionIdRefreshPostResponsesContentApplicationJsonSchemaRefresh: type: object properties: processId: type: string minLength: 1 required: - processId title: TransactionsTransactionIdRefreshPostResponsesContentApplicationJsonSchemaRefresh Transactions_post-transactions-refresh_Response_200: type: object properties: refresh: $ref: '#/components/schemas/TransactionsTransactionIdRefreshPostResponsesContentApplicationJsonSchemaRefresh' required: - refresh title: Transactions_post-transactions-refresh_Response_200 VerifyCustomerMatchResult: type: string enum: - '-1' - '0' - '1' - '2' description: 'The result of the comparison: * `-1`: Inconclusive * `0`: NoMatch * `1`: PartialMatch * `2`: Match' title: VerifyCustomerMatchResult VerifyCustomerMatchSource: type: string enum: - '1' - '2' - '3' - '4' description: 'The data source used for comparison: * `1`: Profile * `2`: SelectedAccount * `3`: OtherAccounts * `4`: TrustlyUser' title: VerifyCustomerMatchSource VerifyCustomerMatch: type: object properties: attribute: type: string description: The customer attribute that was compared. For example, customer.name or customer.address.zip. result: $ref: '#/components/schemas/VerifyCustomerMatchResult' description: 'The result of the comparison: * `-1`: Inconclusive * `0`: NoMatch * `1`: PartialMatch * `2`: Match' source: $ref: '#/components/schemas/VerifyCustomerMatchSource' description: 'The data source used for comparison: * `1`: Profile * `2`: SelectedAccount * `3`: OtherAccounts * `4`: TrustlyUser' title: VerifyCustomerMatch Verify_Customer_get-verify-customer_Response_200: type: object properties: matches: type: array items: $ref: '#/components/schemas/VerifyCustomerMatch' title: Verify Customer_get-verify-customer_Response_200 Get-verify-customerRequestBadRequestError: type: object properties: errors: type: array items: $ref: '#/components/schemas/BaseException' required: - errors title: Get-verify-customerRequestBadRequestError Get-verify-customerRequestUnauthorizedError: type: object properties: errors: type: array items: $ref: '#/components/schemas/BaseException' required: - errors title: Get-verify-customerRequestUnauthorizedError EventAuthorize: type: object properties: createdAt: type: string format: int64 description: The timestamp when the event was created, represented as a Unix timestamp in milliseconds. eventId: type: string description: Unique identifier for the event. eventType: type: string description: The type of event that triggered the webhook. merchantId: type: string description: The unique identifier of the merchant. message: type: string description: A message describing the event. objectId: type: string description: Unique identifier for the object associated with the event, such as a transaction. objectType: type: string description: The type of object associated with the event (e.g., Transaction). paymentType: type: string description: Type of payment, denoted by a numeric code. status: type: string description: Status code representing the current state of the transaction. statusMessage: type: string description: A message describing the current status of the transaction. timeZone: type: string description: The timezone of the event, formatted in IANA timezone database format. transactionType: type: string description: Type of transaction, denoted by a numeric code. splitToken: type: string description: Encrypted token generated during user authorization. Note, token may include url escape characters which must be encoded or the request will result in an error. See [Split Token](doc:reference-split-token) for more info. description: A generic event object that includes common properties for all webhook events. This can be extended for specific event types. title: EventAuthorize EventCompletedPaymentProviderTransaction: type: object properties: status: type: string statusMessage: type: string title: EventCompletedPaymentProviderTransaction EventCompleted: type: object properties: createdAt: type: string format: int64 description: The timestamp when the event was created, represented as a Unix timestamp in milliseconds. eventId: type: string description: Unique identifier for the event. eventType: type: string description: The type of event that triggered the webhook. merchantId: type: string description: The unique identifier of the merchant. message: type: string description: A message describing the event. objectId: type: string description: Unique identifier for the object associated with the event, such as a transaction. objectType: type: string description: The type of object associated with the event (e.g., Transaction). paymentType: type: string description: Type of payment, denoted by a numeric code. status: type: string description: Status code representing the current state of the transaction. statusMessage: type: string description: A message describing the current status of the transaction. timeZone: type: string description: The timezone of the event, formatted in IANA timezone database format. transactionType: type: string description: Type of transaction, denoted by a numeric code. paymentProviderTransaction: $ref: '#/components/schemas/EventCompletedPaymentProviderTransaction' description: A transaction has been successfully completed. title: EventCompleted EventDataReady: type: object properties: createdAt: type: string format: int64 description: The timestamp when the event was created, represented as a Unix timestamp in milliseconds. eventId: type: string description: Unique identifier for the event. eventType: type: string description: The type of event that triggered the webhook. merchantId: type: string description: The unique identifier of the merchant. message: type: string description: A message describing the event. objectId: type: string description: Unique identifier for the object associated with the event, such as a transaction. objectType: type: string description: The type of object associated with the event (e.g., Transaction). paymentType: type: string description: Type of payment, denoted by a numeric code. status: type: string description: Status code representing the current state of the transaction. statusMessage: type: string description: A message describing the current status of the transaction. timeZone: type: string description: The timezone of the event, formatted in IANA timezone database format. transactionType: type: string description: Type of transaction, denoted by a numeric code. description: The 'DataReady' event indicates that the required transaction data is available and ready for processing. title: EventDataReady EventEstablishPaymentProviderTransaction: type: object properties: status: type: string statusMessage: type: string title: EventEstablishPaymentProviderTransaction EventEstablish: type: object properties: createdAt: type: string format: int64 description: The timestamp when the event was created, represented as a Unix timestamp in milliseconds. eventId: type: string description: Unique identifier for the event. eventType: type: string description: The type of event that triggered the webhook. merchantId: type: string description: The unique identifier of the merchant. message: type: string description: A message describing the event. objectId: type: string description: Unique identifier for the object associated with the event, such as a transaction. objectType: type: string description: The type of object associated with the event (e.g., Transaction). paymentType: type: string description: Type of payment, denoted by a numeric code. status: type: string description: Status code representing the current state of the transaction. statusMessage: type: string description: A message describing the current status of the transaction. timeZone: type: string description: The timezone of the event, formatted in IANA timezone database format. transactionType: type: string description: Type of transaction, denoted by a numeric code. merchantReference: type: string paymentProviderTransaction: $ref: '#/components/schemas/EventEstablishPaymentProviderTransaction' description: The 'Establish' event is triggered when a new transaction has been created. This event may occur when a user activates the Trustly UI or when a transaction is created via an API call. title: EventEstablish EventExpire: type: object properties: createdAt: type: string format: int64 description: The timestamp when the event was created, represented as a Unix timestamp in milliseconds. eventId: type: string description: Unique identifier for the event. eventType: type: string description: The type of event that triggered the webhook. merchantId: type: string description: The unique identifier of the merchant. message: type: string description: A message describing the event. objectId: type: string description: Unique identifier for the object associated with the event, such as a transaction. objectType: type: string description: The type of object associated with the event (e.g., Transaction). paymentType: type: string description: Type of payment, denoted by a numeric code. status: type: string description: Status code representing the current state of the transaction. statusMessage: type: string description: A message describing the current status of the transaction. timeZone: type: string description: The timezone of the event, formatted in IANA timezone database format. transactionType: type: string description: Type of transaction, denoted by a numeric code. paymentProviderTransaction.status: type: string description: Status code representing the current state of the transaction. paymentProviderTransaction.statusMessage: type: string description: A message describing the current status of the transaction. description: A generic event object that includes common properties for all webhook events. This can be extended for specific event types. title: EventExpire EventFailedPaymentProviderTransaction: type: object properties: status: type: string statusMessage: type: string title: EventFailedPaymentProviderTransaction EventFailed: type: object properties: createdAt: type: string format: int64 description: The timestamp when the event was created, represented as a Unix timestamp in milliseconds. eventId: type: string description: Unique identifier for the event. eventType: type: string description: The type of event that triggered the webhook. merchantId: type: string description: The unique identifier of the merchant. message: type: string description: A message describing the event. objectId: type: string description: Unique identifier for the object associated with the event, such as a transaction. objectType: type: string description: The type of object associated with the event (e.g., Transaction). paymentType: type: string description: Type of payment, denoted by a numeric code. status: type: string description: Status code representing the current state of the transaction. statusMessage: type: string description: A message describing the current status of the transaction. timeZone: type: string description: The timezone of the event, formatted in IANA timezone database format. transactionType: type: string description: Type of transaction, denoted by a numeric code. paymentProviderTransaction: $ref: '#/components/schemas/EventFailedPaymentProviderTransaction' description: A transaction has failed. title: EventFailed EventRefreshPaymentProviderTransaction: type: object properties: status: type: string statusMessage: type: string title: EventRefreshPaymentProviderTransaction EventRefresh: type: object properties: createdAt: type: string format: int64 description: The timestamp when the event was created, represented as a Unix timestamp in milliseconds. eventId: type: string description: Unique identifier for the event. eventType: type: string description: The type of event that triggered the webhook. merchantId: type: string description: The unique identifier of the merchant. message: type: string description: A message describing the event. objectId: type: string description: Unique identifier for the object associated with the event, such as a transaction. objectType: type: string description: The type of object associated with the event (e.g., Transaction). paymentType: type: string description: Type of payment, denoted by a numeric code. status: type: string description: Status code representing the current state of the transaction. statusMessage: type: string description: A message describing the current status of the transaction. timeZone: type: string description: The timezone of the event, formatted in IANA timezone database format. transactionType: type: string description: Type of transaction, denoted by a numeric code. paymentProviderTransaction: $ref: '#/components/schemas/EventRefreshPaymentProviderTransaction' hardRefresh: type: boolean refreshPurpose: type: string success: type: boolean description: This event occurs when an attempt to refresh account data is made title: EventRefresh EventUpdate: type: object properties: createdAt: type: string format: int64 description: The timestamp when the event was created, represented as a Unix timestamp in milliseconds. eventId: type: string description: Unique identifier for the event. eventType: type: string description: The type of event that triggered the webhook. merchantId: type: string description: The unique identifier of the merchant. message: type: string description: A message describing the event. objectId: type: string description: Unique identifier for the object associated with the event, such as a transaction. objectType: type: string description: The type of object associated with the event (e.g., Transaction). paymentType: type: string description: Type of payment, denoted by a numeric code. status: type: string description: Status code representing the current state of the transaction. statusMessage: type: string description: A message describing the current status of the transaction. timeZone: type: string description: The timezone of the event, formatted in IANA timezone database format. transactionType: type: string description: Type of transaction, denoted by a numeric code. fiName: type: string description: A generic event object that includes common properties for all webhook events. This can be extended for specific event types. title: EventUpdate EventVerifyCustomer: type: object properties: createdAt: type: string format: int64 description: The timestamp when the event was created, represented as a Unix timestamp in milliseconds. eventId: type: string description: Unique identifier for the event. eventType: type: string description: The type of event that triggered the webhook. merchantId: type: string description: The unique identifier of the merchant. message: type: string description: A message describing the event. objectId: type: string description: Unique identifier for the object associated with the event, such as a transaction. objectType: type: string description: The type of object associated with the event (e.g., Transaction). paymentType: type: string description: Type of payment, denoted by a numeric code. status: type: string description: Status code representing the current state of the transaction. statusMessage: type: string description: A message describing the current status of the transaction. timeZone: type: string description: The timezone of the event, formatted in IANA timezone database format. transactionType: type: string description: Type of transaction, denoted by a numeric code. customer.name: type: string description: The `VerifyCustomer` event provides the result of the identity verification check performed against the data from the bank. title: EventVerifyCustomer securitySchemes: HTTPBasic: type: http scheme: basic description: '' externalDocs: description: Trustly North America API reference url: https://amer.developers.trustly.com/api-reference/api