Agently/Skill Store/請求書処理スキル
💼

請求書処理スキル

請求書の内容を読み取り、フィールド抽出・仕訳分類・税区分判定・整合性検証を行い、

businessby agently-team

請求書処理スキル


概要


請求書の内容を読み取り、フィールド抽出・仕訳分類・税区分判定・整合性検証を行い、

会計システムに取り込み可能な構造化データ(JSON)を出力するスキル。


入力


ユーザーから以下の情報を受け取る:


  • **請求書データ**(必須): テキスト、画像、PDF等の請求書
  • **自社の会計基準**(任意): 勘定科目体系、部門コード
  • **消費税処理方針**(任意): 税込/税抜処理、インボイス制度対応
  • **出力形式の指定**(任意): JSON / CSV / freee / マネーフォワード形式

  • フェーズ1: フィールド抽出


    以下のフィールドを請求書から正確に抽出する:


    ヘッダー情報


    | フィールド | 説明 | 必須 |

    |-----------|------|------|

    | invoice_number | 請求書番号 | ○ |

    | invoice_date | 請求日 | ○ |

    | due_date | 支払期限 | ○ |

    | vendor_name | 取引先名(請求元) | ○ |

    | vendor_address | 取引先住所 | △ |

    | vendor_registration_number | 適格請求書発行事業者登録番号(T+13桁) | ○ |

    | buyer_name | 宛先(自社名) | ○ |

    | payment_method | 振込先情報 | △ |


    明細情報(Line Items)


    | フィールド | 説明 |

    |-----------|------|

    | item_description | 品名・サービス名 |

    | quantity | 数量 |

    | unit | 単位 |

    | unit_price | 単価 |

    | tax_rate | 適用税率(10% / 8% / 0%) |

    | amount | 金額(税抜) |


    合計情報


    | フィールド | 説明 |

    |-----------|------|

    | subtotal | 小計(税抜) |

    | tax_amount_10 | 消費税額(10%対象) |

    | tax_amount_8 | 消費税額(8%対象) |

    | total | 合計金額(税込) |


    フェーズ2: 勘定科目の自動分類


    抽出した明細を勘定科目に自動分類する:


    分類ルール


    | カテゴリ | 勘定科目 | 判定キーワード例 |

    |---------|---------|----------------|

    | オフィス消耗品 | 消耗品費 | コピー用紙、トナー、文具 |

    | IT・ソフトウェア | 通信費 / ソフトウェア | SaaS、クラウド、ライセンス |

    | 外注・業務委託 | 外注費 | 開発委託、デザイン、翻訳 |

    | 広告・マーケティング | 広告宣伝費 | Google Ads、SNS広告、PR |

    | 交通・出張 | 旅費交通費 | 航空券、宿泊、タクシー |

    | 飲食・接待 | 交際費 / 会議費 | 接待、懇親会、来客対応 |

    | 家賃・設備 | 地代家賃 | オフィス賃料、駐車場 |

    | 水道光熱費 | 水道光熱費 | 電気、ガス、水道 |

    | 保険 | 保険料 | 火災保険、賠償責任保険 |

    | コンサルティング | 支払手数料 | 顧問料、コンサル費用 |


    分類の確信度


  • **高確信度(90%以上)**: 自動分類を適用
  • **中確信度(70-89%)**: 分類案を提示し、ユーザーに確認
  • **低確信度(70%未満)**: 複数候補を提示し、ユーザーに選択を依頼

  • フェーズ3: 税区分の判定


    インボイス制度対応


  • **適格請求書**: 登録番号(T+13桁)の存在を確認
  • **区分記載請求書**: 軽減税率対象品目の区分が正しいか
  • **登録番号なし**: 経過措置(80%控除→50%控除)を注記

  • 税率判定


    | 税率 | 対象 |

    |------|------|

    | 10% | 標準税率(一般的な商品・サービス) |

    | 8% | 軽減税率(飲食料品、新聞) |

    | 0% | 非課税(土地譲渡、保険料等)/ 免税(輸出取引) |


    判定フロー


    1. 明細ごとに税率の記載を確認

    2. 記載がない場合、品目から推定し「要確認」と注記

    3. 税率ごとの小計と消費税額の整合性を検証


    フェーズ4: 支払期限の管理


    抽出した支払期限を基に、以下の情報を付加する:


  • **支払優先度**: 期限までの残日数で色分け
  • - 🔴 3日以内

    - 🟡 7日以内

    - 🟢 7日超

  • **早期支払割引**: 割引条件がある場合は明示(例: 「2/10 net 30」)
  • **遅延リスク**: 遅延損害金条項がある場合は注記

  • フェーズ5: 整合性検証


    以下の検証を自動実行し、不整合を報告する:


  • [ ] 単価 × 数量 = 明細金額(各行)
  • [ ] 明細金額の合計 = 小計
  • [ ] 小計 × 税率 = 消費税額(税率区分ごと)
  • [ ] 小計 + 消費税額 = 合計金額
  • [ ] 請求日 < 支払期限
  • [ ] 登録番号のフォーマット(T + 13桁の数字)
  • [ ] 前回同一取引先の請求書との金額比較(大幅な乖離がないか)

  • 出力フォーマット


    ```json

    {

    "invoice": {

    "invoice_number": "INV-2026-0042",

    "invoice_date": "2026-03-01",

    "due_date": "2026-03-31",

    "vendor": {

    "name": "株式会社サンプル",

    "registration_number": "T1234567890123"

    },

    "line_items": [

    {

    "description": "Webアプリケーション開発 3月分",

    "quantity": 1,

    "unit": "式",

    "unit_price": 500000,

    "tax_rate": 0.10,

    "amount": 500000,

    "account_code": "外注費",

    "classification_confidence": 0.95

    }

    ],

    "subtotal": 500000,

    "tax_breakdown": [

    { "rate": 0.10, "taxable_amount": 500000, "tax_amount": 50000 }

    ],

    "total": 550000,

    "payment_priority": "green",

    "days_until_due": 25

    },

    "validation": {

    "all_passed": true,

    "checks": [

    { "name": "明細金額の検算", "status": "OK" },

    { "name": "税額の検算", "status": "OK" },

    { "name": "合計金額の検算", "status": "OK" },

    { "name": "登録番号フォーマット", "status": "OK" }

    ]

    }

    }

    ```


    注意事項


  • OCR等で読み取った場合、数値の認識精度に限界がある。必ず元の請求書と照合すること
  • 勘定科目の分類は一般的な基準に基づく。自社の科目体系と異なる場合がある
  • インボイス制度の経過措置は年度により控除率が変わるため、最新の税制を確認すること
  • 外貨建て請求書の場合、為替レート(TTS/TTB/TTM)の選択をユーザーに確認する