# Serbia Invoice MCP > A remote MCP server that lets any AI agent issue Serbia SEF eFaktura electronic invoices (elektronska faktura) into the national Ministry of Finance system. It builds UBL 2.1 XML in the SRB-CIUS customization (Serbia's CIUS of EN 16931), uploads it under the merchant's own SEF API key, polls status, and can cancel an unaccepted invoice. Stateless, bring-your-own credential, never stores anything. - MCP endpoint (Streamable HTTP): https://inv-rs.wishpool.app/mcp - Credential header: x-sef-api-key (the API key you self-generate in the SEF portal under Settings / API management — Podesavanja / Upravljanje API; forwarded to SEF as the official ApiKey header). Environment header x-sef-mode: prod for the live rail (default demo = demoefaktura.mfin.gov.rs; prod = efaktura.mfin.gov.rs). The key stays with the merchant and is never stored by this server. - Flow: create_invoice -> sales_invoice_id; query_invoice(sales_invoice_id) to follow SENT -> APPROVED / REJECTED; cancel_invoice(sales_invoice_id, cancel_comment) to withdraw a still-unaccepted invoice. - You supply your own seller identity in create_invoice (supplier_pib + supplier_name) — SEF validates the seller in the XML against your API-key account. - Amounts in RSD (Serbian dinar). Serbian VAT rates: 20 standard, 10 reduced, 0 zero-rated. UBL fields follow EN 16931 / SRB-CIUS business terms (BT-1 number, BT-2 issue date, seller/buyer PIB + maticni broj, VAT breakdown, invoice totals). - After the buyer APPROVES, cancellation is closed; corrections require a storno (credit) document (out of scope in v1, documented honestly). ## Tools - create_invoice: Build a UBL 2.1 SRB-CIUS invoice from seller PIB + name, buyer PIB + name + address + lines (name, qty, net unit price, VAT rate 20/10/0) and upload it to SEF eFaktura. Returns sales_invoice_id + computed VAT totals. Optional send_to_cir=true for budget / public-sector buyers (Central Invoice Register). - query_invoice: Check SEF status by sales_invoice_id — NEW, SENDING, SENT, SEEN, APPROVED, APPROVED_WITH_RESERVATION, REJECTED, CANCELLED, STORNO, MISTAKE, OVERDUE, REMINDED, DELETED. - cancel_invoice: Cancel (Otkazivanje) a sales invoice you sent, by sales_invoice_id + cancel_comment, before the buyer accepts it. - Owner policy guardrails: x-agentpay-max-amount (hard cap on invoice gross total in RSD), x-agentpay-approval-above (returns an unsigned draft for human review), x-agentpay-allowed-tools (tool allow-list) — set by the human owner in the MCP client config; the agent cannot relax them. ## Safety Stateless translation layer over the national SEF eFaktura REST API. The merchant's SEF API key lives entirely on the merchant side; it travels per-request in a header and is forwarded to SEF as ApiKey. This server never stores credentials, invoices, or customer data. Privacy policy: https://inv-rs.wishpool.app/privacy ## Sister servers Same stateless BYO pattern. Local invoices: Romania e-Factura (inv-ro), Mexico CFDI (inv-mx), Brazil NF-e (inv-br), Chile DTE (inv-cl), Peru CPE (inv-pe), India GST (inv-in). Local payments in 81 countries — full list: https://mcp.wishpool.app/llms.txt