InvoiceIn について
InvoiceIn は、受領した電子インボイスを標準的な EN 16931 JSON に変換し、平易な修正ヒント付きの検証レポートを返すホステッドサービスです。欧州と UAE の形式に対応し、PDF、CSV、DATEV への出力も行えます。
主な機能
- 01複数の電子インボイス形式を解析
- 02標準 EN 16931 JSON を出力
- 03修正ヒント付き検証レポート
- 04PDF・CSV・DATEV への出力
- 05メモリ内処理で文書を保存しない
活用シーン
- 01複数市場のインボイス形式を統一
- 02検証エラーと修正案の確認
- 03会計ワークフロー向けのデータ出力
MCP 対応
InvoiceIn は、読み取り専用ツールを5つ備えたホステッドの streamable HTTP MCP サーバーを提供します。ローカルの stdio ブリッジはツールをミラーし、呼び出しをホステッドサーバーへ転送します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://invoicein-api.peculiar.systems/mcpclaude mcp add --transport http peculiar-systems-invoicein https://invoicein-api.peculiar.systems/mcp{"mcpServers":{"peculiar-systems-invoicein":{"type":"http","url":"https://invoicein-api.peculiar.systems/mcp"}}}Cursor で開く{"servers":{"peculiar-systems-invoicein":{"type":"http","url":"https://invoicein-api.peculiar.systems/mcp"}}}VS Code で開く{"mcpServers":{"peculiar-systems-invoicein":{"type":"http","url":"https://invoicein-api.peculiar.systems/mcp"}}}{"mcpServers":{"peculiar-systems-invoicein":{"serverUrl":"https://invoicein-api.peculiar.systems/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://invoicein-api.peculiar.systems/mcp認証が必要ツール
5| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| ksef | string | いいえ | ポーランドのみ:National e-Invoice System がこのインボイスに付与した KSeF 番号(35 文字、形式:NNNNNNNNNN-RRRRMMDD-FFFFFFFFFFFF-FF)、またはこのインボイスを含む一括識別子(NNNNNNNNNN-IZRRRRMM-FFFFFFFFFFFF-FF)。KSeF 番号は受理時に割り当てられるため、FA(2)/FA(3) XML には含まれません。インボイスとともに KSeF API 応答、UPO、または表示用データの QR コードで提供されます。番号を渡すとインボイスと照合され、payment.ksef_number で返されます。これは、ポーランドの買い手が 2027-01-01 以降、銀行振込の摘要に記載しなければならない参照番号です。他国のインボイスでは空欄にしてください。 |
| lang | enum | いいえ | 検証レポートの修正ヒントと HTML 出力のラベルの言語です。デフォルトは en です。en | de | pl | it | fr |
| path | string | いいえ | file_base64 の代わりに使用する、サーバー実行マシン上のインボイスファイルの絶対パスです。stdio(`python -m invoicein.mcp_server`)経由の場合のみ有効です。ホスト型サーバー invoicein-api.peculiar.systems はこの値を無視し、file_base64 を求めるエラーを返します。 |
| file_base64 | string | いいえ | インボイスファイルの内容を base64(標準アルファベット)でエンコードしたものです。受け付ける形式:UBL 2.1、CII D16B、XRechnung、Peppol BIS Billing 3、FatturaPA 1.2、KSeF FA(2)/FA(3) 構文の XML、または ZUGFeRD 1.0/2.x、Factur-X ハイブリッド PDF(埋め込み XML を使用)。デコード後の最大サイズは 25 MB です。`path` を指定しない場合は必須です。 |
詳細
InvoiceIn — 使用例
欧州またはUAE(PINT AE)で企業が受け取るあらゆる電子請求書を、標準的なEN 16931 JSON、平易な修正ヒント付きの検証レポート、PDF、CSV、またはDATEV形式のエクスポートに変換します。 ステートレスなエンドポイントが1つあるだけで、データは保存されません。
対応形式:XRechnung(UBLおよびCII)、EN 16931 UBL 2.1 Invoice/CreditNote、Peppol BIS Billing 3、CII D16B、ZUGFeRD 1.0 / 2.xおよびFactur-XハイブリッドPDF、イタリアのFatturaPA 1.2、ポーランドのKSeF FA(2)/FA(3)、ルーマニアのRO e-Factura(CIUS-RO)、UAEのPINT AE(BillingおよびSelf-Billing)。
検証対象:EN 16931 validation artefacts 1.3.17、XRechnung 3.0.2(KoSIT Schematron 2.6.0)、Peppol BIS Billing 3、FNFE CTC-FR 1.4.0.04(BR-FRルール。販売者と購入者の両方がフランスに所在する場合に実行)、CIUS-RO 1.0.1、UAE向けOpenPeppolのPINT AE 1.0.4(無料チェックページ:https://invoicein.peculiar.systems/uae)、UBL、CII、FatturaPA、KSeFのスキーマに加え、すべての形式での算術チェックと、Schematronでは読み取れない市場慣行(自由記述欄に記載されたドイツのSkonto条件、ポーランドのKSeF番号)。バージョン付きの最新一覧は GET /v1/formats で確認できます。
- 製品ページ:https://invoicein.peculiar.systems(EN · DE · PL · IT · FR)
- APIリファレンス(インタラクティブ):https://invoicein-api.peculiar.systems/docs
- OpenAPI:https://invoicein-api.peculiar.systems/openapi.json
- Postman:公開コレクション · 公開ドキュメント — または
postman/InvoiceIn.postman_collection.jsonをインポートしてください。すべてのリクエストの本文には実際のXRechnungが含まれているため、セットアップなしですぐにSendを実行できます - MCP サーバー:
https://invoicein-api.peculiar.systems/mcp(ストリーミング可能なHTTP) — 公式レジストリではio.github.peculiar-systems/invoiceinとして、またSmitheryでも公開されています
このリポジトリには、実行可能な使用例、テストに使える請求書サンプル、MCPレジストリマニフェストが含まれています。サービス自体はオープンソースではありません。
送信したデータは保存されません。ドキュメントはメモリ上で解析され、そこからレスポンスが生成されます。プライバシー(ポリシー全文) · 利用規約
bridge/ のブリッジは透過的なプロキシであり、別の実装ではありません。ホスト型サーバーから返される tools/list の内容をそのまま反映するため、両者に差異が生じることはありません。5つのツールとそのアノテーション(すべて読み取り専用、非破壊的、冪等、閉世界)は bridge/tools.json にあり、tests/ で検証されています。ブリッジのソースだけを読む静的アナライザーには、ディスパッチコールバックが1つだけあり、ツールは存在しないように見えます。これはプロキシの実装によるもので、ツールの公開範囲を示すものではありません。
60秒で試す
curl -X POST "https://invoicein-api.peculiar.systems/v1/invoice?include=validation&lang=en" \
-H "X-Api-Key: $INVOICEIN_KEY" \
-F file=@samples/factur-x-en16931.pdf
まだキーをお持ちでない場合は、ヘッダーを省略してください。1日あたりIPごとに20件の請求書を、同じ出力で処理できます。トライアルキー(請求書100件、30日間、カード不要)は製品ページから取得できます。
レスポンス(完全な例):
{
"ok": true,
"source": { "syntax": "UBL", "format": "peppol-bis3", "profile": "Peppol BIS Billing 3.0", "container": "xml" },
"invoice": { // canonical EN 16931, field names carry BT/BG numbers in /v1/schema
"document": { "id": "Snippet1", "issue_date": "2017-11-13", "type_code": "380", "currency": "EUR", "due_date": "2017-12-01", ... },
"seller": { "name": "SupplierOfficialName Ltd", "vat_id": "GB1232434", "electronic_address": { "value": "9482348239847239874", "scheme": "0088" }, ... },
"buyer": { ... },
"lines": [ { "id": "1", "quantity": 7, "unit": "DAY", "net_amount": 2800, "tax": { "category": "S", "rate": 25 }, "item": { "name": "item name" } }, ... ],
"tax_breakdown": [ { "taxable_amount": 1325, "tax_amount": 331.25, "category": "S", "rate": 25 } ],
"totals": { "line_net": 1300, "charges": 25, "net": 1325, "tax": 331.25, "gross": 1656.25, "due": 1656.25 },
"payment": { "means_code": "30", "remittance_info": "Snippet1", "credit_transfers": [ { "iban": "IBAN32423940", "account_name": "AccountName", "bic": "BIC324098" } ] }
},
"validation": { "valid": true, "errors": 0, "warnings": 0,
"rule_sets": [ { "id": "XSD:ubl-invoice" }, { "id": "EN16931-UBL", "version": "EN 16931 validation artefacts 1.3.17" }, { "id": "Peppol-UBL" } ],
"issues": [] },
"timings_ms": { "detect": 0.5, "map": 14.4, "validate": 86.0, "total": 100.8 },
"credits": { "mode": "key", "remaining": 99 }
}
問題がある場合、失敗したルールごとに、指定した言語でヒントが付与されます(例:ポーランド語のKSeF FA(3)):
{ "id": "XSD-UNEXPECTED-ELEMENT", "severity": "error", "rule_set": "XSD:fa3",
"message": "Element '{http://crd.gov.pl/wzor/2025/06/25/13775/}Adnotacje': This element is not expected. Expected is one of ( {http://crd.gov.pl/wzor/2025/06/25/1 …",
"hint": "XML zawiera element, którego schemat nie dopuszcza w tym miejscu. Nazwa elementu jest błędna, element należy do innego profilu/wersji (np. UBL 2.0 lub ZUGFeRD EXTENDED), jest zdublowany albo jest własnym rozszerzeniem. Usuń go lub zmień jego nazwę.",
"who": "sender", "location": "/*/*[4]/*[8]", "line": 43 }
エンドポイント
| 呼び出し | 戻り値 |
|---|---|
POST /v1/invoice?include=validation,html,pdf,csv,datev&lang=en|de|pl|it|fr | すべてを1つのJSONにまとめて返します(追加データはbase64/インライン) |
POST /v1/parse | 正規化JSONのみ |
POST /v1/validate | 検証レポートのみ |
POST /v1/render.html · POST /v1/render.pdf | 人が読みやすい形式でレンダリングします。ラベルは5言語に対応しています |
POST /v1/export.csv?level=lines|documents | フラットなCSV |
POST /v1/export.datev?skr=03|04&creditor_account=70000 | DATEV Buchungsstapel(EXTF 700、cp1252) |
GET /v1/formats · GET /v1/rules/{id}?lang=de · GET /v1/schema | 形式とルールのバージョン · ルールIDの説明 · フィールドガイド |
GET /v1/countries | 各国の義務規定で求められる形式と、その形式の検証方法 |
GET /v1/vat/{number} | EU VAT番号:形式をオフラインで確認後、VIESでライブ照会し、日付入りの領収情報を返します |
GET /v1/peppol/{id} | 取引先がPeppolに登録されているか、また何を受信できるか |
本文:マルチパートのfileフィールド、または生のXML/PDFを指定します。実際のUser-Agentを送信してください(CloudflareはデフォルトのPython-urllibをエラー1010で拒否します)。認証:X-Api-KeyまたはAuthorization: Bearer。要求する出力にかかわらず、請求書1件につきクレジットを1つ消費します。複数の請求書を含むファイル(FatturaPAのロット)は、請求書1件ごとに1クレジットを消費します。残りのクレジットはX-Credits-Remainingで返されます。
このリポジトリの例
examples/curl.sh— すべてのエンドポイントを1回ずつ実行しますexamples/node.mjs— 依存関係なしのfetchとFormDataexamples/python.py— 標準ライブラリのみを使用しますexamples/n8n-workflow.json— メールボックスの添付ファイル → InvoiceIn → JSON。n8nにインポートできますmcp/server.json— MCPレジストリ用マニフェスト。[mcp/clients.md](mcp/clients.md)— Claude Desktop/Cursorの設定bridge/invoicein_mcp_bridge.py— ホスト型サーバーのツールを1対1で再現し、すべての呼び出しを転送するローカルstdio MCPサーバー(リモートに対応していないクライアント向け。Dockerfileでビルドできます。bridge/tools.jsonはツール定義のオフライン版です)
請求書サンプル
| ファイル | 内容 | 出典/ライセンス |
|---|---|---|
samples/xrechnung-3.0-ubl.xml、samples/xrechnung-3.0-cii.xml | 2種類の構文で記述された同一のXRechnung 3.0請求書 | KoSIT XRechnung testsuite、Apache-2.0 |
samples/peppol-bis3-base-example.xml | Peppol BIS Billing 3の基本例 | OpenPeppol、Apache-2.0 |
samples/factur-x-en16931.pdf | Factur-XハイブリッドPDF、EN 16931プロファイル | ZUGFeRD corpus(FNFE-MPEの例)、Apache-2.0 |
samples/ksef-fa3-przyklad-1.xml | KSeF FA(3)公式例1 | ポーランド財務省、公開 |
samples/fatturapa-fpr01.xml | FatturaPA 1.2公式例FPR01 | Agenzia delle Entrate、公開 |
どちらのXRechnungファイルも同じ正規化JSONを生成します(構文固有のextensionsブロックのみ異なります)。これが正規モデルの目的です。
対応していない機能
OCRには対応していません(埋め込みXMLのないPDFはpdf-no-xmlで拒否されます)。Peppolアクセスポイント、フランスのPDP、UAEの認定サービスプロバイダー、KSeFまたはSdIのクライアントではありません。すでに受信したデータを読み取るだけで、請求書をどこにも送信しません。EN 16931より下位のFactur-X/ZUGFeRDプロファイル(MINIMUM、BASIC WL、BASIC)では、スキーマと算術のチェックのみを行います。EN 16931のルールを適用すると、ノイズしか生じないためです。検証結果は情報提供のみを目的とし、法的助言ではありません。
ライセンス
このリポジトリ内の例はMITライセンスです。請求書サンプルには、上記のライセンスが適用されます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。