# jp-invoice-registry

> Is this Japanese corporation registered as a qualified invoice issuer (tekikaku seikyusho hakko jigyosha, invoice system), since when, and has the registration been cancelled or has it expired? Look up by registration number (T + 13 digits) or corporate number (13 digits; the check digit is validated). Hosted MCP and HTTP: no install. Relays the daily difference files published by the National Tax Agency of Japan (NTA), corporations only: registration, cancellation and expiry dates as published, the difference file used and when it was read. NTA keeps the daily files for 40 business days only; this service records every corporate change it reads (since October 2026, starting with the 40 business days still published) and lists them. The monthly full file is not loaded yet: a number not seen in the files is unknown, never 'not registered'. Free. Sole proprietors are not stored or returned. Pairs with jp-entity-evidence and jp-gbizinfo by corporate number.

Data source: National Tax Agency of Japan (NTA), Qualified Invoice Issuer Publication Site, published information download, daily difference files (CSV, created on each business day with changes, published from 06:00 Japan time on the next business day, kept 40 business days), https://www.invoice-kohyo.nta.go.jp/download/sabun . Field definitions: NTA resource definition document version 1.5. Reused under the Public Data License 1.0 that the NTA publication site applies unless otherwise noted (https://www.invoice-kohyo.nta.go.jp/terms-of-use.html). Processed by MK Career Planning (corporations only, fields restructured, English labels added, changes recorded as observed in the daily files); not official, and not a service of NTA or the Government of Japan. The search function and the Web-API of the NTA site are not used. The monthly full file (https://www.invoice-kohyo.nta.go.jp/download/zenken) is not loaded in this version.
This service matches Japanese public registration and warning records for the stated scope and as-of date and returns the evidence. It does not guarantee a counterparty's identity, legality, creditworthiness or safety, make investment judgements, or complete AML/KYC. No match in the warning records does not mean that no warning or violation exists. Relay of the qualified invoice issuer information published by the National Tax Agency of Japan (NTA) in its daily difference files, for corporations only, processed by MK Career Planning (not official). Registration numbers, names, addresses and dates are as published. The monthly full file is not loaded: a number that this service has not seen in the difference files is unknown here, not unregistered. Not tax advice and not an assessment of any business.
Registration, cancellation (torikeshi) and expiry (shikko) are shown with the dates as published by the National Tax Agency. A cancellation or expiry is a published fact about the registration, not an assessment of the business.
Corporations only: rows of sole proprietors (individuals) in the NTA files are discarded when read and are not stored or returned. A number that is not in this service's record gets the same answer whether it belongs to a corporation, an individual or no one.
Statuses (invoice_registration_lookup, core registry-status vocabulary): listed (the latest recorded record shows a registration), expired (it shows a cancellation or expiry date that has passed; registration.registration_status says cancelled or expired), unknown (not_in_recorded_changes_full_file_not_loaded: the number is not in the changes recorded since tracking_since and the full file is not loaded; or not loaded, stale, still loading, or a gap after the last recorded change). This service never answers 'not registered'.
Combine with jp-entity-evidence and jp-gbizinfo: the registration number of a corporation is T followed by its 13-digit corporate number (corporate_number in the answer).
NTA keeps the daily difference files for 40 business days only and the full file only as the latest month-end version. This service records every corporate row of every difference file it reads, starting at tracking_since (the first run read the 40 business days still published), dated by the file date and by when this service read it (observed_at). A record that NTA deleted (process 99) without a new latest record is not returned: its content and earlier change rows are deleted here too. Nothing before tracking_since was observed.
Free history window: change history recorded by this service is served for the last 30 days. A since earlier than that returns the last 30 days with history_window.clamped true (requested_since, served_since); older history can be requested as a paid product (not yet offered). tracking_since still shows when recording started.

## Connect

- MCP (streamable HTTP): https://jp-invoice-registry-production.mk-career-planning.workers.dev/mcp
- OpenAPI: https://jp-invoice-registry-production.mk-career-planning.workers.dev/openapi.json
- x402 discovery: https://jp-invoice-registry-production.mk-career-planning.workers.dev/.well-known/x402

