Skip to main content
Pluggy is a Brazilian Open Finance data aggregator. Through Pluggy, a person or a company connects their bank accounts, credit cards, investments and loans, and Pluggy keeps collecting that data from the institutions with the user’s consent. The connector reads, from your own Pluggy application, what Pluggy collected for your connections: accounts and credit cards, transactions, credit card bills, investments and their movements, loans, identity data and consents, plus the list of categories and institutions.

Configuring Pluggy as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Pluggy option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

The connector uses the Client ID and Client Secret of your Pluggy application. Open the Pluggy Dashboard, go to Applications and copy both from the application that holds the connections you want to sync. Use the production application: development applications are limited and do not refresh connections automatically. Nekt uses these credentials only to create the temporary API key that reads your data; it never creates, updates or deletes connections. In Pluggy, each connection to a bank or institution is an item, identified by an item id such as 0b8d4b2a-1c3e-4f5a-9b6c-7d8e9f0a1b2c. Your application receives the item id when a connection is created (in the Pluggy Connect onSuccess callback and in the item/created webhook), and the Pluggy Dashboard shows it for connections made there. The following configurations are available:
  • Client ID: the Client ID of your Pluggy application. Required.
  • Client Secret: the Client Secret of the same application. Required.
  • Item IDs: the item ids of the connections to sync. Leave it empty to sync every item of the application.
Listing every item of an application is a Pluggy feature that is disabled by default. If you leave Item IDs empty and Pluggy has not enabled item listing for your team, the sync stops with a message asking you to fill in the item ids. Ask Pluggy support to enable it, or list the items to sync.
  • Start Date: the earliest transaction date to sync. Leave it empty to sync every transaction Pluggy holds. It only applies to transactions; the other tables always bring the current state.
  • Transactions lookback (days): (Default: 30) transactions dated within this many days are read again on every sync, to pick up changes of status (pending to posted), category or description. Pending transactions older than that are followed one by one until they settle (see How transactions are kept up to date).
Once you’re done, click Next.

2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.
Tip: The stream can be found more easily by typing its name.
Select the streams and click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.
  • Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
  • Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
  • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
  • Sync Type: use INCREMENTAL for Transactions, which reads only what changed on each sync. Every other stream is FULL_TABLE: Pluggy has no “changed since” filter for them, so each sync reads their current state. Read more about Sync Types here.
Once you are done configuring, click Next.

4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. Pluggy refreshes each connection with the institution on its own schedule (usually once a day, as agreed with Pluggy), so syncing more often than that brings little new data. Optionally, you can define some additional settings:
  • Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
  • Determine when to execute an Additional Full Sync. Transactions do not need it: incremental syncs already mark the transactions Pluggy removed (see Data Quality Considerations). If you schedule one, read the warning in that section first.
Once you are ready, click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Available streams

The table below lists every stream, its slug (the exact identifier to pass when creating the source via API) and a short description.

Fields by stream

Nested structures (payment data, credit card details, bank and credit card details, loan terms, contacts) are JSON strings; the most used values are also available as their own columns, such as credit_limit, bill_id, installment_number and payment_method. Fields Pluggy adds in the future land in additional_fields until they get a column of their own. Dates are in UTC.
One row per Pluggy item: the connection between your Pluggy application and one bank or institution, with its sync status and consent expiry.Table: items · Primary key: id · Sync: Full table
Bank accounts (checking, savings) and credit cards of each item, with balances, limits and due dates.Table: accounts · Primary key: id · Sync: Full table
Statement lines of bank accounts and purchases, payments and installments of credit cards, with category, payment data and merchant.Table: transactions · Primary key: id · Sync: Incremental (replication key updated_at)
Bills (faturas) of each credit card account, with charges and payments.Table: credit_card_bills · Primary key: id · Sync: Full table
Investment positions of each item: funds, fixed income, stocks, treasury bonds and others.Table: investments · Primary key: id · Sync: Full table
Movements of each investment: purchases, redemptions, taxes, interest and amortizations.Table: investment_transactions · Primary key: id · Sync: Full table
Loans, financings, invoice financings and overdraft contracts of each item.Table: loans · Primary key: id · Sync: Full table
Registration data of the holder of each item: name, documents, contacts, addresses and, for businesses, partners. Items whose institution does not provide it have no row.Table: identities · Primary key: id · Sync: Full table
Consents the user gave for each item: authorized products and permissions, and when they expire or were revoked.Table: consents · Primary key: id · Sync: Full table
Transaction categories of Pluggy’s categorization, with their parents and Portuguese names.Table: categories · Primary key: id · Sync: Full table
Institutions Pluggy connects to, sandbox ones included, with the products each one supports.Table: connectors · Primary key: id · Sync: Full table

