Skip to content
Proud to collaborate with Microsoft for Startups

Bling ​

WorkflowTypeDescription
bling.cancel-nfseAtomicCancel an authorized NFS-e at Bling and reflect the cancellation on the commerce_entity row. Requires a justification.
bling.create-journal-entryAtomicDirect creation of a Bling lançamento. Caller supplies the Bling-side linked_receivable_external_ref or linked_payable_external_ref + amount; this workflow POSTs to /contas/{kind}/{id}/lancamentos and persists the result into commerce_entity.
bling.create-payableAtomicCreate a new accounts-payable row at Bling (POST /contas/pagar). Persists the result into commerce_entity (entity_type='payable').
bling.create-receivableAtomicCreate a new accounts-receivable row at Bling (POST /contas/receber). Persists into commerce_entity (entity_type='receivable').
bling.emit-nfseLinearMulti-step emission of an NFS-e (Brazilian services electronic invoice). Validates input, submits via Bling /nfse, polls until the municipality returns AUTHORIZED or REJECTED, and persists the result. The load-bearing piece of the Stripe → NF flow.
bling.fetch-categoryAtomicFetch one page of Bling product categories (categorias/produtos) via LTIP.
bling.fetch-companyAtomicFetch the connected Bling tenant identity via LTIP commerce_company and persist it as a commerce_entity row (entity_type='company'). Singleton — no pagination.
bling.fetch-contactAtomicFetch one page of Bling contacts (contatos) via LTIP.
bling.fetch-cost-centerAtomicFetch one page of Bling cost centers (centros-de-custos) via LTIP.
bling.fetch-dreAtomicFetch the DRE (Demonstração do Resultado do Exercício / P&L) report for a date range and persist into commerce_entity.
bling.fetch-faturamentoAtomicFetch the faturamento (billing summary) report for a date range and persist into commerce_entity.
bling.fetch-financial-categoryAtomicFetch one page of Bling financial categories (chart of accounts) via LTIP.
bling.fetch-invoiceAtomicFetch one page of Bling NF-e invoices (nfe) via LTIP. Read-only.
bling.fetch-journal-entryAtomicFetch one page of Bling lançamentos (journal entries) scoped to a specific receivable or payable. Returns items + has_next_page.
bling.fetch-orderAtomicFetches one page of Bling sales orders (pedidos/vendas) via LTIP. Returns items + has_next_page; a paginating DAG resumes from page+1.
bling.fetch-payableAtomicFetch one page of Bling accounts payable (contas/pagar) via LTIP.
bling.fetch-payment-methodAtomicFetch one page of Bling payment methods (formas-de-pagamento) via LTIP.
bling.fetch-productAtomicFetches one page of products from Bling via LTIP. Returns the page's items in state_data plus has_next_page so a paginating DAG can resume.
bling.fetch-receivableAtomicFetch one page of Bling accounts receivable (contas/receber) via LTIP.
bling.fetch-regimeAtomicRead the connected Bling tenant's tax regime (regimeTributario) by calling bling.fetch-company under the hood. Persists into commerce_entity with entity_type='tax_regime'.
bling.fetch-service-invoiceAtomicFetch one page of Bling NFS-e (nfse) via LTIP. Read + sync side.
bling.fetch-stock-balanceAtomicFetch one page of Bling stock balances (estoques/saldos) via LTIP.
bling.fetch-tax-obligationAtomicFetch one page (or a single resource by id) of Bling tax-calendar obligations (obrigacoes-acessorias).
bling.fetch-userAtomicFetch the OAuth-authenticated Bling user identity via LTIP commerce_user and persist it as a commerce_entity row (entity_type='user'). Singleton — no pagination.
bling.fetch-warehouseAtomicFetch one page of Bling warehouses (depositos) via LTIP.
bling.initial-syncAtomicRuns the per-entity Bling sync workflows in dependency order — first the catalog support (categories, warehouses, contacts), then products, then stock, then sales documents.
bling.list-ordersAtomicList one page of Bling sales orders without persistence or OAuth token rotation. This is the tenant-safe read surface for interactive callers.
bling.oauth-callbackLinearValidates the OAuth state, exchanges the authorization code for access/refresh tokens at Bling, and delegates persistence to connection.setup.
bling.oauth-startAtomicProduces the Bling OAuth2 authorize URL and a signed state token. Front-end redirects the user to authorize_url; bling.oauth-callback validates the returned state.
bling.receive-webhookAtomicDispatch a persisted Bling webhook delivery to the right entity-specific fetch workflow. Re-fetches the affected resource so platform state stays in sync with Bling. Marks commerce_webhook_event.processed_at on success.
bling.refresh-tokenLinearLoads an existing Bling CloudConnection, exchanges its refresh_token for a fresh access/refresh pair at Bling, and persists the rotated credentials.
bling.refresh-token-dueAtomicScans active Bling connections, refreshes any whose access_token expires within window_minutes. Designed to be invoked on a schedule so tokens never silently expire mid-API call.
bling.settle-payableLinearConvenience wrapper: settles a payable by creating an EXPENSE lançamento at Bling and refreshing the parent payable.
bling.settle-receivableLinearConvenience wrapper: settles a receivable by creating an INCOME lançamento at Bling and refreshing the parent receivable. Used by the Stripe webhook handler when a charge succeeds.
bling.sync-categoriesLinearIterate every page of Bling product categories, persist into commerce_entity.
bling.sync-contactsLinearIterate every page of Bling /contatos, persist into commerce_entity.
bling.sync-cost-centersLinearIterate every page of Bling cost centers, persist into commerce_entity.
bling.sync-financial-categoriesLinearIterate every page of Bling financial categories, persist into commerce_entity.
bling.sync-invoicesLinearIterate every page of Bling NF-e, persist into commerce_entity. Read-only.
bling.sync-journal-entriesLinearIterate every page of Bling lançamentos for a single bill and persist each into commerce_entity (entity_type='journal_entry').
bling.sync-ordersLinearIterates every page of Bling /pedidos/vendas (optionally filtered by since), persists each item via data.commerce.entity.persist, and writes a sync cursor at completion. Retries inherit from the underlying bling.fetch-order workflow.
bling.sync-payablesLinearIterate every page of Bling /contas/pagar, persist into commerce_entity.
bling.sync-payment-methodsLinearIterate every page of Bling payment-methods catalog, persist into commerce_entity.
bling.sync-productsLinearIterates through every page of Bling /produtos (optionally filtered by since for incremental sync), aggregating counts. Each page is fetched via the bling.fetch-product workflow, so retries and rate limiting are inherited from that workflow.
bling.sync-receivablesLinearIterate every page of Bling /contas/receber, persist into commerce_entity.
bling.sync-service-invoicesLinearIterate every page of Bling NFS-e, persist into commerce_entity.
bling.sync-stock-balancesLinearIterates every page of Bling /estoques/saldos and persists each row into commerce_entity. No incremental cursor on Bling's side — full scan every run; rely on diffs at the persist layer.
bling.sync-tax-obligationsLinearIterate every page of Bling tax obligations, persist into commerce_entity.
bling.sync-warehousesLinearIterate every page of Bling warehouses, persist into commerce_entity.
bling.upsert-contactAtomicCreate or update a Bling contact (contato). Routes to POST /contatos or PUT /contatos/{id} based on whether contact_external_ref is supplied. Persists the result into commerce_entity.