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 as0b8d4b2a-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.
- 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).
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.
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.
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.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 ascredit_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.
Items
Items
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 tableAccounts
Accounts
Bank accounts (checking, savings) and credit cards of each item, with balances, limits and due dates.Table:
accounts · Primary key: id · Sync: Full tableTransactions
Transactions
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)Credit Card Bills
Credit Card Bills
Bills (faturas) of each credit card account, with charges and payments.Table:
credit_card_bills · Primary key: id · Sync: Full tableInvestments
Investments
Investment positions of each item: funds, fixed income, stocks, treasury bonds and others.Table:
investments · Primary key: id · Sync: Full tableInvestment Transactions
Investment Transactions
Movements of each investment: purchases, redemptions, taxes, interest and amortizations.Table:
investment_transactions · Primary key: id · Sync: Full tableLoans
Loans
Loans, financings, invoice financings and overdraft contracts of each item.Table:
loans · Primary key: id · Sync: Full tableIdentities
Identities
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 tableConsents
Consents
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 tableCategories
Categories
Transaction categories of Pluggy’s categorization, with their parents and Portuguese names.Table:
categories · Primary key: id · Sync: Full tableConnectors
Connectors
Institutions Pluggy connects to, sandbox ones included, with the products each one supports.Table:
connectors · Primary key: id · Sync: Full tableHow 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:- every transaction Pluggy received since the previous sync, whatever its date;
- every transaction dated within the Transactions lookback (days) window, to update status, category and description;
- 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.
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 NULLfor 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 newid; a cancelled scheduled payment is deleted too. The connector keeps the old row and fills inremoved_atwith the time it noticed the removal. A removed row keeps onlyid,account_id,item_id,date,updated_atandremoved_at, so it also drops out of sums by itself. Filterremoved_at IS NULLto see only the transactions that exist in Pluggy today. The same filter also hides the rows that hold onlyid,dateandremoved_atwith 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_idis 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 bydate,amountanddescription. -
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_idvalues. Remove the old item from Item IDs (or delete it in Pluggy) and reconcile withprovider_id(Open Finance) or withdate,amountanddescription. - 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.
-
Connections that Pluggy could not refresh. Items with status
LOGIN_ERROR,OUTDATEDorWAITING_USER_INPUTkeep 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 theitemstable 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,
typetells 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.