Skip to content

Plaid

Bank account linking with Plaid Link for financial apps.

Installation

bash
npm install @nstudio/nativescript-plaid

Demo

Plaid Demo

Usage

This plugin opens the Plaid Link flow, which walks the user through finding their institution and linking their bank account. It opens the flow in a modal view and returns metadata for events, on exit, and on success.

Basic Example

typescript
import { PlaidLink } from '@nstudio/nativescript-plaid';

export class BankLinkingComponent {
  successPublicToken: string;

  open() {
    // Set an event listener for Plaid events
    PlaidLink.setLinkEventListener((event) => {
      console.log('Link Event:', event);
    });

    // Create a handler with your link token
    const handler = PlaidLink.createHandler({
      token: 'YOUR_LINK_TOKEN',
      onSuccess: (linkSuccess) => {
        console.log('Success:', linkSuccess);
        this.successPublicToken = linkSuccess.publicToken;
      },
      onExit: (linkExit) => {
        console.log('Exit:', linkExit);
      }
    });

    // Open the Plaid Link flow
    handler.open();
  }
}

You need to generate a link token from your server using the Plaid API.

typescript
// Example: Fetch link token from your backend
async function getLinkToken(): Promise<string> {
  const response = await fetch('https://your-api.com/create-link-token');
  const data = await response.json();
  return data.link_token;
}

API Reference

Set a listener for events during the Link flow.

typescript
PlaidLink.setLinkEventListener((event) => {
  console.log('Event name:', event.eventName);
  console.log('Event metadata:', event.metadata);
});

Create a Plaid Link handler with the given configuration.

OptionTypeDescription
tokenstringYour Plaid link token (required)
onSuccessfunctionCalled when linking succeeds
onExitfunctionCalled when user exits the flow

handler.open()

Open the Plaid Link modal flow.

Success Response

The onSuccess callback receives a LinkSuccess object:

typescript
interface LinkSuccess {
  publicToken: string;
  metadata: {
    institution: {
      id: string;
      name: string;
    };
    accounts: Array<{
      id: string;
      name: string;
      type: string;
      subtype: string;
      mask: string;
    }>;
    linkSessionId: string;
  };
}

Exit Response

The onExit callback receives a LinkExit object:

typescript
interface LinkExit {
  error?: {
    errorCode: string;
    errorMessage: string;
  };
  metadata: {
    institution?: {
      id: string;
      name: string;
    };
    linkSessionId: string;
    status: string;
  };
}

License

Apache License Version 2.0