Japan Qualified Invoice (インボイス) Compliance Checker avatar

Japan Qualified Invoice (インボイス) Compliance Checker

Pricing

from $3.00 / 1,000 invoice checkeds

Go to Apify Store
Japan Qualified Invoice (インボイス) Compliance Checker

Japan Qualified Invoice (インボイス) Compliance Checker

Check whether Japanese invoices meet Qualified Invoice System requirements: required fields, T-number format and check digit, reduced-rate marking, per-rate totals and the once-per-rate tax rounding rule. Pure computation, no scraping.

Pricing

from $3.00 / 1,000 invoice checkeds

Rating

0.0

(0)

Developer

AutoWorks JP

AutoWorks JP

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Check whether Japanese invoices actually meet the Qualified Invoice System (適格請求書等保存方式) requirements before you claim input consumption tax credit (仕入税額控除) — in bulk, deterministically, with no AI guesses.

Other tools only tell you whether a T-number is registered. This Actor checks the invoice itself:

CheckWhat it catches
Required fieldsMissing issuer name, registration number, transaction date, line descriptions, recipient (standard invoices)
Registration numberNot T + 13 digits (full-width / hyphens are normalized first), corporate-number check-digit mismatch (typo detection, offline)
Reduced-rate marking8% items not marked as reduced-rate (e.g. ※)
Per-rate totalsMissing 10% / 8% totals, totals that don't match the line items, invalid tax rates
Tax rounding ruleTax must be rounded once per tax rate per invoice. Detects per-line rounding and wrong tax amounts; accepts floor, round-half-up and ceiling
Grand totalGrand total that doesn't add up (warning)

Supports standard qualified invoices (適格請求書) and simplified ones (適格簡易請求書, recipient optional, tax amount or rate), and tax-exclusive or tax-inclusive pricing.

Pure computation: no scraping, no API keys, no data leaves the run.

Input

{
"strict": false,
"invoices": [
{
"id": "INV-0001",
"invoiceType": "standard",
"issuerName": "株式会社サンプル商事",
"registrationNumber": "T1180301018771",
"recipientName": "株式会社テスト",
"transactionDate": "2026-10-01",
"priceBasis": "exclusive",
"reducedRateIndicated": true,
"lineItems": [
{ "description": "コピー用紙", "amount": 5000, "taxRate": 10 },
{ "description": "お茶", "amount": 1980, "taxRate": 8, "reducedRateMark": true }
],
"rateSummaries": [
{ "taxRate": 10, "amount": 5000, "taxAmount": 500 },
{ "taxRate": 8, "amount": 1980, "taxAmount": 158 }
],
"grandTotal": 7638
}
]
}
FieldNotes
invoiceTypestandard (default) or simplified
priceBasisexclusive (default) or inclusive
lineItems[].taxRate10, 8, 0 (non-taxable), also "10%" or 0.1
lineItems[].taxAmountOptional. If given, used to detect per-line rounding
reducedRateIndicatedtrue if the invoice has a legend such as "※は軽減税率対象"
strictTreat warnings as failures

Amounts may be numbers or strings like "1,980円".

Output

One dataset item per invoice:

{
"id": "INV-0002",
"status": "FAIL",
"compliant": false,
"errorCount": 1,
"errors": [
{
"code": "LINE_LEVEL_ROUNDING",
"severity": "error",
"field": "rateSummaries[8%].taxAmount",
"message": "8% tax 78 equals the sum of per-line rounded taxes. Rounding must be done once per tax rate per invoice.",
"messageJa": "8%の消費税額78が明細ごとの端数処理の合計になっています。…"
}
],
"warnings": [],
"taxBreakdown": [
{ "taxRate": 8, "lineItemTotal": 999, "expectedTax": { "floor": 79, "roundHalfUp": 80, "ceil": 80 },
"reportedAmount": 999, "reportedTax": 78, "roundingMethodDetected": null }
]
}

status is PASS, WARN or FAIL. A run summary is saved to the key-value store as SUMMARY.

Typical pipeline

OCR / invoice-extraction tool → this Actor → accounts-payable approval. Pair it with a T-number registry lookup Actor to also confirm the issuer was registered on the invoice date.

Limitations

  • Does not query the NTA registry; it checks format and check digit only.
  • Check-digit mismatch is a warning, because the algorithm is defined for corporate numbers.
  • Whether an item legally qualifies for the 8% rate is not judged; only that 8% items are marked.
  • This is a validation aid, not tax advice.

日本語概要

請求書データ(JSON)が適格請求書の記載要件を満たしているかを一括で検証します。チェック対象は、登録番号の形式とチェックデジット、必須項目の漏れ、軽減税率対象の表示、税率ごとの合計、そして「1請求書につき税率ごとに1回」の端数処理ルールです。適格簡易請求書と税込・税抜の両方に対応しています。外部通信はなく、計算のみで判定します。

詳しい解説記事(Qiita): インボイスの「端数処理ミス」と源泉徴収の「10%計算ミス」をPythonで一括検出する