XooCode(){

Invoice

Invoice is an Intangible (with a FIBO LegalDocument secondary parent) representing a statement of amounts owed. Used in Gmail invoice markup and CRM/billing activity streams. Key properties: totalPaymentDue, minimumPaymentDue, paymentStatus (PaymentStatusType), paymentDueDate, scheduledPaymentDate, billingPeriod (Duration ISO 8601), customer, provider, referencesOrder (links to Order), paymentMethod, paymentMethodId, accountId, broker, confirmationNumber.

Full example of schema.org/Invoice json-ld markup

The markup is verified as valid with Rich Results Test from Google.

schema.org/Invoice
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Invoice",
  "accountId": "XC-CUST-00147",
  "customer": { "@type": "Organization", "name": "Dunmore Medical Archive" },
  "provider": { "@type": "Organization", "name": "Xoo Code Hosting" },
  "billingPeriod": "P1M",
  "totalPaymentDue": { "@type": "PriceSpecification", "price": 129.00, "priceCurrency": "USD" },
  "paymentDueDate": "2026-03-15",
  "paymentStatus": "https://schema.org/PaymentComplete",
  "confirmationNumber": "INV-2026-03-00147"
}
</script>

Minimal valid version

The smallest markup that still produces a valid Invoice entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/Invoice (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Invoice",
  "totalPaymentDue": { "@type": "PriceSpecification", "price": 129.00, "priceCurrency": "USD" },
  "paymentStatus": "https://schema.org/PaymentDue"
}
</script>

Google rich results this unlocks

Invoice is a structural type. It does not produce a rich result on its own.

Its value comes from combining it with a primary type whose markup earns a rich result (Article, Product, Event, and so on). Invoice becomes the trunk that the primary type branches off viamainEntityorbreadcrumb. Include it on every page as the backbone of your markup.

Common Invoice mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    totalPaymentDue as a bare number

    Wrong
    "totalPaymentDue": 129
    Right
    PriceSpecification with price + priceCurrency

    Without a currency the amount is ambiguous; Gmail's invoice card requires a PriceSpecification node.

About the example data

March 2026 Xoo Code hosting invoice — USD 129.00, issued 2026-03-01, due 2026-03-15.

Comments

Loading comments...

Leave a comment