This is a simple wrapper around the Plaid API that uses fetch to make requests for compatibility in edge environments that don't support Plaid's official Node SDK, which requires Axios support.
Code is generated using Plaid's OpenAPI spec with @openapitools/openapi-generator-cli with the typescript-fetch generator. This allows similar usage to the official Plaid Node SDK, which is generated using the same package.
This is an unofficial, community-maintained library. It is not maintained by Plaid, and has not been extensively tested, so use at your own risk and please report or contribute if you find any issues.
First, you'll need to create a Plaid account and get your API keys. You can do that here.
Install the package:
npm install plaid-fetch
# or
yarn add plaid-fetch
# or
pnpm add plaid-fetchThen, initialize a client:
import { Configuration, PlaidApi } from 'plaid-fetch';
const configuration = new Configuration({
basePath: 'https://sandbox.plaid.com',
headers: {
'PLAID-CLIENT-ID': process.env.PLAID_CLIENT_ID,
'PLAID-SECRET': process.env.PLAID_SECRET,
},
})
const plaid = new PlaidApi(configuration);You can now use this client to make requests similar to the official Plaid SDK:
const response = await plaid.transactionsEnrich({
account_type: "credit",
transactions: [{
id: "abc123",
description: "SQ *COACHELLA VALLEY M Royal Oak MI US 48067",
amount: 26.10,
direction: 'OUTFLOW',
mcc: "5814",
date_posted: new Date('2024-04-14'),
iso_currency_code: "USD",
location: { country: "US", region: "MI", city: "Royal Oak", postal_code: "48067" }
}]
});
const enrichedTransactions = response.enriched_transactions;- Configuring the client is slightly different, since the official SDK uses Axios and this one uses
fetch. You need to pass thebasePathandheadersto theConfigurationconstructor (see above). - Responses are returned directly, so you don't need to access the
dataproperty. For example,response.data.enriched_transactionsbecomesresponse.enriched_transactions. This behavior may change in the future to match the official SDK more closely; if so, it will be released as a major version bump.
When a new Plaid API version is released, the wrapper can be updated by running the following command:
pnpm generateTODO: Set up changesets and automated releases.