Skip to main content
Cloudfy is a Brazilian management system (ERP and point of sale) for restaurants, bars and food service: sales receipts and tabs, delivery orders, digital menu, stock, purchases and finance. This connector reads your Cloudfy company through Cloudfy’s query APIs and brings your sales receipts with their items and payments, delivery and pre-orders (including those from iFood and other platforms), customers, door entries and digital menu reviews, accounts payable and receivable, cash register sessions, bank balances, purchases, stock and price history.
The connector only reads data. It never creates, changes or deletes anything in Cloudfy.
Cloudfy allows only 7 requests per hour and 168 per day for each company and branch, and does not support reading long history. Read Request limit before choosing the tables and the schedule.

Configuring Cloudfy as a Source

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

1. Add account access

Cloudfy releases API access on request. Open a ticket with Cloudfy support asking for access to the query APIs (APIs de consulta) for your company and branch, and confirm when they send you the documentation. Cloudfy then sends the access data you will paste here. The following configurations are available:
  • Account Key: The AccKey of your Cloudfy API access.
  • Token Key: The TokenKey of your Cloudfy API access.
  • User Login: The Cloudfy user login (LoginUsr) the access was released for.
  • Company Code: Your Cloudfy company code (CodEmpresa).
  • Branch Code: Your Cloudfy branch code (CodFilial). To bring several branches, create one source per branch: each branch has its own request limit.
  • Start Date: The first business day read by the date-based tables on the first sync. Cloudfy does not support reading long history, so keep it recent (for example, the last 30 days).
  • Requester Name (advanced): The name sent to Cloudfy as the requester of each query. Default: INTEGRACAO BI.
  • Max Requests per Sync (advanced): The most requests one sync may send, from 1 to 7. Lower it if other tools use the same Cloudfy access. Default: 7.
  • Days per Request (advanced): How many days of data each request asks for in the date-based tables, from 1 to 366. Default: 31.
  • Lookback Days (advanced): How many days before the last synced day are read again on every sync, to catch late changes such as receipts cancelled later, orders delivered later or payments recorded with an earlier date. It must be smaller than Days per Request, so it costs no extra request. Default: 28.
  • Financial Titles Future Days (advanced): How many days after today are included when reading financial titles, so open payables and receivables appear before they fall due, from 0 to 366. Default: 60.
Once you’re done, click Next.

2. Select streams

Choose which data streams you want to sync. Each main table costs one Cloudfy request per sync (Financial Titles costs two: open and cancelled titles are separate queries); the tables of items, payments, status history and installments come with their main table at no extra cost. Select only the tables you need (see Request limit).
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: keep INCREMENTAL for every Cloudfy table. Cloudfy cannot re-read long history, so FULL_TABLE would replace your tables with only the period from the Start Date.
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 the request limit: when the selected tables need up to 7 requests, a sync every hour fits; with more tables, schedule a sync every 2 or 3 hours, or once a day.
Do not configure an Additional Full Sync for this source, and avoid running a manual Full sync: a Full sync re-reads every table from the Start Date, and Cloudfy does not keep long history available, so the tables would be replaced by that period only.
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.

Request limit

Cloudfy counts every request to its query APIs: at most 7 per hour and 168 per day for each company and branch. The connector works within that limit:
  • Each main table costs one request per sync in normal operation (Financial Titles costs two). Tables of items, payments, history and installments are read together with their main table.
  • Each sync sends at most 7 requests (or the Max Requests per Sync you set) and also counts the requests of the previous syncs. When a sync starts just before the previous sync’s requests are one hour old, it waits for them (up to 15 minutes) instead of skipping tables; the log says so.
  • When more tables are selected than requests are available, the tables synced longest ago go first, and the others wait for the next sync (their data is kept and nothing is lost). The sync log lists which tables were read and which wait.
  • On the first sync (and on a Full sync), a table must read every period from the Start Date to today at once, one request per Days per Request days. A table that does not fit in the requests left is not read in that sync and is marked as failed in the log; it is read in a next sync. If a table needs more requests than one sync may send, move the Start Date closer to today or raise Days per Request.
  • If Cloudfy refuses a request because the limit was reached or the credentials are wrong, the connector stops sending requests in that sync and the remaining tables are read in the next one. Other refusals (for example, a query not released for your branch) fail only that table, with Cloudfy’s message in the log; if the same access refusal comes for two tables, the sync stops sending requests.
  • If a request fails (Cloudfy unavailable) and no request is left for a retry, the table fails in that sync and is read again in the next one.
For the first sync with many tables, either select tables worth at most 7 requests and add the others later, or accept that some tables fail the first sync and load in the following ones. Select the item, payment, history and installment tables together with their main table: a table of this kind selected later only gets rows from then on (and from the last Lookback Days).

Fields by stream

Column names follow Cloudfy’s own field names (for example, vlr_total for VlrTotal). Codes such as statuses and payment types are kept as Cloudfy sends them; their meanings are in the field descriptions. Dates and times are the branch’s local (Brazil) time.

Sales

Sales receipts (cupons de venda) of the POS, one row per receipt, read by business date (Cloudfy API CC870).Table: sales_receipts · Primary key: nr_empresa, nr_filial, nr_caixa, data_movimento, nr_cupom · Sync: Incremental by data_movimento
Items of each sales receipt, including cancelled and reversed items with their status.Table: sales_receipt_items · Primary key: nr_empresa, nr_filial, nr_caixa, data_movimento, nr_cupom, nr_item · Sync: Incremental by data_movimento
Payments of each sales receipt, with card acquirer, fees and expected settlement.Table: sales_receipt_payments · Primary key: nr_empresa, nr_filial, nr_caixa, data_movimento, nr_cupom, nr_seq_pagto · Sync: Incremental by data_movimento
Sales per day and payment method, with card settlement details (Cloudfy API CC891).Table: sales_summary · Primary key: summary_key · Sync: Incremental by data_venda
Items reversed (estornados) from tabs, with who reversed them and why (Cloudfy API CC885).Table: comanda_reversals · Primary key: reversal_key · Sync: Incremental by data_estorno

