> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nekt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# F360 as a data source

> Bring data from F360 to Nekt.

F360 is a financial management platform that provides tools for accounting, invoicing, bank reconciliation, cash flow management, and integration with banks and accountants. It offers APIs for extracting data on bank accounts, transactions, invoices, people (clients and suppliers), cost centers, chart of accounts, and more.

<img width="200" src="https://mintcdn.com/nekt/sjB0kecbPk8ndQWc/assets/logo/logo--f360.png?fit=max&auto=format&n=sjB0kecbPk8ndQWc&q=85&s=f3fa982c1832065046185f138ba5c5fe" data-path="assets/logo/logo--f360.png" />

## Configuring F360 as a Source

In the [Sources](https://app.nekt.ai/sources) tab, click on the "Add source" button located on the top right of your screen. Then, select the F360 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 your F360 API credentials to authorize Nekt to access your financial data.

The following configurations are available:

* **Token Login**: The API token for F360. Obtain this from the F360 platform when creating a public API webservice. The JWT token will be obtained automatically via login.

* **Start Date**: (Required for some streams) The earliest date from which records will be synced (YYYY-MM-DD). Required by `notas`, `parcelas_titulos`, `parcelas_titulos_despesa`, `parcelas_titulos_receita`, `parcelas_titulos_despesa_aberto`, `parcelas_titulos_receita_aberto`, `parcelas_cartoes`, and `extrato_bancario` streams.

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**: 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.

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](https://docs.nekt.com/runs/scheduling-and-triggers), 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](https://docs.nekt.com/get-started/core-concepts/resource-control).
* Determine when to execute an **Additional [Full Sync](https://docs.nekt.com/get-started/core-concepts/types-of-sync#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](https://app.nekt.ai/sources) page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.

<Warning>For you to be able to see it on your [Catalog](https://app.nekt.ai/catalog), you need at least one successful source run.</Warning>

# Streams and Fields

Below you'll find all available data streams from F360 and their corresponding fields:

<AccordionGroup>
  <Accordion title="Planos de Contas">
    Stream for Chart of Accounts (Plano de Contas). Contains the accounting structure used for classifying revenues and expenses.

    **Key Fields:**

    | Field             | Type   | Description                                       |
    | :---------------- | :----- | :------------------------------------------------ |
    | `PlanoDeContasId` | String | Unique identifier for the chart of accounts entry |
    | `Nome`            | String | Name of the chart of accounts entry               |
    | `Tipo`            | String | Type of the entry: 'A receber' or 'A pagar'       |
  </Accordion>

  <Accordion title="Centros de Custo">
    Stream for Cost Centers (Centros de Custo). Used for allocating expenses and revenues by department or project.

    **Key Fields:**

    | Field             | Type   | Description                           |
    | :---------------- | :----- | :------------------------------------ |
    | `CentroDeCustoId` | String | Unique identifier for the cost center |
    | `Nome`            | String | Cost center name                      |
  </Accordion>

  <Accordion title="Classificação de Produtos">
    Stream for Product Classifications. Maps NCM and CFOP codes to chart of accounts entries.

    **Key Fields:**

    | Field             | Type   | Description                                                          |
    | :---------------- | :----- | :------------------------------------------------------------------- |
    | `NCM`             | String | NCM (Nomenclatura Comum do Mercosul) code for product classification |
    | `CFOP`            | String | CFOP (Código Fiscal de Operações e Prestações) code                  |
    | `PlanoDeContasId` | String | Unique identifier for the chart of accounts entry                    |
  </Accordion>

  <Accordion title="Contas Bancárias">
    Stream for Bank Accounts. Contains all bank accounts configured in F360. This stream is the parent of Extrato Bancário.

    **Key Fields:**

    | Field         | Type   | Description                                         |
    | :------------ | :----- | :-------------------------------------------------- |
    | `Id`          | String | Unique identifier for the bank account              |
    | `Nome`        | String | Bank account name                                   |
    | `TipoDeConta` | String | Account type (e.g., Conta Corrente, Conta Dinheiro) |
    | `Carteira`    | String | Wallet number                                       |
    | `Agencia`     | String | Branch/agency number                                |
    | `Conta`       | String | Account number                                      |
    | `DigitoConta` | String | Account check digit                                 |
    | `NumeroBanco` | String | Bank number (e.g., 33 for Santander)                |
  </Accordion>

  <Accordion title="Extrato Bancário">
    Stream for Bank Statement (Extrato Bancário). Child of Contas Bancárias - contains transaction-level data for each bank account. Uses the synthetic model (modelo Sintético).

    **Key Fields:**

    | Field                 | Type   | Description                                                                 |
    | :-------------------- | :----- | :-------------------------------------------------------------------------- |
    | `Data`                | String | Transaction date (YYYY-MM-DD)                                               |
    | `Conta`               | String | Account name                                                                |
    | `Valor`               | Number | Transaction value                                                           |
    | `Historico`           | String | Transaction history/description                                             |
    | `Complemento`         | String | Additional details                                                          |
    | `Documento`           | String | Document number                                                             |
    | `Empresa`             | String | Company name                                                                |
    | `Origem`              | String | Data origin (e.g., OFX, Extrato pluggy)                                     |
    | `Status`              | String | Reconciliation status (Conciliado, etc.)                                    |
    | `TipoDeConciliacao`   | String | Reconciliation type (e.g., Parcelas de Títulos, Transferência entre Contas) |
    | `DetalhesConciliacao` | String | Reconciliation details (when available)                                     |
  </Accordion>

  <Accordion title="Pessoas">
    Stream for People (Clients and Suppliers). Contains contact and company information for customers and vendors.

    **Key Fields:**

    | Field                | Type   | Description                                                                    |
    | :------------------- | :----- | :----------------------------------------------------------------------------- |
    | `Id`                 | String | Unique identifier for the person                                               |
    | `Nome`               | String | Name of the person                                                             |
    | `RazaoSocial`        | String | Legal name (for companies)                                                     |
    | `Telefone`           | String | Phone number                                                                   |
    | `Email`              | String | Email address                                                                  |
    | `CpfCnpj`            | String | CPF or CNPJ document number                                                    |
    | `Tipo`               | String | Type: 'Pessoa física' or 'Pessoa Jurídica'                                     |
    | `Definicao`          | String | Definition: 'Cliente', 'Fornecedor', or 'Ambos'                                |
    | `Endereco`           | Object | Address information (Logradouro, Complemento, Numero, Bairro, Cidade, UF, CEP) |
    | `IndicadorIE`        | String | Tax registration field                                                         |
    | `InscricaoEstadual`  | String | Tax registration field                                                         |
    | `InscricaoMunicipal` | String | Tax registration field                                                         |
  </Accordion>

  <Accordion title="Notas">
    Stream for Invoices (Notas Fiscais). Contains NFe, NFSe, and Nota de Débito documents. Incremental by emission date.

    **Key Fields:**

    | Field               | Type   | Description                                    |
    | :------------------ | :----- | :--------------------------------------------- |
    | `Id`                | String | Unique identifier for the invoice              |
    | `Registro`          | String | Type: NFe, NFSe, or NotaDeDebito               |
    | `Tipo`              | String | Type of operation (e.g., 'A Pagar', 'Emissão') |
    | `Numero`            | String | Invoice/document number                        |
    | `Emissao`           | String | Emission date (ISO 8601)                       |
    | `Valor`             | Number | Monetary value of the invoice                  |
    | `Empresa`           | Object | Company information (Nome, CpfCnpj)            |
    | `ClienteFornecedor` | Object | Client or supplier information (Nome, CpfCnpj) |
  </Accordion>

  <Accordion title="Parcelas de Títulos">
    Stream for Title Installments (Parcelas de Títulos). Contains installments of receivables and payables. Incremental by DataDeAtualizacao.

    **Key Fields:**

    | Field                  | Type    | Description                                                                       |
    | :--------------------- | :------ | :-------------------------------------------------------------------------------- |
    | `ParcelaId`            | String  | Unique identifier for the installment                                             |
    | `Registro`             | String  | Record type (e.g., 'Parcela de título')                                           |
    | `Tipo`                 | String  | Type: Despesa, Receita, or Ambos                                                  |
    | `Numero`               | String  | Installment number                                                                |
    | `Vencimento`           | String  | Due date (YYYY-MM-DD)                                                             |
    | `Liquidacao`           | String  | Liquidation date                                                                  |
    | `DataDeAtualizacao`    | String  | Last update date                                                                  |
    | `ValorBruto`           | Number  | Gross value                                                                       |
    | `ValorLiquido`         | Number  | Net value                                                                         |
    | `Conta`                | String  | Account name                                                                      |
    | `MeioDePagamento`      | String  | Payment method                                                                    |
    | `Status`               | String  | Installment status                                                                |
    | `ConciliadaComExtrato` | Boolean | Whether reconciled with bank statement                                            |
    | `DadosDoTitulo`        | Object  | Parent title data (NumeroDoTitulo, TituloId, Emissao, Empresa, ClienteFornecedor) |
    | `Rateio`               | Object  | Allocation breakdown by cost center and chart of accounts                         |
  </Accordion>

  <Accordion title="Parcelas de Títulos (Despesa)">
    Stream for Expense Title Installments (Parcelas de Títulos - Despesa). Contains installments of payables specifically. Incremental by DataDeAtualizacao.

    **Key Fields:**

    | Field                  | Type    | Description                                                                       |
    | :--------------------- | :------ | :-------------------------------------------------------------------------------- |
    | `ParcelaId`            | String  | Unique identifier for the installment                                             |
    | `Registro`             | String  | Record type (e.g., 'Parcela de título')                                           |
    | `Tipo`                 | String  | Type: Despesa                                                                     |
    | `Numero`               | String  | Installment number                                                                |
    | `Vencimento`           | String  | Due date (YYYY-MM-DD)                                                             |
    | `Liquidacao`           | String  | Liquidation date                                                                  |
    | `DataDeAtualizacao`    | String  | Last update date                                                                  |
    | `ValorBruto`           | Number  | Gross value                                                                       |
    | `ValorLiquido`         | Number  | Net value                                                                         |
    | `Conta`                | String  | Account name                                                                      |
    | `MeioDePagamento`      | String  | Payment method                                                                    |
    | `Status`               | String  | Installment status                                                                |
    | `ConciliadaComExtrato` | Boolean | Whether reconciled with bank statement                                            |
    | `DadosDoTitulo`        | Object  | Parent title data (NumeroDoTitulo, TituloId, Emissao, Empresa, ClienteFornecedor) |
    | `Rateio`               | Object  | Allocation breakdown by cost center and chart of accounts                         |
  </Accordion>

  <Accordion title="Parcelas de Títulos (Receita)">
    Stream for Revenue Title Installments (Parcelas de Títulos - Receita). Contains installments of receivables specifically. Incremental by DataDeAtualizacao.

    **Key Fields:**

    | Field                  | Type    | Description                                                                       |
    | :--------------------- | :------ | :-------------------------------------------------------------------------------- |
    | `ParcelaId`            | String  | Unique identifier for the installment                                             |
    | `Registro`             | String  | Record type (e.g., 'Parcela de título')                                           |
    | `Tipo`                 | String  | Type: Receita                                                                     |
    | `Numero`               | String  | Installment number                                                                |
    | `Vencimento`           | String  | Due date (YYYY-MM-DD)                                                             |
    | `Liquidacao`           | String  | Liquidation date                                                                  |
    | `DataDeAtualizacao`    | String  | Last update date                                                                  |
    | `ValorBruto`           | Number  | Gross value                                                                       |
    | `ValorLiquido`         | Number  | Net value                                                                         |
    | `Conta`                | String  | Account name                                                                      |
    | `MeioDePagamento`      | String  | Payment method                                                                    |
    | `Status`               | String  | Installment status                                                                |
    | `ConciliadaComExtrato` | Boolean | Whether reconciled with bank statement                                            |
    | `DadosDoTitulo`        | Object  | Parent title data (NumeroDoTitulo, TituloId, Emissao, Empresa, ClienteFornecedor) |
    | `Rateio`               | Object  | Allocation breakdown by cost center and chart of accounts                         |
  </Accordion>

  <Accordion title="Parcelas de Títulos (Despesa em Aberto)">
    Stream for Open/Unpaid Expense Title Installments (Parcelas de Títulos - Despesa em Aberto). Contains pending installments of payables specifically, filtered by due date (Vencimento). This stream fetches installments with due dates up to 2 years in the future.

    **Key Fields:**

    | Field                  | Type    | Description                                                                       |
    | :--------------------- | :------ | :-------------------------------------------------------------------------------- |
    | `ParcelaId`            | String  | Unique identifier for the installment                                             |
    | `Registro`             | String  | Record type (e.g., 'Parcela de título')                                           |
    | `Tipo`                 | String  | Type: Despesa                                                                     |
    | `Numero`               | String  | Installment number                                                                |
    | `Vencimento`           | String  | Due date (YYYY-MM-DD)                                                             |
    | `Liquidacao`           | String  | Liquidation date                                                                  |
    | `DataDeAtualizacao`    | String  | Last update date                                                                  |
    | `ValorBruto`           | Number  | Gross value                                                                       |
    | `ValorLiquido`         | Number  | Net value                                                                         |
    | `Conta`                | String  | Account name                                                                      |
    | `MeioDePagamento`      | String  | Payment method                                                                    |
    | `Status`               | String  | Installment status                                                                |
    | `ConciliadaComExtrato` | Boolean | Whether reconciled with bank statement                                            |
    | `DadosDoTitulo`        | Object  | Parent title data (NumeroDoTitulo, TituloId, Emissao, Empresa, ClienteFornecedor) |
    | `Rateio`               | Object  | Allocation breakdown by cost center and chart of accounts                         |
  </Accordion>

  <Accordion title="Parcelas de Títulos (Receita em Aberto)">
    Stream for Open/Unpaid Revenue Title Installments (Parcelas de Títulos - Receita em Aberto). Contains pending installments of receivables specifically, filtered by due date (Vencimento). This stream fetches installments with due dates up to 2 years in the future.

    **Key Fields:**

    | Field                  | Type    | Description                                                                       |
    | :--------------------- | :------ | :-------------------------------------------------------------------------------- |
    | `ParcelaId`            | String  | Unique identifier for the installment                                             |
    | `Registro`             | String  | Record type (e.g., 'Parcela de título')                                           |
    | `Tipo`                 | String  | Type: Receita                                                                     |
    | `Numero`               | String  | Installment number                                                                |
    | `Vencimento`           | String  | Due date (YYYY-MM-DD)                                                             |
    | `Liquidacao`           | String  | Liquidation date                                                                  |
    | `DataDeAtualizacao`    | String  | Last update date                                                                  |
    | `ValorBruto`           | Number  | Gross value                                                                       |
    | `ValorLiquido`         | Number  | Net value                                                                         |
    | `Conta`                | String  | Account name                                                                      |
    | `MeioDePagamento`      | String  | Payment method                                                                    |
    | `Status`               | String  | Installment status                                                                |
    | `ConciliadaComExtrato` | Boolean | Whether reconciled with bank statement                                            |
    | `DadosDoTitulo`        | Object  | Parent title data (NumeroDoTitulo, TituloId, Emissao, Empresa, ClienteFornecedor) |
    | `Rateio`               | Object  | Allocation breakdown by cost center and chart of accounts                         |
  </Accordion>

  <Accordion title="Parcelas de Cartões">
    Stream for Card Installments (Parcelas de Cartões). Contains credit/debit card transaction installments. Incremental by DataDeAtualizacao.

    **Key Fields:**

    | Field               | Type   | Description                                                                  |
    | :------------------ | :----- | :--------------------------------------------------------------------------- |
    | `ParcelaId`         | String | Unique identifier for the card installment                                   |
    | `Registro`          | String | Record type (e.g., 'Parcela de Cartão')                                      |
    | `Tipo`              | String | Type: Despesa, Receita, or Ambos                                             |
    | `Numero`            | String | Installment number                                                           |
    | `Vencimento`        | String | Due date (YYYY-MM-DD)                                                        |
    | `Liquidacao`        | String | Liquidation date                                                             |
    | `DataDeAtualizacao` | String | Last update date                                                             |
    | `ValorBruto`        | Number | Gross value                                                                  |
    | `ValorLiquido`      | Number | Net value                                                                    |
    | `Taxa`              | Number | Fee rate applied                                                             |
    | `Conta`             | String | Account name                                                                 |
    | `Modalidade`        | String | Payment modality (e.g., PIX, credit card)                                    |
    | `Status`            | String | Installment status                                                           |
    | `DadosDoCartao`     | Object | Card transaction data (CartaoId, DataDaVenda, Adquirente, Bandeira, Empresa) |
    | `Rateio`            | Object | Allocation breakdown by cost center and chart of accounts                    |
  </Accordion>
</AccordionGroup>

# Data Model

The following diagram illustrates the relationships between the core data streams in F360. The arrows indicate the parent-child and join relationships.

```mermaid theme={null}
graph TD;
    subgraph "Master Data"
        PlanosContas("Planos de Contas");
        CentrosDeCusto("Centros de Custo");
        ClassificacaoProdutos("Classificação de Produtos");
        Pessoas("Pessoas");
    end

    subgraph "Banking"
        ContasBancarias("Contas Bancárias");
        ExtratoBancario("Extrato Bancário");
    end

    subgraph "Transactions"
        Notas("Notas");
        ParcelasTitulos("Parcelas de Títulos");
        ParcelasCartoes("Parcelas de Cartões");
    end

    ExtratoBancario -- "parent" --> ContasBancarias;
    ParcelasTitulos -- "Rateio.CentroDeCusto" --> CentrosDeCusto;
    ParcelasTitulos -- "Rateio.PlanoDeContas" --> PlanosContas;
    ParcelasCartoes -- "Rateio.CentroDeCusto" --> CentrosDeCusto;
    ParcelasCartoes -- "Rateio.PlanoDeContas" --> PlanosContas;
    Notas -- "ClienteFornecedor" --> Pessoas;
```

# Use Cases for Data Analysis

This guide outlines valuable business intelligence use cases when consolidating F360 data, along with ready-to-use SQL queries that you can run on [Explorer](https://app.nekt.ai/explorer).

### 1. Bank Reconciliation Overview

Track bank account balances and reconcile transactions with titles and card installments.

**Business Value:**

* Identify unreconciled transactions
* Monitor cash flow by account
* Verify bank statement accuracy

<Accordion title="SQL query">
  <Tabs>
    <Tab title="AWS">
      ```sql theme={null}
      SELECT
         conta,
         data,
         COUNT(*) AS transaction_count,
         SUM(valor) AS total_value,
         SUM(CASE WHEN valor > 0 THEN valor ELSE 0 END) AS credits,
         SUM(CASE WHEN valor < 0 THEN valor ELSE 0 END) AS debits
      FROM
         nekt_raw.f360_extrato_bancario
      WHERE
         data >= CURRENT_DATE - INTERVAL '30' DAY
      GROUP BY
         conta,
         data
      ORDER BY
         conta,
         data DESC
      ```
    </Tab>

    <Tab title="GCP">
      ```sql theme={null}
      SELECT
         conta,
         data,
         COUNT(*) AS transaction_count,
         SUM(valor) AS total_value,
         SUM(CASE WHEN valor > 0 THEN valor ELSE 0 END) AS credits,
         SUM(CASE WHEN valor < 0 THEN valor ELSE 0 END) AS debits
      FROM
         `nekt_raw.f360_extrato_bancario`
      WHERE
         DATE(data) >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
      GROUP BY
         conta,
         data
      ORDER BY
         conta,
         data DESC
      ```
    </Tab>
  </Tabs>
</Accordion>

### 2. Revenue and Expense Summary by Type

Analyze financial performance by transaction type (Receita vs Despesa) from titles and card installments.

**Business Value:**

* Understand revenue vs expense breakdown
* Track cash flow by transaction type
* Support budget vs. actual analysis

<Accordion title="SQL query">
  <Tabs>
    <Tab title="AWS">
      ```sql theme={null}
      SELECT
         tipo,
         LEFT(liquidacao, 7) AS month,
         COUNT(*) AS transaction_count,
         SUM(valor_liquido) AS total_value
      FROM
         nekt_raw.f360_parcelas_titulos
      WHERE
         liquidacao IS NOT NULL
         AND liquidacao != ''
         AND cancelada = false
      GROUP BY
         tipo,
         LEFT(liquidacao, 7)
      ORDER BY
         month DESC,
         total_value DESC
      ```
    </Tab>

    <Tab title="GCP">
      ```sql theme={null}
      SELECT
         tipo,
         SUBSTR(liquidacao, 1, 7) AS month,
         COUNT(*) AS transaction_count,
         SUM(valor_liquido) AS total_value
      FROM
         `nekt_raw.f360_parcelas_titulos`
      WHERE
         liquidacao IS NOT NULL
         AND liquidacao != ''
         AND cancelada = false
      GROUP BY
         tipo,
         SUBSTR(liquidacao, 1, 7)
      ORDER BY
         month DESC,
         total_value DESC
      ```
    </Tab>
  </Tabs>
</Accordion>

## Implementation Notes

### Data Quality Considerations

* The **Extrato Bancário** stream automatically deduplicates records; the API may return the same transaction across pagination boundaries.
* **Start Date** is required for streams that use date windows: `notas`, `parcelas_titulos`, `parcelas_titulos_despesa`, `parcelas_titulos_receita`, `parcelas_titulos_despesa_aberto`, `parcelas_titulos_receita_aberto`, `parcelas_cartoes`, and `extrato_bancario`.
* The open installment streams (**Parcelas de Títulos - Despesa em Aberto** and **Parcelas de Títulos - Receita em Aberto**) fetch data up to 2 years in the future to capture upcoming receivables and payables.
* **Extrato Bancário** is a child stream of **Contas Bancárias**; it fetches transaction data per bank account.

### API Limits & Performance

* For faster extractions, select only the streams necessary for your analysis.
* Streams with incremental sync or date-based fetching (`notas`, `parcelas_titulos`, `parcelas_titulos_despesa`, `parcelas_titulos_receita`, `parcelas_titulos_despesa_aberto`, `parcelas_titulos_receita_aberto`, `parcelas_cartoes`) use `start_date` to filter data.
* The `extrato_bancario` stream uses 30-day date windows for efficient API requests.

## Skills for agents

<Snippet file="agent-skills-intro.mdx" />

<Card title="Download F360 skills file" icon="wand-magic-sparkles" href="/sources/f360.md">
  F360 connector documentation as plain markdown, for use in AI agent contexts.
</Card>
