Introduction

TransactionLink enables you to retrieve SKU-level transaction data from a user’s merchant on a recurring basis. With TransactionLink, you can retrieve both historical transactions and new transactions that will occur in the future. You can reference the exact data you’ll receive for each transaction here.

Entry Points

Overview

How and where you place entry points to invoke the Knot flow in your app play a crucial role driving engagement and delivering value to end users. Nearly all apps that integrate Knot develop multiple entry points into the Knot flow (e.g. different tabs or screens). As a result and to provide better visibility into the conversion of the flow across different entry points, the Knot SDK supports an entryPoint parameter when invoking the SDK which allows you to specify the entry point from which the user came. This value is then returned in the down-funnel AUTHENTICATED webhook event, thereby allowing you to measure the conversion of the flow by entry point in your analytics tool of choice.

Usage

It is strongly recommended to take advantage of this functionality, so as to future-proof your visibility into your implementation and allow for future optimizations. To take advantage of this functionality, simply pass a different value to KnotConfiguration.entryPoint for each of your entry points when configuring the session to invoke the SDK. Common entry points include the following: onboarding, home, push-notif-X, in-app-lifecycle-card-X, etc.

Getting started

Start the flow

Receive transactions

New transactions

To be notified about new transactions in a merchant account, listen to the NEW_TRANSACTIONS_AVAILABLE webhook. You will receive this event shortly after a user authenticates to a merchant account for the first time and on any subsequent instance where new transactions are created in the merchant account. Upon receiving the NEW_TRANSACTIONS_AVAILABLE webhook, make a request (or multiple) to Sync Transactions to sync new transactions for a user’s specific merchant account. In the development environment, you will receive 205 new transactions.

Updated transactions

Receiving updated transaction information is entirely optional and may not be relevant for your use case.
To be notified about updates to existing transactions, listen to the UPDATED_TRANSACTIONS_AVAILABLE webhook. You will receive this event for a merchant account each time there are existing transactions for which data has changed (e.g. orderStatus: SHIPPED -> orderStatus: DELIVERED). Upon receiving the UPDATED_TRANSACTIONS_AVAILABLE webhook with an array of transaction IDs, make a request to Get Transaction By Id for each transaction ID, passing the ID received in the webhook as a path parameter.

Handle disconnected merchant accounts

If for example a user changes their password to a merchant account, the connection.status in Get Merchant Accounts will be returned as disconnected and you will not receive transaction data for the user’s merchant account until it is reconnected. If this occurs, you will be notified via the ACCOUNT_LOGIN_REQUIRED webhook event. You’ll want to display a UX in your app to allow users to reconnect their account. For example, you may choose to display a button that says “Reconnect” or similar.
To test this behavior in development, use the Disconnect Account endpoint.
To unlink a user’s specific merchant account if they request it, make a request to Unlink Merchant Account.