## Quickstart

- Developer quickstart (MCP client configs, free curl/TypeScript calls, how to read official_check, status, registration_status and the change feed, attribution): https://jp-invoice-registry-production.mk-career-planning.workers.dev/quickstart

## Free tools

- catalog: List the tools of this server with prices, data sources, licensing, daily limits and data freshness.
- invoice_registration_lookup: Is this Japanese corporation a registered qualified invoice issuer, since when, and was it cancelled or did it expire? Give number (T1000020109142) or corporate_number (13 digits); the check digit is validated. Returns listed, expired (cancellation or expiry date passed) or unknown, with NTA's published dates, the difference file used, fetched_at and recorded changes. Corporations only. A number not seen in the recorded files is unknown, never 'not registered'.
- invoice_registration_changes: Which Japanese corporations were newly registered as qualified invoice issuers, had their published details changed, or had their registration cancelled or expired, in NTA's daily difference files since a date? From this service's own record of the files it read (NTA keeps them 40 business days). Each change has the file date, observed_at, the event type and the dates as published. Corporations only. Free window: last 30 days; page with next_cursor.
- get_receipt: Re-fetch the stored result of a settled paid call by its receipt_id, for when the response was lost after payment. Free. Unknown or unsettled receipt ids return RECEIPT_NOT_FOUND. Results are kept for 90 days after settlement.
- HTTP: GET https://jp-invoice-registry-production.mk-career-planning.workers.dev/v1/invoice/registration, GET https://jp-invoice-registry-production.mk-career-planning.workers.dev/v1/invoice/changes return the same data as the MCP tools. GET https://jp-invoice-registry-production.mk-career-planning.workers.dev/v1/receipts/<receipt_id> is get_receipt.

## Payments

This server offers free tools only. It does not request or accept x402 payments.

## Rate limits

- Free calls (free HTTP endpoints under /v1/ and free MCP tools) are limited to 300 requests per 60 seconds per client (a client is keyed by a one-way hash of its IP address and the first 64 characters of its User-Agent; neither is stored. The User-Agent can be set by anyone, so this split is for fairness between clients behind a shared gateway, not a security control). Over the limit, HTTP returns 429 RATE_LIMITED with a Retry-After header and MCP tools return the error RATE_LIMITED. Paid calls are not rate limited.

## Provenance and fetch_status

Responses carry provenance[] (source, upstream_updated_at, retrieved_at, content_sha256, parser_version, fetch_status). fetch_status values:

- found: The upstream document was retrieved and contains the data used for this answer.
- empty: The upstream was retrieved, but it has no item for this query (for example JMA had no bulletin for that area in its feeds, or the municipality is not in the list). The state is unknown: empty does NOT mean 'none in effect'.
- stale: The data was retrieved but is older than the freshness threshold for its kind; treat it with care.
- unavailable: The upstream could not be retrieved, read or used (network error, withdrawn bulletin, paused source, or data not yet loaded).
- unsupported: The query is outside what this source covers (for example a date JMA does not issue warnings for yet, or a period before the source's records).

## Errors

- RECEIPT_NOT_FOUND (get_receipt)
- RATE_LIMITED (free calls over the per-client limit; HTTP 429 with Retry-After; not charged)

## Terms

- Fresh: the NTA download list was confirmed within 48 hours and no more than 2 published difference files are unread. Otherwise lookups return unknown and no record.
- Keep the attribution (source and 'processed by MK Career Planning'), the NTA notice and the official site URL when you pass results on.

## Privacy and support

- Operator: MK Career Planning
- Terms of Service: https://jp-invoice-registry-production.mk-career-planning.workers.dev/terms
- Privacy policy: https://jp-invoice-registry-production.mk-career-planning.workers.dev/privacy
- Support (free): https://jp-invoice-registry-production.mk-career-planning.workers.dev/support (mk.career.planning@gmail.com)
