仕様・利用条件・制約
仕様・利用条件・制約
Section titled “仕様・利用条件・制約”日本語帳票・押印欄のプリセット、法務文書解析とPDF用データ、請求書Excelレイアウト、 既存の日本向けEDIチェックとラベル、祝日データ、10%の請求額計算初期値、ja-JPの書式はこのリポジトリが正本です。 汎用EDI型/UBL、文書データ型、日付演算、CSVの直列化、条件指定の金額計算はengineに残します。 engine連携の依存方向はbusiness-jp → data-engineの任意peerだけで、engineには日本向けpackageへの通常依存・peer依存や祝日データはありません。
初回公開前に、engine /legal-documentは本packageの/legal-document、PDFプリセット・法務PDFは/pdf、
Excel請求書は/excel、日本向けEDI生成/チェック/帳票変換は/ediへ移しました。
日本向け日付/祝日・暗黙の税率/CSV書式は/date-utils・/finance・/csvを利用します。
汎用engineのEDIは通貨・プロファイル、金額計算は税率の初期値と丸め関数を明示します。
直接engineを参照する利用側はimportと設定を更新してください。
private app-core/react-toolsの既存入口と日本向け初期値は互換ファサードで維持します。
AI・グラフはengineの任意連携入口を利用します。
帳票とExcel
Section titled “帳票とExcel”japaneseDocumentPresetsは見積・請求・返還・発注・納品などの日本語文言、担当者/承認者の押印欄、表ラベルを持ちます。 ひな形があることは法的な十分性の証明ではありません。発行者・取引先・会社設定と内容は利用側が用意・確認します。 PDF用データを返すヘルパーであり、描画・保存・印刷はホストが担当します。 NotoSansJPはフォント名の初期値で、フォント本体・利用許諾・表示保証は同梱しません。 ホストがフォントと必要なライセンス表示を用意してください。engineの汎用テーマはsans-serifです。
法務パーサーは日本語の条文・当事者・定型文の配置を解析します。 法的意味、効力、署名の真正性、完全性は判断しません。異なる書式には専用処理が必要な場合があります。 抽出された文言は、描画先の安全なtext APIへ渡してください。
createInvoiceExcelWorkbookは日本語のcell/formulaを返し、taxRateの初期値は比率0.1です。 calculateInvoiceAmountsは百分率10を10%と扱うため単位が異なります。 Excel税額はROUNDDOWN、従来の金額ヘルパーはMath.roundです。別々の既存プリセットなので、 同じ税額になる前提を置かず、必要な計算条件を選択・統一してください。 数式の評価はworkbookアダプターが担当します。明細0件や業務上の丸めを実帳票へ適用する前に確認してください。 Excelデータの出力だけでは計算済み請求書にはなりません。
EDIの識別子・初期値・互換性
Section titled “EDIの識別子・初期値・互換性”通常の/edi factoryはJP PINT 1.1.3で表現している項目に合わせ、JPY、customization urn:peppol:pint:billing-1@jp-1、process urn:peppol:bis:billingを既定値にします。識別子の選択であり適合認証ではありません。参加者/endpointのschemeは0221(適格発行者T+13桁)、0188(法人番号)、0088(GLN)です。createQualifiedInvoicePartyIdは0221、createCorporateNumberは0188、createTaxIdはendpointとは別の税scheme VATを返します。検証対象の区分はS/AA/E/G/Oで、AA(軽減税率)も受理します。区分と税率は別の値です。VATEX_CATEGORIESは歴史的なAPI名で、税率区分を表し、免税理由コードではありません。このvalidatorは表現している項目を検査するもので、すべてのJP PINT業務規則や任意の区分・税率の組合せの送信適合性を保証しません。送信前には対象版の完全な規則で検証してください。
既存アプリのレコードには/edi/legacyとその/factory・/types・/validatorを使います。この明示的な互換入口だけが従来の9914/9925・EU形式profile値を維持し、日本の公式schemeとは扱いません。private app-coreもこの入口へ変更し、既存レコードとAPIを維持しています。通常入口へ移す前に保存済み識別子/profileを明示的に移行してください。
税込/支払額0、完済請求も有効です。validatorは表現している項目・識別子・金額の一部の検証で、JP PINT全Schematron・番号照会・署名・法務税務判断ではありません。engineの4種UBL文書は公式UBL 2.1 XSDで検証しますが、XML構造適合とprofileの業務規則適合は別です。送信前に対象profileの検証を行ってください。
日付・CSV・金額
Section titled “日付・CSV・金額”日本向け日付関数の既定localeはja-JPですが、互換性のため多くのtimezone既定値はホストのlocalのままです。 Asia/Tokyoなど業務で使うzoneは明示してください。祝日は導入したholiday-jpデータの版・収録範囲に従い、 将来の変更や各社の稼働日を自動で判断しません。engine側の汎用処理には国別データがなく、HolidayCalendarを注入します。
日本向けCSVGeneratorはDateをja-JPで表示します。dateLocale/dateOptionsでlocale/timezone、 dateFormatterでISOなどの機械向け書式を選択できます。数式対策escapeFormulaeは明示設定で、元の値が変わることがあります。 表計算ソフトでの再読込/保存すべてに対する保証ではありません。機械連携はengineの汎用CSVと書式指定を検討してください。
calculateInvoiceAmountsは未指定時に従来の10%/Math.roundを使い、defaultTaxRate/roundTaxで変更できます。 0は指定値として保持し、null・空文字列・不正な任意値はfallbackします。 JavaScript numberを使うため、厳密な十進演算器ではありません。実際の税率、通貨最小単位、集計単位、 返還・負数の扱いと丸めは業務に合わせて選択してください。初期値が法的要件を判断するものではありません。 汎用engineは計算policyを必須にしています。
従来の請求額、既知の祝日、locale上書き、帳票データ、EDIの汎用処理への委譲、法務解析をテストします。 独立tarball consumerで全export、Node/Bun ESM/CJS、Node型の有無双方の厳密なNodeNext型解決、browser bundleを確認します。 空明細・明示0金額も含め、出力数式をテスト専用Excel式評価器で計算します。実際のPDF描画、Excelアプリ自体との相互運用、法務レビュー、Peppol接続、適合認証はテスト対象ではありません。 engineを先に公開し、本番registryのlockfileを作成してverifyしてください。 ローカルtarballは明示的な開発用検証で、本番lockにはしません。機能JSDoc・README・ガイドはここが正本で、apps/docsは同じworkspaceの文書を直接参照します。
支払コード表はUNCL4461 D.16Bに合わせ、1=支払手段未定義、10=現金、30=振込、42=銀行口座への支払とします。従来の1=現金・10=相殺・42=手形という説明は誤りでした。保存済みコードは自動変換しません。旧ラベルで入力した記録は移行前に確認してください。出典: JP PINT 1.1.3税率区分、UNCL4461 2026年5月版。
日本向け機能をまとめて利用する
Section titled “日本向け機能をまとめて利用する”帳票・押印/印影生成・日本語法務文書・JP PINT向け規則は、この1パッケージにまとめます。
請求書・押印・文書ごとの別パッケージには分けません。汎用側からの逆依存はありません。
engineに残っていた印影生成も@alneas/business-jp/pdf/stampへ移しました。
resolveSealLabelは日本語名の姓省略、createFallbackSealSvg/createFallbackSealDataUrlは
表示用の印影を生成します。電子署名・本人確認の仕組みではありません。
privateの既存PDF/stamp入口は維持します。business-jpを入れてもAI・グラフ・DB・storageは入りません。
engineのAI/グラフ連携を使う場合は、必要なpeerと専用サブパスを明示します。
import { resolveSealLabel } from '@alneas/business-jp/pdf/stamp';const label = resolveSealLabel('山田 太郎'); // 山田日本語の支払・在庫通知と円表示の初期値も、/notificationsのjapaneseNotificationMessagesへ集約しています。汎用通知アダプターのconstructor第2引数へ渡すと利用できます。privateの既存通知入口もこの設定を使い、従来の日本語・円表示を維持します。
import { japaneseNotificationMessages } from '@alneas/business-jp/notifications';import { SlackNotificationAdapter, SlackClient } from '@alneas/data-engine/notifications/slack';const adapter = new SlackNotificationAdapter(new SlackClient({ botToken: 'host-supplied-token' }), japaneseNotificationMessages);単独利用と任意のengine連携
Section titled “単独利用と任意のengine連携”ルート・/pdf/stamp・/holidays・/legal-document・/notificationsはdata-engineなしで実行・型解決できます。通常依存はholiday-jpとYAMLだけです。祝日providerはmonthが0始まりの年月日を受け取り、timezoneから年月日への変換は呼出側が担当します。通知の公開型は表示に必要な入力だけを表し、engineの汎用表示設定型との構造的互換性は開発テストで検証します。型定義だけを理由にengineへ通常依存しません。
/integrations/data-engine、日付演算・書式、金額計算、CSV、PDFテーマ/文書モデル、EDI/UBL、Excelの連携入口には@alneas/data-engine@0.1.0を明示的に導入します。JP PINTの検証サブパスも現状はengineのEDIデータ型・定数を共有するため、checkerだけを使う場合にもpeerが必要です。依存をなくすために汎用アルゴリズムや型を複製する構成にはしません。
従来ルートの日付・金額関数とpdf/edi/excel/csv名前空間は/integrations/data-engineへ移します。機能別サブパスとprivateの互換入口は振る舞いを維持します。単独npm consumerでengine/AJV/Zodなどが存在しないことと印影・法務・祝日・通知を検証し、別consumerでengineを追加して全入口と厳密なESM/CJS型を確認します。最低Nodeは24.0.0、品質CIは24/26です。