# Dominican Republic Invoice MCP > A remote MCP server that lets any AI agent authenticate to and submit Dominican Republic electronic invoices (e-CF, comprobante fiscal electrónico / factura electrónica) through the DGII (Dirección General de Impuestos Internos) national gateway. It wraps the DGII web services only: the DGII digital certificate and the e-CF signing stay merchant-side, and it does NOT generate the e-CF XML. Stateless, never stores anything. - MCP endpoint (Streamable HTTP): https://inv-do.wishpool.app/mcp - Auth model: CERTIFICATE-based (not a static API key). DGII validates identity by having you SIGN a semilla (seed) with your DGII-recognized digital certificate (Digifirma or another approved CA). You also sign every e-CF XML the same way. Your certificate and private key never leave your side. - Environment header: x-dgii-env: prod submits to production (eCF, real fiscal effect); test (default) = TesteCF certificación (open, no fiscal effect, no registration). - Token header (optional): x-dgii-token — alternative to passing the get_token session token as the "token" argument on submit_invoice/query_status. - Design: this server ONLY forwards already-signed bytes. Flow = get_seed → sign semilla merchant-side → get_token (session token) → build + sign e-CF merchant-side → submit_invoice (trackId) → query_status until estado is Aceptado/Rechazado. We never sign, never generate the XML, never store credentials. - Endpoints wrapped (verified live 2026-07-10; shapes pinned to the official DGII Swagger api-docs/v1/definition.json): - GET /Autenticacion/api/Autenticacion/Semilla -> SemillaModel XML { valor, fecha } - POST /Autenticacion/api/Autenticacion/ValidarSemilla (multipart field "xml" = signed semilla) -> { token, expira, expedido } - POST /Recepcion/api/FacturasElectronicas (multipart field "xml" = signed e-CF, Bearer token) -> { trackId, mensaje, error } - GET /ConsultaResultado/api/Consultas/Estado?TrackId={id} (Bearer token) -> { trackId, estado, codigo, rnc, encf, secuenciaUtilizada, fechaRecepcion, mensajes[] } - Base URLs: test = https://ecf.dgii.gov.do/TesteCF · prod = https://ecf.dgii.gov.do/ecf ## Tools - get_seed: Step 1 — GET a semilla (seed) XML from DGII to sign. No credentials, no fiscal effect. Returns { seed_xml, valor, fecha }. - get_token: Step 2 — POST your SIGNED semilla (base64) to ValidarSemilla; returns a ~1h Bearer session token { token, expira, expedido }. Signing stays merchant-side. - submit_invoice: Step 3 — POST your already-signed e-CF XML (base64) + token to FacturasElectronicas; returns { trackId, mensaje } as acuse de recibo (asynchronous — poll query_status next). This server does NOT generate or sign the e-CF. - query_status: Step 4 — GET Consultas/Estado?TrackId + token; returns estado (En Proceso / Aceptado / Aceptado Condicional / Rechazado) plus codigo, rnc, encf, mensajes[]. - Owner policy guardrails: x-agentpay-max-amount (hard cap on grand total in DOP pesos, read from MontoTotal incl. ITBIS when present), x-agentpay-approval-above (returns an unsubmitted 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 that forwards the DGII e-CF web services only. The digital signature and DGII certificate stay merchant-side; the signed XML and session token travel per-request and are never stored. This server never stores credentials, invoices, or customer data. Privacy policy: https://inv-do.wishpool.app/privacy ## Sister servers Invoices: Costa Rica Hacienda https://inv-cr.wishpool.app/mcp, Saudi ZATCA https://inv-sa.wishpool.app/mcp, Mexico CFDI 4.0 https://inv-mx.wishpool.app/mcp, Poland KSeF https://inv-pl.wishpool.app/mcp, Chile DTE https://inv-cl.wishpool.app/mcp, Brazil NF-e https://inv-br.wishpool.app/mcp, Peru CPE https://inv-pe.wishpool.app/mcp, India GST e-invoicing https://inv-in.wishpool.app/mcp. Same stateless BYO pattern, local payments in 81 countries and logistics — full list: https://mcp.wishpool.app/llms.txt · https://logi.wishpool.app.