Skip to main content
Bling is a comprehensive business management platform that provides tools for invoicing (NFe, NFCe, NFSe), inventory control, sales management, financial operations (accounts payable/receivable), and CRM. It helps businesses streamline their operations with integrated solutions for e-commerce, accounting, and logistics.

Configuring Bling as a Source

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

1. Add account access

You’ll need OAuth credentials to connect to Bling. Log in with your Bling account to generate the access token. Make sure you use an account with sufficient privileges to access your Bling data. The following configurations are available: The following configurations are available:
  • Start Date: Records created or updated after this date will be extracted from the source.
  • Lookback Window: The number of days to look back when re-fetching records based on the replication key (default: 30 days).
Once you’re done, click Next.

2. Select streams

Choose which data streams you want to sync - you can select all streams or pick specific ones that matter most to you. The available streams include invoices (NFe, NFSe), products, sales orders, accounts payable/receivable, cash registers, stock balances, contacts, and more.
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: you can choose between INCREMENTAL and FULL_TABLE.
    • Incremental: every time the extraction happens, we’ll get only the new data - which is good if, for example, you want to keep every record ever fetched.
    • Full table: every time the extraction happens, we’ll get the current state of the data - which is good if, for example, you don’t want to have deleted data in your catalog.
Bling API only allows fetching historical data from 2025-01-01.
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. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). 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. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.
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.

API Limitations & Performance

Important: Bling has strict API rate limits that affect extraction performance:
  • ~3 requests per second (rate limited to 1 request per 0.35 seconds to prevent burst rejections)
  • 120,000 requests per day (daily quota). If this limit is reached during a run, the extraction will stop gracefully, save its state, and resume from where it left off in the next scheduled run.

Understanding Sync Times

Bling uses a parent-child stream architecture for detailed data. For each parent record (e.g., a Product or Sales Order), an additional API request is made to fetch the detailed information. This means:
  • Products + Product Details: 1 request for the list + 1 request per product
  • Product Stores + Product Store Details: 1 request for the list + 1 request per product-store link
  • Sales Orders + Sales Order Details: 1 request for the list + 1 request per order
  • Purchase Orders + Purchase Order Details: 1 request for the list + 1 request per order
  • Contracts + Contract Details: 1 request for the list + 1 request per contract
  • NFe + NFe Details: 1 request for the list + 1 request per invoice
  • NFCe + NFCe Details: 1 request for the list + 1 request per invoice
  • Contacts + Contact Details: 1 request for the list + 1 request per contact
  • Stock Balances: Batch requests for multiple products to optimize API usage
Tip for faster syncs: If you don’t need the detailed information, consider syncing only the parent streams (e.g., Products without Product Details). This significantly reduces the number of API calls and sync time.
For example, if you have 10,000 products and select both Products and Product Details streams:
  • At 3 requests/second, fetching all product details alone would take approximately 55 minutes
  • With 120,000 daily requests, you’re limited to syncing approximately 120,000 detailed records per day
  • If you have more than 120,000 detailed records in your account, an initial sync might hit the daily limit. The connector handles this by gracefully pausing the extraction when the limit is reached and automatically resuming during the next run until all historical data is fetched.
Recommendations:
  1. Start with a minimal set of streams and add more as needed
  2. Use incremental sync when available to reduce the number of records fetched
  3. Schedule full syncs during off-peak hours if you have large datasets
  4. Consider syncing only parent streams if detailed data isn’t required

Stream to Endpoint Mapping

Streams and Fields

Below you’ll find all available data streams from Bling and their corresponding fields:

Invoices & Fiscal Documents

Contacts & CRM

Stream for managing contacts (customers, suppliers, partners). Supports incremental sync using modification date filter.
Stream for detailed contact information (child of Contacts).

Invoices & Fiscal Documents

Stream for managing electronic invoices (NFe) for products.
Stream for detailed NFe information (child of NFe stream).
Stream for retrieving the XML document content of an NFe (child of NFe stream). Supports incremental sync.
Stream for managing electronic service invoices (NFSe). Unlike NFe which is for products, NFSe is specifically for service-based transactions.
Static stream providing a mapping of NFe situation IDs to their descriptions.
Static stream providing a mapping of NFSe situation IDs to their descriptions.
Stream for managing different types of business operations (nature of operations for invoices).

Sales & Orders

Stream for managing sales orders. Supports incremental sync using modification date filter.
Stream for detailed sales order information (child of Sales Orders).

Products & Inventory

