Skip to main content
Glama

Romania Invoices (ANAF e-Factura national API)

Server Details

Romania e-Factura invoices for AI agents: build UBL 2.1 CIUS-RO, upload to ANAF/SPV, query.

Status
Unhealthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.5/5 across 3 of 3 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool serves a distinct purpose: create_invoice for uploading, query_invoice for status checking, and download_invoice_result for retrieving results. There is no overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (create_invoice, query_invoice, download_invoice_result), making them predictable and easy to understand.

Tool Count4/5

With only three tools, the set is minimal but perfectly suited for the asynchronous invoice submission and retrieval workflow. It covers the essential operations without unnecessary bloat.

Completeness5/5

The tools provide a complete lifecycle for submitting an invoice: upload (create_invoice), poll for acceptance or rejection (query_invoice), and download the official result (download_invoice_result). No obvious gaps for the intended use case.

Available Tools

3 tools
create_invoiceAInspect

Issue a Romania B2B electronic invoice (factura electronica) into the national e-Factura system (ANAF/SPV). Builds UBL 2.1 XML in the CIUS-RO customization (Romania's CIUS of EN 16931) and uploads it under your own ANAF access token. Bring your own credentials as headers: x-anaf-token (Bearer access token from your one-time ANAF OAuth with a qualified digital certificate; the cert never reaches this server), x-anaf-cif (your supplier fiscal code / CIF, RO prefix optional). Header x-anaf-mode: production switches to the live rail (default = test, no fiscal effect). Upload is asynchronous: this returns index_incarcare (an upload index) — poll query_invoice with it to learn if ANAF ACCEPTED or REJECTED the invoice. Romanian VAT rates: 19 (standard), 9 and 5 (reduced), 0 (zero-rated). Amounts are in RON.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesYesInvoice lines. Each: name, unit_price (net, VAT-exclusive, RON), vat_rate (19|9|5|0), optional quantity (default 1) and unit_code (UN/ECE Rec 20, default C62 = piece).
currencyNoDocument currency (BT-5). Default RON.
due_dateNoOptional payment due date (BT-9), YYYY-MM-DD.
issue_dateNoInvoice issue date (BT-2), YYYY-MM-DD. Default: today (UTC).
customer_cifYesBuyer fiscal code / CIF (cod de identificare fiscala), e.g. RO12345678 or 12345678. RO prefix optional.
customer_cityNoBuyer city (BT-52). Bucharest sectors use SECTOR1..SECTOR6. Default SECTOR1.
customer_nameYesBuyer legal name (denumire) as registered.
supplier_cityNoYour (seller) city (BT-37). Bucharest sectors use SECTOR1..SECTOR6.
supplier_nameNoYour (seller) legal name (BT-27). Recommended; a placeholder derived from your CIF is used if omitted.
invoice_numberNoYour invoice number / series (BT-1). Auto-generated if omitted.
customer_addressYesBuyer street address (BT-50 address line 1).
customer_countryNoBuyer country code (BT-55). Default RO.
supplier_addressNoYour (seller) street address (BT-35). Recommended for a valid invoice.
customer_county_codeNoBuyer county subdivision ISO 3166-2 code (BT-54), e.g. RO-B (Bucharest), RO-CJ (Cluj). Default RO-B.
supplier_county_codeNoYour (seller) county ISO 3166-2 code (BT-39, CIUS-RO mandatory for RO sellers), e.g. RO-B. Default RO-B.
Behavior5/5

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

Annotations indicate write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). Description adds rich behavioral context: uses headers for credentials, builds UBL XML, asynchronous upload, test vs production, polling needed. No contradiction with annotations.

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

Conciseness4/5

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

Single paragraph with key information front-loaded (purpose, system, format). Covers authentication, async behavior, polling, VAT rates. Could be slightly more structured with bullet points, but concise and informative without redundancy.

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

Completeness4/5

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

Covers main aspects: purpose, system, format, authentication, test/production, async nature, polling, VAT rates. Mentions return value (index_incarcare). Lacks details on error handling or what constitutes success/failure response, but sufficient given sibling tools for querying.

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?

Schema coverage is 100% with detailed desсriptions for each parameter. Description adds overall context (system, headers, VAT rates) but not much per-parameter beyond schema. Baseline 3; description provides extra high-level meaning but not significantly more than schema.

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?

