Catch billing problems before invoices exist.

Most billing errors happen before the invoice is ever created. InvoiceGuard is a single API that validates billing details before you create an invoice.

Identify VAT issues, high-risk emails, and domain inconsistencies in one call.

Request trial
POST /api/v1/validate/invoice
"decision": "block", "reasons": [ { "code": "vat.invalid", "severity": "error", "message": "VAT number does not match billing country." } ]

Integration Logic

Your Backend
Prepares billing data
InvoiceGuard
Validates context & fields
Decision
Allow / Warning / Block

What it checks

  • VAT Numbers: Format and country consistency (VIES/def)
  • Billing Emails: Syntax, MX records, disposable detection
  • Domains: DNS resolution and existence
  • Geo Consistency: IP vs Billing Country vs VAT Country

What it does not do

  • × Calculate taxes or rates
  • × Validate physical addresses (street level)
  • × Verify bank account ownership (IBANs)
  • × Replace your accounting software

Decisions, not scores.

allow
No issues found. Proceed.
allow_with_warning
Non-critical issues (e.g. freemail provider).
block
Critical failure (e.g. invalid VAT). stop.

Degraded Mode: If a third-party validator fails, InvoiceGuard fails open (allow) with a degradation warning.

This is for you if...

  • You process B2B invoices internationally.
  • You are tired of "invalid VAT" support tickets.
  • You want to catch fake signups at the billing stage.
  • You prefer APIs over dashboards.

This is not for you if...

  • You are a strictly B2C local business.
  • You need full tax calculation/remittance.
  • You utilize a Merchant of Record (Paddle, etc).

Start validating today.

We manually review all trial requests to ensure our product fits your use case.

Request trial access
14-day trial · No credit card required · Real production usage

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.