Stream for managing product catalog. Supports incremental sync using modification date filter.
Stream for detailed product information (child of Products).
Stream for managing product categories.
Stream for managing product-store links (produtos lojas).
Stream for detailed product-store link information (child of Product Stores).
Stream for retrieving current stock balances by product and deposit. This stream provides real-time inventory information across different warehouses and locations.

Financial

Stream for managing accounts receivable (amounts to be received).
Stream for detailed accounts receivable information (child of Accounts Receivable).
Stream for managing borderos (settlement batches with the actual receipt/payment date). This is a child stream of Accounts Receivable Details.
Stream for managing payment slips (boletos) associated with accounts receivable.
Stream for managing accounts payable (amounts to be paid).
Stream for detailed accounts payable information (child of Accounts Payable).
Stream for managing cash register entries. Supports incremental sync using date filter.
Stream for managing accounting accounts (bank accounts, payment integrations).
Stream for managing revenue and expense categories.
Stream for detailed revenue/expense category information (child of Revenue Expense Categories).

Configuration

Stream for managing store categories (for e-commerce integrations).
Stream for detailed store category information (child of Store Categories).
Stream for retrieving situation modules (situações módulos).
Stream for retrieving situations per module (situações por módulo). Child stream of Situation Modules.

Data Model

The following diagram illustrates the relationships between the core data streams in Bling. The arrows indicate the join keys that link the different entities.

Implementation Notes

API Rate Limits

  • Rate Limit: ~3 requests per second (enforced as 1 request per 0.35 seconds)
  • Daily Quota: 120,000 requests per day. The connector gracefully handles daily limit exceptions by saving its state and resuming in subsequent runs.
  • Historical Data Limit: Bling API only allows fetching data from 2025-01-01 onwards

Pagination Behavior

  • Variable Page Sizes: The Bling API occasionally returns pages with fewer records than requested (e.g., 85 or 50 records instead of 100) even when more data is available. The connector correctly handles this by continuing to paginate until an empty page is received, preventing silent data truncation.
  • Pagination Safety Cap: To protect against API misbehavior, a hard limit of 1,000 pages per 1-year time window (up to 100,000 records) is enforced. If this limit is hit, the connector logs a warning and gracefully advances to the next time window.

Data Quality

  • Portuguese Field Names: Field names use Portuguese terminology (e.g., contato for contact, situacao for status, vencimento for due date)
  • Date Formats: Dates are typically in YYYY-MM-DD format, datetimes in YYYY-MM-DD HH:MM:SS format
  • Status Values: Many entities use numeric status values - refer to the Situation streams for human-readable descriptions

Incremental Sync Support

The following streams support incremental sync:
  • Invoice streams (NFe, NFe Details, NFe Document, NFSe): Use dataEmissao or dataEmissaoNfe as replication key
  • Product streams (Products, Product Details): Use dataFiltroAlteracao (modification filter date) as replication key
  • Sales streams (Sales Orders, Sales Order Details): Use dataFiltroAlteracao as replication key
  • Contact streams (Contacts, Contact Details): Use dataFiltroAlteracao as replication key
  • Financial streams (Accounts Receivable, Accounts Payable, Boleto, Cash Registers): Use dataEmissao, dataFiltro, or data as replication key
  • Stock Balances: Inherits dataFiltroAlteracao from parent products for incremental sync

Child Streams & Performance

  • Parent-Child Architecture: Detail streams (e.g., Product Details, Product Store Details, Sales Order Details, Purchase Order Details, Contract Details, NFe Details, NFe Document, NFCe Details, Contact Details, Situations) make one additional API request per parent record using single-resource fetching
  • Performance Impact: With 3 requests/second rate limit, fetching 10,000 detailed records takes approximately 55 minutes
  • Batch Processing: Stock Balances uses batch requests to optimize API usage by fetching multiple products at once
  • Optimization: If you don’t need detailed data, sync only parent streams to significantly reduce API calls and sync time
  • Lookback Window: Use the lookback window configuration to re-fetch recently modified records and ensure data consistency

Brazilian Context

  • NFe/NFCe/NFSe: Brazilian electronic invoice types
    • NFe: Product invoices
    • NFCe: Consumer invoices (retail)
    • NFSe: Service invoices
  • Document Numbers: numeroDocumento typically refers to CPF (individuals) or CNPJ (companies)
  • ICMS/IPI: Brazilian tax codes included in invoice details

Skills for agents

Download Bling skills file

Bling connector documentation as plain markdown, for use in AI agent contexts.