Clearly states it issues a Romania B2B electronic invoice into the national e-Factura system. Specifies format (UBL 2.1 XML, CIUS-RO) and target (ANAF/SPV). Distinct from siblings (download_invoice_result, query_invoice) which are for results and polling.

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

Usage Guidelines4/5

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

Explicit context: Romania B2B invoicing, required headers (x-anaf-token, x-anaf-cif, x-anaf-mode), test/production modes, async upload with polling via query_invoice. Lacks explicit when-not-to-use or alternative tools, but sufficient for the specific use case.

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

download_invoice_resultA
Read-only
Inspect

Download the ANAF response archive (ZIP) for a processed invoice, using the download_id (id_descarcare) that query_invoice returns once status is ACCEPTED or REJECTED. For ACCEPTED invoices the ZIP contains the official ANAF-signed UBL XML (your legal proof); for REJECTED invoices it contains an XML error report listing the CIUS-RO validation failures. Returns the ZIP base64-encoded. Safe to call anytime.

ParametersJSON Schema
NameRequiredDescriptionDefault
download_idYesThe download_id (id_descarcare) returned by query_invoice for an ACCEPTED or REJECTED invoice.
Behavior5/5

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

Describes contents for both ACCEPTED and REJECTED statuses, specifies the output format (base64-encoded ZIP), and states it's safe to call anytime, all beyond the readOnlyHint and openWorldHint annotations. No contradiction with annotations.

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

Conciseness5/5

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

Three concise sentences: purpose, behavior by status, and encoding/safety. Each sentence adds essential information without redundancy or fluff. Front-loaded with core action.

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

Completeness4/5

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

The description adequately covers purpose, usage, and output format for the given parameter and annotations. Lacks details on error handling or size limits, but for a simple download tool with one param and no output schema, it is largely complete.

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?

Single parameter download_id is well-documented in both schema and description. With 100% schema coverage, baseline is 3; description adds context about valid statuses but largely reiterates schema info, so no major additional value.

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?

Clearly states the tool downloads an ANAF response archive for a processed invoice, identifying the specific resource (ZIP) and verb (download). Distinguishes from siblings create_invoice and query_invoice by focusing on the retrieval step.

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?

Explicitly instructs to use the download_id from query_invoice and only when status is ACCEPTED or REJECTED, providing clear when-to-use context and implicitly excluding other statuses or tools.

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

query_invoiceA
Read-only
Inspect

Check the ANAF processing status of an invoice uploaded by create_invoice, using its index_incarcare. e-Factura processing is asynchronous. Status values: PROCESSING (ANAF stare "in prelucrare" — not finished, poll again shortly); ACCEPTED (stare "ok" — the invoice is registered; download_invoice_result fetches the official ANAF-signed XML using download_id); REJECTED (stare "nok" — validation failed; download_invoice_result fetches the error report XML using download_id). Safe to call anytime.

ParametersJSON Schema
NameRequiredDescriptionDefault
index_incarcareYesThe index_incarcare (upload index) returned by create_invoice.
Behavior5/5

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

Annotations indicate readOnlyHint=true and openWorldHint=true. The description adds key behaviors: asynchronous processing, status values with Romanian translations, and clarification that the tool is safe to call anytime. No contradictions with annotations.

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

Conciseness5/5

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

The description is concise (three sentences), front-loaded with the verb and resource, then provides detailed status breakdown. No superfluous information.

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?

Despite no output schema, the description fully explains return values (statuses) and the asynchronous nature. It covers the tool's role in the invoice lifecycle: after create_invoice, before download_invoice_result. No gaps.

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?

Schema covers 100% of parameters (only one) with a description already stating it is the upload index from create_invoice. The tool description repeats this context but adds no new detail beyond the schema, so baseline score of 3 is appropriate.

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 checks the ANAF processing status of an invoice using index_incarcare. It distinguishes from sibling tools create_invoice (upload) and download_invoice_result (fetch XML). The three status values are explicitly defined, making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description advises checking status after create_invoice and directs to download_invoice_result for fetching official XML. It says 'Safe to call anytime.' However, it does not explicitly state when not to use the tool or alternative scenarios, leaving slight room for ambiguity.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources