
Configuring BSoft TMS as a Source
In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the BSoft TMS option from the list of connectors. Click Next and you’ll be prompted to add your access.1. Add account access
You’ll need to provide credentials for the BSoft TMS API. The integration uses HTTP Basic Authentication with a user that has the integration profile in BSoft TMS. The following configurations are available:-
Domain: Your BSoft TMS domain name (e.g.
yourdomain.bsoft.app). The connector will request data fromhttps://{domain}/services/index.php. - Username: Username with integration profile in BSoft TMS.
- Password: Password for the BSoft TMS integration user.
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: you can choose between INCREMENTAL and FULL_TABLE.
- Incremental: every time the extraction happens, we’ll get only the new data — used for streams that have a replication key (e.g. titulos_receber, titulos_pagar, pagamentos, recebimentos, transferencias).
- Full table: every time the extraction happens, we’ll get the current state of the data — used for master/reference streams (empresas, centros de custo, formas de pagamento, etc.).
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.
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
Below you’ll find all available data streams from BSoft TMS and their corresponding fields:Empresas
Empresas
Stream containing companies (empresas) registered in BSoft TMS.Key Fields:
id- Company identifier (primary key)descricao- Company namecnpj- Brazilian company tax registration number (CNPJ)
Centros de Custo
Centros de Custo
Stream for cost centers (centros de custo) used for allocation and reporting.Key Fields:
cod_cc- Cost center identifier code (primary key)cod_estendido- Extended hierarchical code of the cost centerdescricao- Cost center name or descriptionstatus- Status of the cost center (e.g. Aberto, Fechado)
Condições de Pagamento
Condições de Pagamento
Stream for payment conditions (e.g. 15 dias, 30 dias).Key Fields:
id- Payment condition identifier (primary key)descricao- Payment condition descriptionativo- Indicates whether the payment condition is active
Contas Financeiras
Contas Financeiras
Stream for financial accounts (bank accounts and similar).Key Fields:
id- Financial account identifier (primary key)descricao- Financial account description (including bank name and number)codBanco- Bank code
Família Produtos e Serviços
Família Produtos e Serviços
Stream for product and service families used to group services/products.Key Fields:
id- Product/service family identifier (primary key)descricao- Product/service family descriptioncod_estendido- Extended hierarchical code of the familynome_interno- Internal name used for system identificationfamiliaServicos- Indicates if this family is a service family (S/N)familiaProdutos- Indicates if this family is a product family (S/N)irrestrito- Indicates if access is unrestricted (S/N)
Formas de Pagamento
Formas de Pagamento
Stream for payment methods (e.g. boleto, PIX).Key Fields:
id- Payment method identifier (primary key)descricao- Payment method descriptiontipoCobranca- Billing type code (e.g. BLO for boleto)
Modelos de Notas
Modelos de Notas
Stream for invoice models (modelos de notas fiscais).Key Fields:
id- Invoice model identifier (primary key)descricao- Invoice model descriptionserie- Invoice series numberempresa- Company name associated with the invoice model
Tipos de Documentos
Tipos de Documentos
Stream for document type codes and their descriptions (e.g. NF, BOL, CTR). The API returns a key-value map; each entry is exposed as one record.Key Fields:
codigo- Document type code (primary key)descricao- Full document type description
Tipos de Pagamentos
Tipos de Pagamentos
Stream for payment types and their settings.Key Fields:
id- Payment type identifier (primary key)descricao- Payment type descriptionleContaDeposito- Indicates if this payment type reads a deposit account (S/N)obrigaContaDeposito- Indicates if a deposit account is required (S/N)contas_financeiras_id- Associated financial account identifiernome_interno- Internal name used for system identification
Tipos de Transações
Tipos de Transações
Stream for transaction types (e.g. TED, DOC, Cheque).Key Fields:
id- Transaction type identifier (primary key)descricao- Transaction type descriptionvisivel- Contexts where this transaction type is available (e.g. Pagamento - Recebimento)
Tipos Suspensões Cobranças
Tipos Suspensões Cobranças
Stream for billing suspension types (contract/item suspension, upgrade/downgrade, etc.).Key Fields:
id- Suspension type identifier (primary key)ativo- Indicates whether the suspension type is active (S/N)descricao- Suspension type descriptionperiodoIndeterminado- Indicates if the suspension has an indefinite period (S/N)validoParaContrato- Indicates if applicable to contracts (S/N)validoParaItensContrato- Indicates if applicable to contract items (S/N)upgradeDowngrade- Indicates if this type represents an upgrade or downgrade (S/N)disponivelParaRevisaoFaturamento- Indicates if available for billing review (S/N)
Plano de Contas Gerencial
Plano de Contas Gerencial
Stream for the management chart of accounts (plano de contas gerencial). Some records are category headers without a management code.Key Fields:
descricao- Account description including hierarchical code and name (primary key)codGerencial- Management account code (absent for category headers)
Plano de Contas Fiscal
Plano de Contas Fiscal
Stream for the fiscal chart of accounts (plano de contas fiscal).Key Fields:
cod_fiscal- Fiscal account code (primary key)cod_fiscal_ext- Extended hierarchical fiscal account codenome- Fiscal account nameativo- Indicates whether the account is active (S/N)
Rateios
Rateios
Stream for cost apportionment codes (rateios) used in allocations.Key Fields:
codRateio- Apportionment code identifier (primary key)codEstendido- Extended hierarchical code of the apportionmentdescricao- Apportionment description
Serviços
Serviços
Stream for services and products (serviços) with pricing and family.Key Fields:
id- Service/product identifier (primary key)familia- Product/service family namedescricao- Service or product descriptionvalorCompra- Purchase pricevalorVenda- Sale pricecodigo- Service or product codevalorComissao- Commission value for the service or product
Títulos a Receber
Títulos a Receber
Stream for receivables (titulos a receber). Records are built from the API response: base data is flattened from
dados_basicos, and nested arrays (gerencias, rateios, duplicatas, etc.) are kept. Supports incremental sync by data_ultimaModificacao.Key Fields (dados_basicos):codFatura- Invoice (fatura) identifier (primary key)cod_cliente- Customer identifier codecliente- Customer nametipo- Document type code (e.g. ADT, AMV, BOL)numero- Document numbervalor- Total invoice amountdata_emissao- Invoice issue datedata_entrada- Invoice entry date in the systemforma_pagamento- Payment method descriptionnro_parcelas- Number of installmentshistorico- Invoice description or payment historyprevisao- Indicates if this is a forecast entry (S/N)data_ultimaModificacao- Last modification timestamp (replication key)data_criacao- Record creation timestampempresaId,empresa- Company identifier and nameacrescimos,abatimentos- Additional charges and discountsstatus- Invoice status (e.g. Aberto, Quitação total, Quitação parcial)referencia- Reference period (e.g. 05/2022)observacao- Additional notes
gerencias- Management account allocations (grupo, cod_gerencial, descricao, percentual, valor)rateios- Cost apportionment allocations (grupo, cod_rateio, descricao, percentual, valor)gerencias_acrescimos_abatimentos- Allocations for surcharges and discountsduplicatas- Installment schedule (parcela, loteId, data_vencimento, data_previsao_pagamento, valor, saldo)
Títulos a Pagar
Títulos a Pagar
Stream for payables (titulos a pagar). Same structure as Títulos a Receber: base data from
dados_basicos plus nested arrays. Supports incremental sync by data_ultimaModificacao.Key Fields (dados_basicos):codFatura- Invoice (fatura) identifier (primary key)cod_fornecedor- Supplier identifier codefornecedor- Supplier nametipo- Document type code (e.g. NF, FAT, CF)numero- Document numbervalor- Total invoice amountdata_emissao- Invoice issue datedata_entrada- Invoice entry date in the systemnro_parcelas- Number of installmentshistorico- Invoice description or payment historyprevisao- Indicates if this is a forecast entry (S/N)data_ultimaModificacao- Last modification timestamp (replication key)data_criacao- Record creation timestampempresaId,empresa- Company identifier and nameacrescimos,abatimentos- Additional charges and discountsstatus- Invoice status (e.g. Aberto, Quitação total)observacao- Additional notes
gerencias- Management account allocationsrateios- Cost apportionment allocationsduplicatas- Installment schedule (parcela, loteId, data_vencimento, valor, saldo, nroDoc)
Pagamentos
Pagamentos
Stream for payments (pagamentos) registered in the system. Supports incremental sync by
modificado.Key Fields:id- Payment identifier (primary key)codigo- Payment code referencelancamento- Payment posting dateconciliado- Bank reconciliation dateconta- Account name associated with the paymentvalor- Payment amountnumeroTransacao- Transaction numberusuario- User who registered the paymentmodificado- Last modification timestamp (replication key)historico- Payment history or description
Recebimentos
Recebimentos
Stream for receipts (recebimentos) registered in the system. Supports incremental sync by
modificado.Key Fields:id- Receipt identifier (primary key)codigo- Receipt code referencelancamento- Receipt posting dateconciliado- Bank reconciliation dateconta- Account name associated with the receiptvalor- Receipt amountnumeroTransacao- Transaction numberusuario- User who registered the receiptmodificado- Last modification timestamp (replication key)historico- Receipt history or description
Transferências
Transferências
Stream for transfers (transferências) between accounts. Supports incremental sync by
modificado.Key Fields:id- Transfer identifier (primary key)lancamento- Transfer posting dateconciliado- Bank reconciliation dateconta- Account name associated with the transfervalor- Transfer amountnumeroTransacao- Transaction numberusuario- User who registered the transfermodificado- Last modification timestamp (replication key)historico- Transfer history or description
Data Model
The following diagram illustrates the relationships between the main data streams in BSoft TMS. The arrows indicate the join keys that link the different entities.Use Cases for Data Analysis
This section outlines useful analyses when consolidating BSoft TMS data, with example SQL you can run on Explorer.1. Receivables by status and company
Summarize receivables (títulos a receber) by status and company to monitor open and paid amounts. Business value:- Track open receivables per company
- Compare totals by status (Aberto, Quitação total, Quitação parcial)
- Support cash flow and aging analysis
SQL query
SQL query
- AWS
- GCP
2. Payments and receipts summary
Aggregate payments and receipts by posting date for a cash flow view. Business value:- Daily cash in and out
- Compare payments vs receipts over time
- Support reconciliation and reporting
SQL query
SQL query
- AWS
- GCP
Implementation Notes
Authentication
- The connector uses HTTP Basic Authentication (username and password). Ensure the user has the integration profile in BSoft TMS and that the domain is reachable from the Nekt environment.
Pagination
- The BSoft TMS API uses limit-based pagination in the form
limit=offset,count. The tap requests pages of a fixed size and stops when a partial page is returned.
Incremental sync
- Streams with a replication key support incremental sync: titulos_receber (
data_ultimaModificacao), titulos_pagar (data_ultimaModificacao), pagamentos (modificado), recebimentos (modificado), transferencias (modificado). The tap uses bookmarking only (no date filter is sent to the API). On the first run, all records are synced; on subsequent runs, only new or updated records are emitted based on the replication key.
Data types
- Monetary and numeric values are often returned as strings by the API. Use casting in SQL (e.g.
TRY_CAST(valor AS DECIMAL(20,2))orSAFE_CAST(valor AS FLOAT64)) for aggregations and calculations.