{
 "generated": "2026-11-13",
 "total": 14,
 "passed": 14,
 "cases": [
  {
   "route": "/transfer",
   "title": "Valid German IBAN, EUR",
   "input": {
    "iban": "DE89370400440532013000",
    "amount": "12.50",
    "currency": "EUR"
   },
   "expected": "ok:true, failed:[]",
   "why": "DE89 3704 0044 0532 0130 00 is the standard published example IBAN.",
   "pass": true
  },
  {
   "route": "/transfer",
   "title": "IBAN with broken check digits",
   "input": {
    "iban": "DE00370400440532013000"
   },
   "expected": "ok:false, failed contains iban",
   "why": "Check digits 00 are never valid under ISO 7064 mod 97.",
   "pass": true
  },
  {
   "route": "/transfer",
   "title": "EUR transfer to a non-SEPA country",
   "input": {
    "iban": "US12345678901234567890",
    "currency": "EUR"
   },
   "expected": "not ok or unknown input",
   "why": "US has no IBAN scheme.",
   "pass": true
  },
  {
   "route": "/transfer",
   "title": "Remittance text with an emoji",
   "input": {
    "iban": "DE89370400440532013000",
    "reference": "Rechnung 😀"
   },
   "expected": "failed contains reference_charset",
   "why": "SEPA allows basic Latin only.",
   "pass": true
  },
  {
   "route": "/invoice",
   "title": "Net + VAT = gross, 19 percent",
   "input": {
    "net": "100.00",
    "vat": "19.00",
    "gross": "119.00",
    "country": "DE"
   },
   "expected": "ok:true",
   "why": "100 x 1.19 = 119.",
   "pass": true
  },
  {
   "route": "/invoice",
   "title": "Gross does not add up",
   "input": {
    "net": "100.00",
    "vat": "20.00",
    "gross": "119.00",
    "country": "DE"
   },
   "expected": "ok:false, failed contains sum",
   "why": "100 + 20 = 120, not 119.",
   "pass": true
  },
  {
   "route": "/invoice",
   "title": "German VAT id with wrong checksum",
   "input": {
    "net": "100.00",
    "vat": "19.00",
    "gross": "119.00",
    "country": "DE",
    "vatid": "DE123456789"
   },
   "expected": "ok:false",
   "why": "DE123456789 fails the German check digit.",
   "pass": true
  },
  {
   "route": "/deadline",
   "title": "5 business days from Tue 2026-12-22, Bavaria",
   "input": {
    "date": "2026-12-22",
    "days": "5",
    "country": "DE",
    "region": "BY"
   },
   "expected": "result 2026-12-30",
   "why": "Dec 23, 24, 28, 29, 30. Dec 25 is a holiday, Dec 26 to 27 is a weekend.",
   "pass": true
  },
  {
   "route": "/deadline",
   "title": "Going back 1 business day from Monday 2026-12-28",
   "input": {
    "date": "2026-12-28",
    "days": "-1",
    "country": "DE"
   },
   "expected": "result 2026-12-24",
   "why": "Sunday, Saturday and Friday Dec 25 are skipped.",
   "pass": true
  },
  {
   "route": "/deadline",
   "title": "Impossible date is unknown, not charged",
   "input": {
    "date": "2026-02-30",
    "days": "3",
    "country": "DE"
   },
   "expected": "known:false (HTTP 404)",
   "why": "Feb 30 does not exist.",
   "pass": true
  },
  {
   "route": "/holidays",
   "title": "Bavaria 2026 public holidays",
   "input": {
    "country": "DE",
    "year": "2026",
    "region": "BY"
   },
   "expected": "12 holidays incl. Good Friday 2026-04-03 and Corpus Christi 2026-06-04",
   "why": "Easter Sunday 2026 is April 5.",
   "pass": true
  },
  {
   "route": "/holidays",
   "title": "Unknown country",
   "input": {
    "country": "ZZ",
    "year": "2026"
   },
   "expected": "known:false (HTTP 404)",
   "why": "No such calendar.",
   "pass": true
  },
  {
   "route": "/cryptopay",
   "title": "Native USDC on Base",
   "input": {
    "to": "0x6f73838AAeC194CAc6e620454Ec5EA498BFFB914",
    "chain": "base",
    "token": "USDC"
   },
   "expected": "ok:true, contract 0x8335...2913",
   "why": "Circle's native USDC on Base.",
   "pass": true
  },
  {
   "route": "/cryptopay",
   "title": "Zero address as recipient",
   "input": {
    "to": "0x0000000000000000000000000000000000000000",
    "chain": "base",
    "token": "USDC"
   },
   "expected": "ok:false",
   "why": "Funds sent there are burned.",
   "pass": true
  }
 ]
}