A Plaid API library for Dart developers.
Usage
A simple usage example:
import 'package:chopper/chopper.dart';
import 'package:dart_plaid/dart_plaid.dart';
Future<void> main() async {
/// Checks for errors in an api response and throws if found
checkResponse(Response response) {
if (!response.isSuccessful) {
throw Exception('${response.statusCode}: ${response.base.reasonPhrase}');
}
}
// Create an instance of the Plaid service using a clientId and secret
PlaidService plaid = Plaid.create('my-client-id', 'my-secret',
environment: PlaidEnvironment.sandbox);
// Create a new institution instance and get the public token
final publicTokenRes = await plaid.sandboxPublicTokenCreate(
body: SandboxPublicTokenCreateRequest(
institutionId: 'ins_10', initialProducts: [Products.assets]));
// Check for errors in the response
checkResponse(publicTokenRes);
final publicToken = publicTokenRes.body?.publicToken;
// Exchange public token for private access token
final accessTokenRes = await plaid.itemPublicTokenExchange(
body: ItemPublicTokenExchangeRequest(publicToken: publicToken));
// Check for errors in the response
checkResponse(accessTokenRes);
final accessToken = accessTokenRes.body?.accessToken;
// Use the access token to get a list of accounts
final accountsRes = await plaid.accountsGet(
body: AccountsGetRequest(accessToken: accessToken));
// Check for errors in the response
checkResponse(accountsRes);
// Print out the accounts
for (AccountBase a in accountsRes.body?.accounts ?? []) {
print(a.officialName);
}
}
Features and bugs
Please file feature requests and bugs at the issue tracker.