Changelog
Release notes for Torify — Japanese locale APIs for AI agents.
v0.3.1: Composite corporate↔invoice endpoints + security & UX hardening
2 new composite endpoints unifying 法人番号 ↔ qualified-invoice (T-number) verification in a single call, MCP tool descriptions with when-to-use guidance, x402 security hardening, and self-serve Pro checkout. Now 42 endpoints / 12 MCP tools.
What's new
New endpoints (+2, now 42 total)
| Endpoint | Description |
|---|---|
/v1/company/full-profile |
Corporate number → company info + qualified-invoice (T-number) registration status in one call |
/v1/invoice/company-profile |
T-number → invoice registration + corporate details in one call |
Why composite? Previously, verifying that a corporate number and a T-number refer to the same entity required two separate API calls and manual cross-referencing. These endpoints resolve both registries in a single request and return a crossVerified flag.
MCP tools (+2, now 12 total)
company.fullProfile— wraps/v1/company/full-profileinvoice.companyProfile— wraps/v1/invoice/company-profile
All MCP tool descriptions now include when-to-use guidance and LLM-misuse notes, improving agent tool selection accuracy.
Self-serve Pro checkout
Pro plan is now purchasable directly via Polar at https://torify.dev — no email required.
Security fixes
- x402 Solana facilitator host-validation hardening: Restricts allowed facilitator hostnames to prevent SSRF and credential-leak via crafted payment headers.
- Subscription restore after admin revoke: Admin-revoked Pro keys now correctly restore access upon successful re-subscription.
- Qualified-invoice bulk verification (NTA API): Fixed edge case where the NTA API returned unexpected XML structure, causing
registered: falsefalse-negatives on valid T-numbers.
API contract fixes
- Unified error code to
INVALID_BODY(previouslyINVALID_INPUTin some paths) for POST endpoints with malformed JSON bodies. - Invoice bulk verification limit clarified: 300 items per call (matches NTA API constraint).
- Wareki conversion error messages now returned in English for consistency with all other endpoints.
v0.3.0: Address parser overhaul + bulk endpoints
Address parsing now returns addressType/streetRef/addressee with kanji-numeral conversion. Adds bulk invoice/tax verification and freelance-law order validation. 42 endpoints total.
What's new
Address Phase 2.5
addressTypeenum:block/street/rural/otherclassification for every parsed addressstreetRef: Kyoto 通り名 support — intersection + direction (上る/下る/東入/西入) extracted and normalizedaddressee:様方/気付/c/oextraction from delivery addresses- 漢数字 → Arabic: 1–99 kanji numerals converted in street and block numbers (一丁目 → 1丁目)
- Verified against the full Japan Post ken_all dataset (116,421 entries)
New endpoints
| Endpoint | Description |
|---|---|
/v1/invoice/verify/bulk |
Verify up to 300 T-numbers per call against NTA registry |
/v1/tax/calculate/bulk |
Bulk consumption tax calculation (8% / 10%) |
/v1/freelance/order/validate |
Freelance Protection Act order form validation |
5 programmatic landing pages (SEO)
Static pages generated at deploy time for major endpoint categories.
Security
- NFKC normalization added to MCP input sanitizer
- Admin endpoint rate limiting tightened
- Reflected-XSS fixes in error response paths
Billing
- LemonSqueezy removed. Polar-only billing going forward.
- No API breaking changes. Existing x402 / Trial / Pro keys continue to work.
Endpoint count: 39 → 40
v0.2.0: x402 V2 Multi-Chain (Base + Solana)
Torify now accepts USDC payments on both Base L2 and Solana via x402 V2. 1/1000 the gas cost on Solana. No action required for existing Base customers.
What's new
Torify now supports both Base L2 and Solana as payment networks via x402 V2.
Pay with USDC on Solana (in addition to Base)
- Gas comparison:
- Base L2: ~$0.001 per transaction
- Solana: ~$0.00001 per transaction (1/1000 the cost)
- Settlement speed: Solana ~5 seconds, Base ~2 seconds (both effectively instant)
- Same USDC, same Coinbase CDP Facilitator (
api.cdp.coinbase.com/platform/v2/x402)
/.well-known/x402 updated to V2 format
The accepts array now includes both chains when RECEIVER_WALLET_SOLANA is configured server-side.
curl -s https://torify.dev/.well-known/x402 | python3 -c "import json,sys; d=json.load(sys.stdin); print(d['accepts'])"
Do I need to change anything?
| You are... | Action required |
|---|---|
| Existing Base customer | ✅ Nothing. Base support is unchanged. |
| New customer wanting Solana | ⚙️ Use Solana wallet with x402-fetch v2+ client. |
| Self-hosting Torify fork | 🔧 Set RECEIVER_WALLET_SOLANA env var on both Workers. |
Why we did this
- x402 Foundation — x402 became a Linux Foundation standard on 2026-04-02 with 22 launch members (AWS, Stripe, Visa, Mastercard, Adyen, Circle, Shopify, etc.).
- Solana accounts for ~65% of x402 transactions (per InfoQ / The Block coverage).
- 1/1000 the gas matters for sub-cent micropayments (Torify is $0.02/call).
- Multi-chain future-proofing: x402 V2 supports CAIP-2 for any chain.
Pricing
No price changes. $0.02/call regardless of chain (Base or Solana).
What's next
| Release | Target | What |
|---|---|---|
| v0.3.0 | 2026-05-29 | Address parser overhaul + bulk endpoints |
v0.1.0: Show HN Launch (baseline)
Torify v0 public launch: 39 REST API endpoints, 10 MCP tools, x402 USDC pay-per-call, Trial tier, and Pro subscription — all built on Cloudflare Workers.
What launched
Torify v0 baseline — the state of the service at the Show HN public launch (2026-05-21).
REST API (39 endpoints · $0.02/call via x402)
| Category | Example Endpoint | Description |
|---|---|---|
| Wareki | /v1/wareki/convert |
Gregorian ↔ Japanese era (Reiwa/Heisei/Showa/Taisho/Meiji) |
| Invoice | /v1/invoice/verify |
T-number check-digit + NTA registry lookup |
| Corporate | /v1/houjin/lookup |
NTA 法人番号 Web API wrapper |
| Postal | /v1/postal/lookup |
〒 → prefecture/city/town |
| Phone | /v1/phone/validate |
E.164 + variable-length area code |
| Address | /v1/address/normalize |
Full/half-width normalization + prefecture inference |
| Names | /v1/name/romanize |
Hepburn romanization (passport-style) |
| Kanji → Kana | /v1/kanji/to-kana |
Cloudflare Workers AI (Llama 3.3 70B) |
| Banking | /v1/bank/lookup |
Zengin 4-digit bank code |
| Geo | /v1/geo/geocode |
GSI (国土地理院) API |
| Law | /v1/law/search |
e-Gov 法令 API |
| Tax | /v1/tax/calculate |
Consumption tax 8%/10% |
| And 27 more |
MCP Server (10 unique tools · free · 100 req/day/IP)
https://torify-mcp.torify.workers.dev — works in Claude Desktop, Cursor, Cline.
Add with:
{ "type": "http", "url": "https://torify-mcp.torify.workers.dev" }
Pricing tiers
| Tier | Price | Limit |
|---|---|---|
| Trial | Free (email signup) | 100 calls/month |
| MCP free | Free (no auth) | 100 req/day/IP |
| x402 micropayment | $0.02/call USDC on Base L2 | Unlimited |
| Pro | $19/mo | 10,000 calls/month |
| Enterprise | $149/mo | Fair Use 1,000,000 calls/month |
Security & monitoring
- ✅ 1,549+ unit tests pass (TypeScript strict + Vitest)
- ✅ Cloudflare DNS + SSL + HSTS Preload
- ✅ Rate Limiter (60 req/min/IP + KV daily counter)
- ✅ UptimeRobot monitoring
- ✅ Analytics Engine (request metrics)
- ✅ Cron Trigger (onboarding email / bizops metrics)
Timeline
- 2026-05-07: Phase 1-3 complete (Workers / 7 endpoints / x402 / MCP / OpenAPI / A2A)
- 2026-05-09: testnet payment success + x402scan + a2aregistry
- 2026-05-15: System v4 audit resolved (Cron Object.assign / Sec v4 HIGH/MEDIUM)
- 2026-05-19: DEPLOY-6 (OG image v2 — final production deploy)
- 2026-05-21: Show HN submission