Ryoshu: Invoice PDF for Japan — Test guide for app review
1. What the app does
Generates receipts (領収書), qualified invoices (適格請求書) and delivery notes as PDF for stores in Japan, with the tax amount broken down by rate (8% reduced / 10%). Merchants issue documents from the admin; customers can issue their own receipt from a storefront page (App Proxy).
2. Test store and test orders
- Install the app on your own development store. No third-party account is needed.
- Create a test order: Shopify admin → Orders → Create order → add 1–2 products and a customer with an email → Mark as paid. To see the 8% / 10% breakdown, include one product that is in a collection or has a tag you marked as reduced-rate in step 3.
- For the refund tests, create two more orders the same way: refund one item of the first, and cancel the second.
- Screencast (74 s, English subtitles): https://youtu.be/3oBP12h64gk
3. Setup (about 1 minute)
- Open the app from Shopify admin → Apps. OAuth completes immediately; the app is embedded (App Bridge, session tokens).
- Go to 設定 (Settings). Enter a registration number, e.g.
T1234567890123, the issuer name (発行者名) and address (住所). Click 保存 (Save). - In "8%(軽減税率)の対象" mark reduced-rate items by tag, collection or product. Shopify tax settings are never modified.
4. Issue a document
- 注文一覧 (Orders) → click 発行… (Issue…) on your test order.
- Choose the type — 領収書 (receipt) / 適格請求書 (qualified invoice) / 納品書 (delivery note) — optionally edit the recipient (宛名) and note (但し書き), then click 発行. A PDF opens in a new tab.
- The PDF shows the registration number, the tax breakdown per rate with one rounding per rate, and reduced-rate items marked with ※.
- Issue the same document again: it is marked 再発行 (reissued).
5. Buyer self-service (App Proxy)
- Open the storefront and enter the storefront password.
- Go to
https://{your-store}.myshopify.com/apps/receipt. - Enter the order number (digits only, e.g.
1001) and the email of the order's customer → 次へ (Next) → choose the type → PDF をダウンロード. - A wrong email is rejected; after 5 failures the pair is locked for 15 minutes. No cookies are used; a signed token valid for 15 minutes carries the verified state.
6. Refunds and cancellations
- Partially refunded order: the document is issued with the post-refund amount and the note "一部返金後の金額です(返金額 ¥X)".
- Cancelled order: issuing is blocked in the admin and on the self-service page; existing records are marked void.
7. Issue history
発行履歴 lists every issued document (who, when, type, status: 発行済み / 要確認 (refund after issue) / 無効 (cancelled)). Recipient names are stored encrypted (AES-256-GCM).
8. Billing
Shopify App Pricing. Free: 10 merchant-issued documents per month (self-service is not counted). Standard: unlimited. When the free limit is reached the app returns a message and a banner linking to the Shopify plan selection page. On the development store the private $0 test plan can be selected.
9. Webhooks and privacy
- Mandatory compliance webhooks at
/webhooks/compliance(customers/data_request, customers/redact, shop/redact). HMAC is verified; an invalid signature returns 401. - refunds/create → documents flagged; orders/cancelled → documents voided; app/uninstalled → sessions removed.
- Privacy policy: /privacy-en. Security and incident response: /security. Support: /support.