saudi-invoice

Let AI agents submit Saudi ZATCA Fatoora Phase 2 e-invoices: report simplified (B2C) and clear standard (B2B) tax invoices.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeRead-only

What it can do

  • Report Invoice: Report a Saudi SIMPLIFIED tax invoice (B2C, فاتورة مبسطة) to ZATCA (Fatoora Phase 2) — the reporting/single call. You issue the simplified invoice to the buyer first, then report it to
  • Clear Invoice: Clear a Saudi STANDARD tax invoice (B2B, فاتورة ضريبية) through ZATCA (Fatoora Phase 2) — the clearance/single call (sent with header Clearance-Status: 1). ZATCA validates and cryptogra
  • Check Invoice Compliance: Validate a signed invoice against the ZATCA compliance/invoices endpoint WITHOUT fiscally reporting or clearing it — used during EGS onboarding to confirm your CSID + invoice

What data it sees

Do you need an account

No: the server works without sign-in

Let AI agents submit Saudi ZATCA Fatoora Phase 2 e-invoices: report simplified (B2C) and clear standard (B2B) tax invoices. Stateless forwarder: you sign the UBL XML and keep the ICV/PIH chain merchant-side, it submits with your CSID and stores nothing.

Server tool list (3)

Raw names from tools/list. Only developers need these.

report_invoiceReport a Saudi SIMPLIFIED tax invoice (B2C, فاتورة مبسطة) to ZATCA (Fatoora Phase 2) — the reporting/single call. You issue the simplified invoice to the buyer first, then report it to ZATCA within 24 hours; this tool forwards your already-signed invoice. This server does NOT sign and does NOT keep the ICV/PIH hash-chain — signing and chain state stay merchant-side; you pass { invoiceHash, uuid, invoice(base64 signed UBL) }. Result status values: reporting_status REPORTED (accepted — the invoice is reported), or accepted-with-warnings (HTTP 202, reported but fix the warnings on the next invoice); NOT_REPORTED / an error means ZATCA rejected it (see validation errors). Required credential headers (set once in your MCP client, per-request, never stored): x-zatca-csid-token (your CSID binarySecurityToken) + x-zatca-csid-secret (its secret) — sent as HTTP Basic auth to ZATCA. Optional header x-zatca-mode: developer (default, sandbox, no fiscal effect) | simulation | core (production, real fiscal effect). Optional owner-policy headers x-agentpay-max-amount / x-agentpay-approval-above / x-agentpay-allowed-tools.
clear_invoiceClear a Saudi STANDARD tax invoice (B2B, فاتورة ضريبية) through ZATCA (Fatoora Phase 2) — the clearance/single call (sent with header Clearance-Status: 1). ZATCA validates and cryptographically stamps the invoice BEFORE you hand it to the buyer; on success the ZATCA-cleared XML is returned as cleared_invoice (base64). This server does NOT sign and does NOT keep the ICV/PIH hash-chain — you pass { invoiceHash, uuid, invoice(base64 signed UBL) }; signing/chain stay merchant-side. Result status values: clearance_status CLEARED (accepted and stamped — issue cleared_invoice to the buyer), or accepted-with-warnings (HTTP 202, cleared but fix warnings next time); NOT_CLEARED / an error means ZATCA rejected it. If you get an error saying the invoice is a simplified invoice, use report_invoice instead. Required credential headers (set once in your MCP client, per-request, never stored): x-zatca-csid-token (your CSID binarySecurityToken) + x-zatca-csid-secret (its secret) — sent as HTTP Basic auth to ZATCA. Optional header x-zatca-mode: developer (default, sandbox, no fiscal effect) | simulation | core (production, real fiscal effect). Optional owner-policy headers x-agentpay-max-amount / x-agentpay-approval-above / x-agentpay-allowed-tools.
check_invoice_complianceValidate a signed invoice against the ZATCA compliance/invoices endpoint WITHOUT fiscally reporting or clearing it — used during EGS onboarding to confirm your CSID + invoice structure pass ZATCA checks. Same envelope { invoiceHash, uuid, invoice(base64 signed UBL) }; no fiscal effect regardless of mode. Result carries validation_status plus any warnings/errors; reporting_status / clearance_status echo how ZATCA would treat the document. Use this to debug an invoice before calling report_invoice or clear_invoice. Required credential headers (set once in your MCP client, per-request, never stored): x-zatca-csid-token (your CSID binarySecurityToken) + x-zatca-csid-secret (its secret) — sent as HTTP Basic auth to ZATCA. Optional header x-zatca-mode: developer (default, sandbox, no fiscal effect) | simulation | core (production, real fiscal effect). Optional owner-policy headers x-agentpay-max-amount / x-agentpay-approval-above / x-agentpay-allowed-tools.