Orders

Delivery orders, pre-orders and event orders, including the ones from iFood, Rappi and other platforms, read by order date (Cloudfy API CC890).Table: orders · Primary key: nr_empresa, nr_filial, origem, nr_pedido · Sync: Incremental by data_pedido
Products of each order, including add-ons.Table: order_items · Primary key: nr_empresa, nr_filial, origem, nr_pedido, nr_item, nr_item_adicional · Sync: Incremental by data_pedido
Payments of each order.Table: order_payments · Primary key: nr_empresa, nr_filial, origem, nr_pedido, nr_parcela · Sync: Incremental by data_pedido
Status changes of each order (created, in preparation, dispatched, delivered…).Table: order_status_history · Primary key: nr_empresa, nr_filial, origem, nr_pedido, seq · Sync: Incremental by data_pedido

Customers

Customers and their addresses, one row per customer address (Cloudfy API CC884). Read in full on every sync.Table: customers · Primary key: nr_empresa, nr_cliente, seq_endereco · Sync: Incremental by snapshot_date
Entrance (door) registrations of customers, with the tab given at the entrance and the amount purchased (Cloudfy API CC875).Table: door_entries · Primary key: entry_key · Sync: Incremental by data_entrada
Ratings and comments left on the digital menu (Cloudfy API CC874).Table: digital_menu_reviews · Primary key: review_key · Sync: Incremental by data

Finance

Accounts payable, accounts receivable and transfers, read by cash-flow date: the due date while open, the payment date once paid (Cloudfy API CC871).Table: financial_titles · Primary key: title_key · Sync: Incremental by data
Cash register sessions (movimentos de caixa) with opening and closing balances and totals per payment method (Cloudfy API CC888).Table: cash_register_sessions · Primary key: nr_empresa, nr_filial, nr_caixa, data_movto, nr_movto · Sync: Incremental by data_movto
Balance of each bank account on the day of each sync; a daily history builds up over time (Cloudfy API CC872).Table: bank_balances · Primary key: balance_key · Sync: Incremental by snapshot_date

Purchases and stock

Purchases (supplier invoices), read by purchase date (Cloudfy API CC892).Table: purchases · Primary key: purchase_key · Sync: Incremental by data_compra
Items of each purchase, with the product they were integrated into in stock.Table: purchase_items · Primary key: purchase_key, nr_item · Sync: Incremental by data_compra
Installments (payables) of each purchase.Table: purchase_installments · Primary key: purchase_key, nr_parcela · Sync: Incremental by data_compra
Stock balance per product and stock center on the day of each sync; a daily history builds up over time (Cloudfy API CC873).Table: stock_positions · Primary key: snapshot_date, nr_empresa, nr_filial, nr_centro_estoque, cod_produto · Sync: Incremental by snapshot_date
Stock entries and exits per day, product, stock center and reason (Cloudfy API CC886).Table: daily_stock_movements · Primary key: nr_empresa, data, nr_filial, nr_centro_estoque, cod_ref_produto, motivo · Sync: Incremental by data
Product price changes, one row per change (Cloudfy API CC881).Table: price_history · Primary key: price_change_key · Sync: Incremental by data

Company

Branches of the company (Cloudfy API CC882). Read in full on every sync.Table: branches · Primary key: nr_empresa, nr_filial · Sync: Incremental by snapshot_date

Implementation notes

  • Business dates, not change dates. Cloudfy filters by business date (receipt, order, purchase date) and has no “changed since” filter. Each sync re-reads the last Lookback Days (28 by default), so receipts cancelled later, orders delivered later and payments recorded with an earlier date are updated within that period; changes older than that keep the previous values.
  • Financial titles are read by cash-flow date: an open title appears on its due date and is read again on the day it is paid. Cancelled titles are read too (a separate query), so a title cancelled after being loaded gets its cancelled status when its due date falls within the period read. An overdue title cancelled more than Lookback Days after its due date keeps its last (open) status.
  • Rows without an identifier. Some Cloudfy tables (financial titles, purchases, sales summary, reviews, door entries, reversals, price history, bank balances) have no identifier of their own; the connector builds one from the fields listed in the key column’s description. If one of those fields changes (for example, a renegotiated due date), the row is loaded again as a new row.
  • Snapshots. Bank balances and stock positions are read per day: each sync reads today, plus every day missed since the last sync, up to 7 days back. Days older than that are not read and stay missing (the sync log names them), so sync these tables at least once a week. A Full sync, or the FULL_TABLE sync type, replaces these two tables with today’s snapshot only, losing their daily history. Customers and branches are read in full on every sync.
  • Errors are never shown as empty tables. When Cloudfy answers with an error, the table fails in the log with Cloudfy’s message and keeps its data; only Cloudfy’s “no records found” answers about the data itself (such as “Nenhum cupom encontrado” or “Não há registros para o período”) count as an empty period.
  • The connector’s 15 main tables come with 7 tables of items, payments, history and installments. Not available: recipes (ficha técnica), DRE report, current-day order queue and cash withdrawals/supplies.