MCP App Store
by KeenEthics
Finance
facturillo icon

facturillo

by facturillo Inc.

Overview

facturillo keeps your Panamanian receipts ("facturas") organized automatically — scan the DGI QR code and every line item, vendor, and total is captured. This app connects ChatGPT to your facturillo account with read-only access, so you can ask natural questions about your real spending: "How much did I spend on groceries last month?", "Where did I buy this?", "Which store do I visit most?". Answers come from your actual receipt data — totals, line items, vendors, payment methods — never estimates. Requires a facturillo account (facturillo.com); data features require an active plan.

Tools

basket_list

ChatGPT
List the account's baskets (canastas), the same ones the facturillo app shows: name, icon, color, line count, the last refresh and bestBuy (the cheapest store and total, or the best two-store split, as the app recomputes it after every change). With basketId, that one basket and its products (lineId, name, brand, quantity, the product id, the line total (quantity x price) and the store). Every answer carries the plan's caps: how many baskets the plan allows, how many are used and how many products a basket may hold. The app's own caps apply (by default the free plan holds 1 basket of up to 5 products and Pro 20 baskets of up to 100, and per-account limits set by support win). Pages with limit and cursor, and total is the number of baskets.

fetch

ChatGPT
Fetch one receipt (factura) document by id from search — ChatGPT connector-compatibility tool. Returns the full receipt (header + line items) as the document text; items are consolidated products (repeated printed lines of the same product merged, quantities summed). For item toggles or linked-account contexts use receipts_get.

income_get

ChatGPT
Get ONE income document (a factura the business ISSUED, or a manual income) by id, with the product lines it sold. Get ids from income_search. Line tax and total are SIGNED (negative on a nota de crédito) while unitPrice is always positive. items is empty on a header-only factura (linesCount 0) and on documents whose lines were never harvested from the DGI. categorySource says who decided the category: manual (the user picked), rule, ai (an accepted suggestion) or default (the business default). Requires the business's MAIN account context, not a sucursal, and owner or superadmin access to it (see list_contexts).

income_summary

ChatGPT
Aggregate the business's SALES server-side. metric: total (billed), count (documents), tax (ITBMS charged) or avg (the average ticket). group_by: client, category, category_group, month, week, store (the owning account id), doc_type (the DGI Tipo de Documento code, the same spelling as income_search's filter) or product_category (the category of the sold lines). BOTH dates are required (ISO, from inclusive, to EXCLUSIVE, Panama timeline). Faster and cheaper than paging income_search and adding it up. Values are SIGNED, so notas de crédito reduce the total and avg averages the signed totals, not the sales alone. documents is how many documents the metric was computed over, so value times documents reconciles with the bucket's total; with group_by product_category the metric aggregates LINES while documents counts the documents those lines came from. metric tax EXCLUDES NOTHING, but a document whose source carried no ITBMS column reports 0 tax by construction, so every row also carries taxPendingCount: a bucket with taxPendingCount above 0 is a LOWER BOUND on the ITBMS actually charged, and income_search shows which documents they are (taxPending true). category and category_group buckets carry a Spanish label; product_category buckets carry the raw product-taxonomy key. Requires the business's MAIN account context, not a sucursal, and owner or superadmin access to it (see list_contexts).

list_contexts

ChatGPT
Lists the receipt contexts this account can query: 'personal' (default), 'business' (when the user has an active business profile — receipts tagged proBusiness), and any linked family/business accounts (query their receipts by passing their id as context to the data tools).

receipt_attachments

ChatGPT
Get download links for a receipt's attached files (receipt photo/PDF and extra Pro attachments). Links are temporary (15 minutes) — call again for fresh ones. To FIND receipts that have documents, call receipts_search with has_attachment:true and response_format:'detailed' first — its rows carry hasAttachment, so never probe receipts one by one. Pass the same context you searched in.

receipts_get

ChatGPT
Get one receipt (factura) by id — header, totals, payment methods, attachment availability, and line items. items are CONSOLIDATED products: repeated printed lines of the same product are merged into one item (quantities and totals summed), so items.length can be less than the receipt's printed linesCount from receipts_search — the totals still reconcile. Get ids from receipts_search with response_format 'detailed'. Pass the same context you searched in.

spending_summary

ChatGPT
Aggregate spending server-side — totals/counts/averages grouped by vendor, category, month, week, or day, or by paymentMethod (per split-payment amounts; metrics total/count/avg only). Faster and cheaper than fetching receipts and adding them up.

vendors_summary

ChatGPT
Per-vendor profile of the account's spending — receipts count, total spent, average ticket, first/last visit — top 60 by total. Optional vendor filter and date range. Richer than spending_summary's single-metric rows when the question is about the vendors themselves. USE THIS for questions like "which store do I visit most / spend the most at" — do NOT page through receipts_search to count receipts manually.

whoami

ChatGPT
Returns the authenticated facturillo account id (connection check).