Skip to main content
Glama

openfinance_get_credit_card_bill

Read-onlyIdempotent

Returns bill-level detail for one or more credit card bills by id (GET /bills/:id): dueDate, billClosingDate (when the cycle closed — the boundary that defines which purchases belong to this bill), totalAmount, financeCharges and payments[] (id, paymentDate, amount, valueType, paymentMode). ITEMIZED PURCHASES (OPT-IN): the bank's bill payload has no transactions in it — they live on the card ACCOUNT. Pass include_transactions:true (plus account_id of the credit card, since the bill itself carries no account reference) and each row also gets transactions[], transactions_count, transactions_sum and reconciles_with_total, already matched to that bill. Always check transactions_basis: bill_id = exact (the bank tagged each transaction with this bill — the normal case for CLOSED bills), date_window = ESTIMATE (confidence:'low', window echoed in transactions_window) used when the connector tags no billId or the bill is still open (PENDING lines get no billId until the cycle closes), unavailable = no link possible. Opt-in because it costs an extra full transaction scan of the account. Whatever the basis, the bill's own totalAmount is authoritative — do NOT rebuild it by summing transactions. Without the opt-in the response carries a transactions_hint; you can also fetch them yourself via openfinance_list_transactions with the credit card account_id and a from/to range ending at billClosingDate. Pass bill_ids as an array — use openfinance_list_credit_card_bills first to discover ids. { results, errors } batch shape. NOTE: Pluggy does NOT return a paid/status field. In Brazilian Open Finance, payments[] reflects payments registered during THIS bill's billing cycle — typically the payment of the PREVIOUS bill (do NOT assume this bill was paid just because payments[] is non-empty). To check paid status, prefer openfinance_list_credit_card_bills which derives payment_status via cross-bill match.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bill_idsYes
account_idNo
transactions_detailNo
include_transactionsNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint/idempotentHint annotations, the description discloses extensive behavioral details: the transactions_basis field with three possible values and their implications, the authoritative totalAmount (don't sum transactions), the cost of the opt-in, and the subtle fact that payments[] typically refers to the previous bill's payment. It also notes Pluggy does not return a paid/status field. This goes far beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very long, but it is structured with bolded section headers (e.g., 'ITEMIZED PURCHASES (OPT-IN)') and uses inline code formatting for clarity. It front-loads the core purpose in the first sentence. However, it is far from concise; each sentence carries critical caveats, but the sheer volume may overwhelm an agent. The structure helps but is not enough to overcome the length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 0% schema coverage and no output schema, the description is remarkably complete. It explains the response batch shape, the transactions basis logic, the need for account_id, the alternative to opt-in, and the paid-status caveat. It even provides query hints (using billClosingDate as range end). There is no obvious missing information that an agent needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no descriptions (0% coverage), so the description must compensate. It explains bill_ids (array, discover via list), account_id (needed for include_transactions), and include_transactions (opt-in for transactions). However, it completely omits the 'transactions_detail' parameter with its enum values (compact, rich, raw), leaving that parameter's semantics unexplained. This is a gap given the zero schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns bill-level detail for credit card bills via a specific endpoint (GET /bills/:id), listing exact fields. It distinguishes itself from sibling tools by explicitly mentioning openfinance_list_credit_card_bills for discovery and openfinance_list_transactions for self-fetching transactions, so an agent knows exactly what this tool does and what it doesn't.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: use the opt-in for transactions only when needed, and notes it costs an extra scan; it says to use openfinance_list_credit_card_bills first to get ids; it also advises against assuming paid status from payments[] and recommends the listing tool for payment_status. This clearly differentiates from alternatives and provides exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation4/5

Each Open Finance resource has a clearly named list/get pair, and connection status vs provider status vs force sync are distinct. The main ambiguity is between list_accounts (which already carries balances) and get_account_balance, and between list_transactions and list_transactions_by_item, which requires reading the descriptions carefully.

Naming Consistency4/5

The openfinance_* tools follow a consistent verb_noun pattern (list_*, get_*, update_*, force_sync, search_*). Exceptions like marketplace, toolkit_info, and openfinance_provider_status break the pattern slightly, but the two logical groups are predictable internally.

Tool Count3/5

At 25 tools this is on the heavy end of the scale. Most tools have a real purpose, but several list/get pairs and the multi-purpose marketplace mega-tool could be consolidated without losing functionality, making the overall surface feel larger than strictly necessary.

Completeness4/5

The Open Finance surface is impressively broad: connections, accounts, balances, transactions, credit-card bills, loans, investments, categorization, sync, provider health, and connector search are all covered. Minor gaps like a single-transaction getter or a consolidated statement export force agents to assemble data with extra calls, but no critical workflow is blocked.