How transactions are kept up to date

Pluggy does not offer a “changed since” filter for transactions, and a transaction can change long after its date: a credit card purchase stays pending until its bill closes, installments and scheduled payments are dated in the future, and categories can be updated. On every incremental sync the connector reads, for each account:
  1. every transaction Pluggy received since the previous sync, whatever its date;
  2. every transaction dated within the Transactions lookback (days) window, to update status, category and description;
  3. every transaction that was pending on an earlier sync and is now older than the window, until Pluggy reports it as posted or removes it.
A transaction that was dated inside the window (or pending) on the previous sync and is not returned this time is asked for by its id, because Pluggy can update a transaction in place and move its date. If Pluggy still has it, the row is simply updated, with its new date. Only if Pluggy no longer has it is it sent once more with removed_at filled in, so its row in your table is marked as removed instead of staying as a duplicate. If an account returns no transactions at all while earlier syncs saw recent or pending ones (which is what a lost consent or permission looks like), nothing is marked as removed and the sync log tells you which connection to check. Each account keeps its own sync point, which only moves forward when the whole sync completes.

Data Quality Considerations

  • Use removed_at IS NULL for totals. When an institution restates a transaction (its date, amount or description changes, mostly on credit cards around the bill closing), Pluggy deletes it and creates a new one with a new id; a cancelled scheduled payment is deleted too. The connector keeps the old row and fills in removed_at with the time it noticed the removal. A removed row keeps only id, account_id, item_id, date, updated_at and removed_at, so it also drops out of sums by itself. Filter removed_at IS NULL to see only the transactions that exist in Pluggy today. The same filter also hides the rows that hold only id, date and removed_at with every other column empty: they can appear after a full sync of Transactions, when the next incremental sync marks a transaction that the full sync had already left out:
  • Removals are detected within the lookback window. A transaction removed after it left the Transactions lookback (days) window (and that was not pending) cannot be noticed by an incremental sync. A full sync of Transactions rebuilds the table from what Pluggy holds; read the warning below first.
  • provider_id is the institution’s own transaction id. It does not change when Pluggy recreates a transaction, but Pluggy only returns it for Open Finance connections; for direct connections it is always empty, and transactions can only be matched by date, amount and description.
  • Reconnecting creates a new item. When a user revokes a consent and connects the same bank again, Pluggy creates a new item, with new account and transaction ids, and does not deduplicate it against the old one. The old item’s transactions stay in your table, so the same purchase can appear under two account_id values. Remove the old item from Item IDs (or delete it in Pluggy) and reconcile with provider_id (Open Finance) or with date, amount and description.
  • Expired or revoked consents return no data. When the consent of a connection expires or is revoked, Pluggy keeps the item but returns no accounts, transactions or other data for it until the user connects again. The sync log lists those connections, and tables synced as FULL_TABLE lose that connection’s rows on the next sync; Transactions synced incrementally keep what was already loaded. The sync stops instead, before writing any table and with the list of connections to reconnect, when the consent of every connection expired or was revoked, and when Transactions is set to be fully replaced while a connection is expired.
A full sync of Transactions replaces the table with what Pluggy holds at that moment. Pluggy keeps transactions from about 12 months before each connection was created, and returns nothing for deleted connections: their transactions, and the rows already marked with removed_at, are removed from the table.
  • Connections that Pluggy could not refresh. Items with status LOGIN_ERROR, OUTDATED or WAITING_USER_INPUT keep serving the data of their last successful sync until the user updates the connection, so the sync goes on (even when every connection is in that state). The sync log lists them, and the items table shows their status and error.
  • Availability depends on the institution and your Pluggy plan. Investments, loans, identity and credit card bills exist only for institutions that provide them. Transaction categories and merchant data require those features in your Pluggy subscription; without them the columns are empty.
  • Amounts and signs. Amounts keep the precision Pluggy returns. On credit cards, a positive amount is a charge and a negative amount is a payment or credit; on bank accounts, type tells inflows (CREDIT) from outflows (DEBIT).
  • Errors stop the sync. If Pluggy keeps failing, returns an unexpected answer or a list changes while it is being read, the sync stops with a message instead of loading incomplete data; the next sync tries again. Rate limits are handled automatically by waiting.