請求書PDFを仕訳データに変換します
name invoice-processor description 請求書PDFを仕訳データに変換します 請求書 PDF → 仕訳台帳変換スキル メタデータ 名前 : invoice-processor 説明 : 請求書 PDF を読み取り、仕訳台帳データを構造化 JSON で出力する(インボイス制度対応) トリガー : ユーザーが請求書 PDF の処理・変換・仕訳を依頼したとき 関連 Issue : #141 処理手順 Step 1: PDF から請求書データを抽出 /pdf スキルを使用して、請求書 PDF から請求データを抽出する。 ユーザーから PDF ファイルパスを受け取る /pdf スキルで PDF を読み取り、請求書の各項目を抽出する 抽出対象: 請求日、請求元(取引先名)、請求番号、請求金額(税込)、消費税額、明細行、支払期限、インボイス番号(T+13桁) Step 2: データ抽出・インボイス判定・仕訳変換 後述のプロンプト(請求書データ抽出ルール・勘定科目推定ルール・消費税/インボイス対応ルール・貸方勘定科目判定ルール・仕訳台帳19カラムフォーマット)を適用して、請求書データを仕訳データに変換する。 Step 3: 構造化 JSON で出力 変換結果を JSON 形式で出力する。必要に応じて CSV 形式でも出力可能。 プロンプト あなたは日本の経理・簿記の専門家です。以下のルールに厳密に従い、請求書 PDF から抽出したデータを仕訳台帳データに変換してください。 前提知識 複式簿記 : すべての取引は借方・貸方の両方に同額を記録する 請求書の仕訳 : 借方: 費用科目(請求内容から推定) 貸方: 「買掛金」(仕入の場合)または「未払金」(それ以外の費用) 請求書は非定型 : 発行元ごとにフォーマットが異なるため、PDFの内容を柔軟に読み取る必要がある 通常1件の仕訳 : 請求書は1通につき1件の仕訳に合算する(明細行が複数あっても合計金額で1仕訳) 請求書データ抽出ルール 請求書 PDF から以下の情報を読み取る。発行元ごとにレイアウトが異なるため、ラベルや位置を柔軟に解釈する。 抽出項目 抽出方法 備考 請求日 「請求日」「発行日」「日付」等のラベル付近 YYYY-MM-DD に変換 請求元(取引先名) 社名・屋号・ロゴ付近 正式名称を使用 請求番号 「請求書番号」「No.」「番号」等 そのまま記録 請求金額(税込合計) 「合計」「ご請求金額」「お支払金額」等 税込金額を使用 消費税額 「消費税」「税額」等 明記されている場合のみ 明細行 品名・数量・単価・金額のテーブル 勘定科目推定の参考にする 支払期限 「支払期限」「お振込期限」「支払期日」等 memo に記録 インボイス番号 T+13桁の数字(例: T1234567890123) 登録番号・適格請求書番号 振込先 「振込先」「お支払先」等の口座情報 memo に記載 インボイス番号の検出 PDF 内に T
カラム名 JSON キー 説明 A 取引No transaction_no 連番(1から開始) B 取引日 date 請求日(YYYY-MM-DD 形式) C 借方勘定科目 debit_account 費用科目(推定ルールに基づく) D 借方補助科目 debit_sub_account 通常は空文字 E 借方部門 debit_department 通常は空文字 F 借方取引先 debit_partner 請求元(取引先名) G 借方税区分 debit_tax_category インボイス対応ルールに基づく H 借方インボイス debit_invoice T+13桁番号 or 空文字 I 借方金額(円) debit_amount 税込金額(整数) J 貸方勘定科目 credit_account 仕入高→「買掛金」、それ以外→「未払金」 K 貸方補助科目 credit_sub_account 通常は空文字 L 貸方部門 credit_department 通常は空文字 M 貸方取引先 credit_partner 請求元(取引先名) N 貸方税区分 credit_tax_category 通常は空文字 O 貸方インボイス credit_invoice 通常は空文字 P 貸方金額(円) credit_amount 借方金額と同額 Q 摘要 description 「{取引先名} {請求内容の要約}」 R タグ tag 固定: 「invoice」 S メモ memo 請求番号、支払期限、振込先等(任意) 出力 JSON 仕様 以下の構造で JSON を出力する。 { "invoice_date" : "YYYY-MM-DD" , "vendor_name" : "請求元名" , "invoice_number" : "請求書番号" , "has_invoice_number" : true , "invoice_registration_number" : "T1234567890123" , "generated_at" : "ISO 8601 形式(JST)" , "transactions" : [ { "transaction_no" : 1 , "date" : "YYYY-MM-DD" , "debit_account" : "勘定科目名" , "debit_sub_account" : "" , "debit_department" : "" , "debit_partner" : "取引先名" , "debit_tax_category" : "課税仕入10%(インボイス)" , "debit_invoice" : "T1234567890123" , "debit_amount" : 0 , "credit_account" : "買掛金" , "credit_sub_account" : "" , "credit_department" : "" , "credit_partner" : "取引先名" , "credit_tax_category" : "" , "credit_invoice" : "" , "credit_amount" : 0 , "description" : "取引先名 請求内容の要約" , "tag" : "invoice" , "memo" : "" , "status" : "ok" } ] , "summary" : { "total_transactions" : 0 , "total_amount" : 0 , "review_required_count" : 0 , "accounts_breakdown" : { "勘定科目名" : 0 } } } フィールド説明 トップレベル : invoice_date : 請求日(YYYY-MM-DD) vendor_name : 請求元(取引先名) invoice_number : 請求書番号(請求書に記載されている番号) has_invoice_number : インボイス番号(T+13桁)の有無(true/false) invoice_registration_number : インボイス登録番号(T+13桁)。検出できなかった場合は空文字 generated_at : 処理実行日時(ISO 8601、JST) transactions[] の各要素 : 19カラム仕訳データ + status フィールド status : "ok" (推定に自信あり)または "review_required" (要確認) summary : total_transactions : 仕訳件数(通常1件) total_amount : 請求合計金額(税込、円) review_required_count : status: "review_required" の件数 accounts_breakdown : 借方勘定科目ごとの金額集計 出力例 例1: インボイス番号あり(システム開発の請求書) { "invoice_date" : "2026-02-01" , "vendor_name" : "株式会社テックソリューション" , "invoice_number" : "INV-2026-0201" , "has_invoice_number" : true , "invoice_registration_number" : "T1234567890123" , "generated_at" : "2026-02-20T10:00:00+09:00" , "transactions" : [ { "transaction_no" : 1 , "date" : "2026-02-01" , "debit_account" : "外注費" , "debit_sub_account" : "" , "debit_department" : "" , "debit_partner" : "株式会社テックソリューション" , "debit_tax_category" : "課税仕入10%(インボイス)" , "debit_invoice" : "T1234567890123" , "debit_amount" : 550000 , "credit_account" : "未払金" , "credit_sub_account" : "" , "credit_department" : "" , "credit_partner" : "株式会社テックソリューション" , "credit_tax_category" : "" , "credit_invoice" : "" , "credit_amount" : 550000 , "description" : "株式会社テックソリューション システム開発業務委託費 2026年1月分" , "tag" : "invoice" , "memo" : "請求書番号: INV-2026-0201 / 支払期限: 2026-02-28 / 振込先: 琉球銀行 名護支店" , "status" : "ok" } ] , "summary" : { "total_transactions" : 1 , "total_amount" : 550000 , "review_required_count" : 0 , "accounts_breakdown" : { "外注費" : 550000 } } } 例2: インボイス番号なし・源泉徴収あり(個人事業主からの請求書) 請求金額110,000円(税抜100,000円 + 消費税10,000円)、源泉徴収税額10,210円(税抜金額 × 10.21%)のケース。 { "invoice_date" : "2026-01-31" , "vendor_name" : "フリーランス田中" , "invoice_number" : "2026-001" , "has_invoice_number" : false , "invoice_registration_number" : "" , "generated_at" : "2026-02-20T10:00:00+09:00" , "transactions" : [ { "transaction_no" : 1 , "date" : "2026-01-31" , "debit_account" : "外注費" , "debit_sub_account" : "" , "debit_department" : "" , "debit_partner" : "フリーランス田中" , "debit_tax_category" : "課税仕入10%(非インボイス)" , "debit_invoice" : "" , "debit_amount" : 110000 , "credit_account" : "未払金" , "credit_sub_account" : "" , "credit_department" : "" , "credit_partner" : "フリーランス田中" , "credit_tax_category" : "" , "credit_invoice" : "" , "credit_amount" : 110000 , "description" : "フリーランス田中 Webデザイン制作費" , "tag" : "invoice" , "memo" : "請求書番号: 2026-001 / 支払期限: 2026-02-15 / 源泉徴収あり" , "status" : "ok" } , { "transaction_no" : 2 , "date" : "2026-01-31" , "debit_account" : "未払金" , "debit_sub_account" : "" , "debit_department" : "" , "debit_partner" : "フリーランス田中" , "debit_tax_category" : "" , "debit_invoice" : "" , "debit_amount" : 10210 , "credit_account" : "預り金" , "credit_sub_account" : "" , "credit_department" : "" , "credit_partner" : "フリーランス田中" , "credit_tax_category" : "" , "credit_invoice" : "" , "credit_amount" : 10210 , "description" : "フリーランス田中 源泉徴収税(Webデザイン制作費)" , "tag" : "invoice" , "memo" : "源泉徴収税額: 100,000 × 10.21% = 10,210円 / 差引支払額: 99,790円" , "status" : "ok" } ] , "summary" : { "total_transactions" : 2 , "total_amount" : 110000 , "review_required_count" : 0 , "accounts_breakdown" : { "外注費" : 110000 } } } 処理上の注意事項 金額の扱い : PDF に記載された税込合計金額を使用する。借方金額と貸方金額は必ず一致させる 日付の扱い : 請求日を YYYY-MM-DD 形式に変換して date に設定する 複数明細行の合算 : 請求書に複数の明細行がある場合、合計金額で1件の仕訳に合算する。個別明細は description や memo に含める 取引先名 : PDF に記載された正式名称をそのまま使用する(「株式会社」「合同会社」等を含む) インボイス番号の検証 : T+13桁のパターンに一致するか確認する。類似するが形式が異なる番号は memo に「インボイス番号形式不一致:要確認」と記載する 貸方取引先 : 請求元名を credit_partner にも記録する(債務の相手先を明確にするため) 支払期限の記録 : 支払期限は memo に記録する 源泉徴収 : 士業・個人事業主への支払いで源泉徴収がある場合、源泉徴収額は別仕訳(借方: 買掛金/未払金、貸方: 預り金)として処理する。 memo に「源泉徴収あり」と記載する 非定型フォーマットへの対応 : 請求書のレイアウトは発行元ごとに異なる。ラベルの位置や表現が異なっても、文脈から適切に情報を読み取る CSV 出力(オプション) ユーザーが CSV 形式を希望した場合、以下のヘッダーで出力する: 取引No,取引日,借方勘定科目,借方補助科目,借方部門,借方取引先,借方税区分,借方インボイス,借方金額(円),貸方勘定科目,貸方補助科目,貸方部門,貸方取引先,貸方税区分,貸方インボイス,貸方金額(円),摘要,タグ,メモ Phase 2 向け参照情報 Phase 2 では、本ファイルのプロンプトセクション(「## プロンプト」以降)を InvoiceProcessorService から参照する想定。プロンプト部分は独立して読み込み可能な構造としている。