英文の銀行保証状とスタンバイL/Cを読み取り、保証額・期限・請求の条件を与信台帳に転記して、契約との食い違いと期限切れ間近を拾う
海外の取引先の銀行が発行した英文の銀行保証状とスタンバイL/Cを読み取り、保証額・有効期限・準拠規則・請求の条件を与信台帳に転記します。契約で求めた条件と食い違うものと、期限切れの近いものを拾って担当へ返します。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- AWS Textract/Azure AI/Google Document AI
- 連携・自動化
- Python
- 対象業界
- 商社/建設/製造
- 対象部門
- 営業/財務
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 属人化している/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- 抽出
- 主な効果
- 入力漏れ削減/工数削減/機会損失防止
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 通知銀行から保証状の通知が届くか、取引先から原本が届き、財務の担当がPDFを案件フォルダに保存する(原本はスキャンする)
- 担当が全文を読み、保証番号、発行銀行、依頼人、受益者、保証額と通貨、有効期限を拾う
- 請求の条件を読み、請求に要る書類、請求の方法と場所、一部請求の可否をノートに書き出す
- 準拠規則、準拠法、減額の条件(出荷や前払金の消化に応じて保証額が減る条項)、効力が始まる条件を書き出す
- 売買契約と営業の取り決めメモを開き、保証額・期限・準拠規則・保証の種類を見比べる
- 食い違いがあれば営業に伝え、営業が取引先に差し替えを頼む
- 与信台帳に保全の額と期限を手で入力する
- 月末に与信台帳を見渡し、期限の近い保証を探して営業に延長の依頼を頼む
- 人通知銀行から届いた保証状と条件変更のPDFを、受付フォルダに保存する(原本はスキャンする)
- 自動保存をきっかけに処理が動き、形式・ページ数・サイズ・パスワードの有無を確かめる
- 自動OCRが全文、キーと値、質問への答え、署名の位置と、それぞれの信頼度を返す
- 自動生成AIが、保証状の項目を原文のまま切り分け、請求の条件を1条件1行に分け、根拠の文字列を添える
- 自動プログラムが、契約で求めた条件と照合し、条件変更なら元の保証状の記録に重ねる
- 自動与信台帳への登録案と、食い違いの一覧(理由の候補付き)を出す
- 人財務の担当が、印の付いた項目と請求の条件の原文を、保証状の画像と並べて確かめる
- 人食い違いのうち差し替えを頼むものを営業担当が決め、取引先への依頼文の下書きを直して送る
- 人確定した内容を与信台帳に登録する
- 自動毎朝、台帳の有効期限から延長の依頼日と請求の最終日を計算し、近いものを担当へ知らせる
各工程の詳しい説明を読む
- 通知銀行から保証状の通知が届くか、取引先から原本が届き、財務の担当がPDFを案件フォルダに保存する(原本はスキャンする)
- 担当が全文を読み、保証番号、発行銀行、依頼人、受益者、保証額と通貨、有効期限を拾う
- 請求の条件を読み、請求に要る書類、請求の方法と場所、一部請求の可否をノートに書き出す
- 準拠規則、準拠法、減額の条件(出荷や前払金の消化に応じて保証額が減る条項)、効力が始まる条件を書き出す
- 売買契約と営業の取り決めメモを開き、保証額・期限・準拠規則・保証の種類を見比べる
- 食い違いがあれば営業に伝え、営業が取引先に差し替えを頼む
- 与信台帳に保全の額と期限を手で入力する
- 月末に与信台帳を見渡し、期限の近い保証を探して営業に延長の依頼を頼む
(a)期限切れに気づくのが遅い。 期限の管理は8番の月末の見渡しだけです。月をまたいで期限が来る保証は、気づいたときには延長を頼む時間が残っていません。 支払の期日より先に保証が切れていれば、その間の売掛金は保全のないまま残ります。
(b)契約と違う条件のまま台帳に入る。 契約では「契約金額の10%、最終支払期日の30日後まで有効」と取り決めていても、届いた保証状の期限が最終支払期日の当日になっていることがあります。5番の見比べは忙しい月ほど省かれ、台帳には「保全あり」とだけ入ります。
(c)請求の条件が台帳に残らない。 請求に「受益者の署名入りの陳述書」が要るのか、「裁判所の判決の写し」が要るのか。3番のノートは担当者の手元に残り、台帳には載りません。
(d)条件変更が重なると、いまの条件が分からない。 増額や期限延長の通知は変わった箇所だけが書かれて届き、手で台帳を直すたびに元の条件との関係が失われます。
- 【人】 通知銀行から届いた保証状と条件変更のPDFを、受付フォルダに保存する(原本はスキャンする)
- 【自動】 保存をきっかけに処理が動き、形式・ページ数・サイズ・パスワードの有無を確かめる
- 【自動】 OCRが全文、キーと値、質問への答え、署名の位置と、それぞれの信頼度を返す
- 【自動】 生成AIが、保証状の項目を原文のまま切り分け、請求の条件を1条件1行に分け、根拠の文字列を添える
- 【自動】 プログラムが、契約で求めた条件と照合し、条件変更なら元の保証状の記録に重ねる
- 【自動】 与信台帳への登録案と、食い違いの一覧(理由の候補付き)を出す
- 【人】 財務の担当が、印の付いた項目と請求の条件の原文を、保証状の画像と並べて確かめる
- 【人】 食い違いのうち差し替えを頼むものを営業担当が決め、取引先への依頼文の下書きを直して送る
- 【人】 確定した内容を与信台帳に登録する
- 【自動】 毎朝、台帳の有効期限から延長の依頼日と請求の最終日を計算し、近いものを担当へ知らせる
7番目が、この設計の分かれ目です。 人が全文を読み直すのではなく、印の付いた項目と、請求の条件の原文だけを画像と見比べます。 全文を読み直す設計にすると、②の書き出しの時間がそのまま残ります。
10番目をAIに置かないのも意図してのことです。 期限の見回りは、台帳の日付と規則だけでできる仕事です。
02今回想定するシステム構成
英文の銀行保証状・スタンバイL/C・条件変更(通知銀行からのPDF/原本のスキャン) ▼【トリガー】受付フォルダ(Amazon S3)への保存 AWS Lambda ── 形式・ページ数・サイズ・パスワードの確認 ▼ AWS Textract(StartDocumentAnalysis:FORMS/QUERIES/LAYOUT/SIGNATURES) │ 全文、キーと値、質問への答え、署名の位置、信頼度 ▼ Claude API ── 項目を原文のまま切り分け、請求の条件を1条件1行にする │ ① 当事者と番号 ② 保証額と減額の条件 ③ 効力の開始と有効期限 │ ④ 準拠規則と準拠法 ⑤ 請求の条件 ⑥ 譲渡と一部請求 ▼ Python ── 契約で求めた条件との照合、条件変更の重ね合わせ、期限の計算 ▼ 台帳の登録案 + 食い違いの一覧(match / mismatch / not_in_contract / needs_human) ▼ 【財務が印の付いた項目を確認】 ├──▶ 営業が差し替えを頼むかを決める(依頼文の下書き) └──▶ 確定した内容を与信台帳へ(毎朝、期限の近い保証を通知)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | AWS Textract(StartDocumentAnalysis/GetDocumentAnalysis) | Azure AI Document Intelligence、Google Document AI |
| 生成AI | Claude API(項目の切り分け、請求の条件の分解、依頼文の下書き) | OpenAI API、Gemini API |
| 差異計算 | Python(契約との照合、条件変更の重ね合わせ、期限の計算) | 与信管理の仕組みの照合機能 |
| 連携 | AWS Lambda(保存と完了の通知を起点に処理を動かす) | Amazon EventBridge |
| 保管 | Amazon S3(保証状、読み取り結果、照合の結果、台帳の登録の版) | 社内のファイルサーバー |
与信台帳と売買契約は、新しく足すものではありません。 最初の準備は、与信台帳に「保証番号」「保証の版(条件変更の回数)」「契約で求めた保証額」「契約で求めた有効期限」「契約で求めた準拠規則」の列を足すことです。照合の相手がそろっていないと、読み取った値を比べる先がありません。
OCRに AWS Textract を選ぶのは、保証状が英文だからです。 公式の上限の表で、対応言語は英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語とされ、日本語や中国語は読めず、縦書きにも対応していません。 質問による読み取りは英語の文書だけです。
この題材で効くのは、質問(QUERIES)と署名の検出(SIGNATURES)です。 有効期限が文章に埋まっていても、「What is the expiry date of this guarantee?」と聞けば答えと信頼度が返ります。 署名の検出は署名らしきものの位置を信頼度付きで返すだけで、誰が署名したか、本物かは分かりません。 署名欄が空の保証状に印を付けるために使います。同期の処理はPDFで1ページまでなので、非同期の処理を使います。
03どうやって実装するのか
処理の起点を決める
受付フォルダ(Amazon S3)にPDFが保存されたことを起点にします。 保証状は契約の締結や前払金の支払に合わせて不定期に届くため、1日1回の定時実行にはしません。 受け取った日のうちに食い違いを営業へ返せば、出荷や前払金の支払の前に差し替えを頼めます。
入る経路は2つです。通知銀行から電子で届くPDFと、取引先から郵送された原本をスキャンしたPDFです。どちらも同じフォルダに入れ、ファイル名の先頭に取引先コードと契約番号を付けるところまでを人が行います。契約番号が付いていないファイルは、照合の相手を決められないので、処理を始める前に止めます。
S3 への保存を AWS Lambda が受け、StartDocumentAnalysis を呼びます。ClientRequestToken に契約番号とファイルのハッシュから作った値を入れると、二重に送っても同じ JobId が返り、同じ保証状を二度読みません。 JobTag には「新規」か「条件変更」かを入れます。完了は Amazon SNS に届き、SUCCEEDED を確かめてから結果を取り、すぐ S3 に保存します(JobId は7日間だけ有効です)。期限の見回りは、これとは別に毎朝、台帳の有効期限を相手に動かします。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 保証状・条件変更のPDF | 発行銀行・通知銀行・保証番号・全文。受け取った日時と経路 | 受付フォルダ(S3) |
| 読み取り結果 | 全文、キーと値、質問への答え、署名の位置、信頼度 | AWS Textract |
| 契約で求めた条件 | 契約番号、取引先、保証の種類、保証額と通貨、有効期限の決め方、準拠規則 | 与信台帳に足した列(売買契約から転記したもの) |
| 取引の情報 | 売掛金や前払金の残高、最終の支払期日、出荷の予定 | 与信台帳と販売管理の仕組み |
| これまでの版 | 同じ保証のこれまでの読み取り結果と、確定した登録内容 | S3 の保管領域 |
| 自社の受益者名の一覧 | 自社の正式な英文社名と、保証状に書かれうる表記の一覧 | 財務が用意する一覧 |
質を決めるのは、下の4つです。 最終の支払期日が無ければ「期限が足りるか」を言えず、受益者名の一覧が無ければ「Co., Ltd.」の有無だけで受益者が違うという印が付きます。
データの取得方法を決める
読み取りは StartDocumentAnalysis に FeatureTypes として FORMS、QUERIES、LAYOUT、SIGNATURES を指定して行います。全文の行と単語は、指定した機能にかかわらず返ります。 結果は GetDocumentAnalysis で取り、1回に返るブロックは既定で最大1,000件なので、NextToken が返る限り続けて取ります。
| 取るもの | どの機能で | 何に使うか |
|---|---|---|
| 全文の行と単語 | 常に返る | 請求の条件と減額の条件の原文を切り出す材料 |
| キーと値 | FORMS | 「Guarantee No.」「Amount」のように見出しと値が並ぶ項目 |
| 段落・見出しの構造 | LAYOUT | 本文の段落の境目を見分け、条件ごとに区切る |
| 質問への答え | QUERIES | 保証額・有効期限・準拠規則など、決まった項目の答えと信頼度 |
| 署名の位置 | SIGNATURES | 署名欄に署名らしきものがあるか |
質問は QueriesConfig に並べ、別名(Alias)を付けます。非同期の処理では1ページあたり30問までです。公式の手引きは、日付が複数ある文書では「何の日付か」を特定して聞くことを勧めています。
| 別名 | 質問の例 |
|---|---|
GUARANTEE_NO | What is the guarantee number? |
BENEFICIARY | Who is the beneficiary? |
AMOUNT | What is the maximum amount of this guarantee? |
EXPIRY | What is the expiry date of this guarantee? |
RULES | Which rules is this guarantee subject to? |
質問は既定で1ページ目しか見ません。 ページの指定が無いと ["1"] になるため、**Pages に ["*"] を入れて全ページを対象にします。**
質問の答えは、そのまま採用しません。 発行日を拾うことがあるため、全文の中からも同じ値を探し、両方が一致したときだけ「読めた」とします。 請求の条件は質問で取りません。手引きは100語未満の答えになる質問を勧めており、数文にわたる条件は途中で切れます。 全文の行を段落で区切って生成AIに渡します。
AIへ渡す前に整形する
- 形式の確認 … JPEG、PNG、PDF、TIFF であることを確かめます。XFA形式のPDFは扱えないため、印刷し直してPDFにします
- パスワードの確認 … PDFはパスワードで保護されていてはいけません。保護されたものは通知銀行に解除したものを頼みます
- ページ数とサイズの確認 … 非同期の処理でPDFとTIFFは500MB・3,000ページが上限です。添付の契約書とまとめてスキャンされたものは、保証状の部分だけに分けます
- 文字の大きさの確認 … 文字の高さが15ピクセルを下回ると検出されません。150 DPIで8ポイント相当です。原本は300 DPIでスキャンします
- 言語の確認 … 英語以外の文が含まれていれば質問を外し、キーと値と全文だけで読みます
- 新規か条件変更かの見分けと重複の確認 … 表題の「Amendment」「Extension」の有無で見分け、同じ保証番号・同じ版が既にあれば止めます
4番目を軽く見ないでください。 文字が小さくて読めないだけの条件は、「書かれていない」と区別がつきません。
AIに処理させる
させるのは、保証状の項目を原文のまま切り分け、請求の条件を1条件1行に分け、根拠の文字列を添えることだけです。
| 取り出す項目 | 中身 | 取り出せないときの扱い |
|---|---|---|
| 当事者と番号 | 保証番号、発行銀行、通知銀行、依頼人、受益者、保証の種類 | 見つからなければ not_found |
| 保証額 | 通貨、上限額、減額の条件(出荷や前払金の消化に応じた減額) | 読めなければ unreadable |
| 効力と期限 | 効力が始まる条件、有効期限の日付、期限の決め方(日付か出来事か) | 日付の候補が複数なら ambiguous |
| 準拠規則と準拠法 | URDG 758、ISP98、UCP600などの記載、準拠法と裁判管轄 | 書かれていなければ not_found |
| 請求の条件 | 条件ごとに、請求の方法、場所、要る書類、記載が必要な文言 | 1文に複数の条件が重なれば分けて split_from に元の文を記録 |
| 譲渡と一部請求 | 譲渡の可否、一部請求・複数回の請求の可否 | 書かれていなければ not_found |
請求の条件の分解が、いちばん手間を減らすところです。 「書面で」「受益者の署名入りの陳述書を添えて」のように1条件1行を作り、元の英文を添えます。 ジェトロの解説でも、債務不履行が起きたことの証明書(通常は受益者のステートメント)が要求されるとされ、何を添えれば請求できるかが保全の中身そのものです。
| させないこと | 理由 |
|---|---|
| 期限の計算 | 延長を頼む日や請求の最終日は規則で決まる。プログラムが計算する |
| 原文の意訳による置き換え | 請求するときに原文が要る。日本語の説明は別の欄に置く |
| 書かれていない条件の補完 | 「URDGなら通常こう」で埋めると、保証状に無い条件を作ることになる |
| 保証として有効か・十分かの判断 | 債権が守られるかは法務と財務の責任者が決める |
| 契約との一致・不一致の判定 | 照合は台帳の値を使い、プログラムが行う |
3行目がいちばん起きやすい失敗です。 「URDG 758」とだけ書かれた保証状を渡すと、AIは規則の一般論から請求の手順を書き足し、本文の条件と食い違っても見た目では区別できません。 規則は名前だけを写させます。
指示内容を固定する
あなたは財務部の与信担当として、英文の銀行保証状またはスタンバイ信用状を読み、
与信台帳に登録するための項目を取り出します。
OCRが返した読み取り結果だけを見てください。推測で埋めないでください。
【取り出す項目】
1. 当事者と番号(保証番号、発行銀行、通知銀行、依頼人、受益者、保証の種類)
2. 保証額(通貨、上限額、減額の条件)
3. 効力と期限(効力が始まる条件、有効期限、期限の決め方)
4. 準拠規則と準拠法
5. 請求の条件(条件ごとに1行)
6. 譲渡と一部請求の可否
【status の選び方】
- ok ......... 値が読み取れており、その項目として解釈できる
- not_found .. その項目が書かれていない
- unreadable . 文字は検出されているが信頼度が低く、値として確定できない
- ambiguous .. 候補が複数あり、1つに決められない
迷ったときに ok を選ばないでください。
【厳守事項】
- original には、保証状の英文をそのまま写してください。
言い換え、要約、綴りの修正をしないでください。
- 日本語の説明は note_ja にだけ書いてください。
- 日付の足し引きをしないでください。延長を頼む日や請求の期限を計算して書かないでください。
- 有効期限が日付ではなく出来事(例:前払金の全額の消化)で決まる場合は、
expiry_type を event にし、出来事の原文を写してください。日付に直さないでください。
- 準拠規則は、書かれている名前と版をそのまま写してください。
規則の一般的な内容から、請求の手順や期限を補わないでください。
- 書かれていない条件を補わないでください。「通常は」「一般に」で埋めないでください。
- 請求の条件は、1つの条件につき1行にしてください。
1文に複数の条件が書かれているときは分け、split_from に元の文を写してください。
- 減額の条件は原文のまま写し、減額後の金額を計算しないでください。
- 受益者の名称は、書かれている綴りのまま写してください。自社名に直さないでください。
- 保証として有効か、十分か、差し替えを求めるべきかは書かないでください。
- これが条件変更の通知であれば、変更された項目だけを返し、amendment_no を入れてください。
- 英語以外の文が含まれていれば、language_note にその旨を書いてください。
【読み取り結果】{textract_result}
【段落ごとに区切った原文】{sections}
【文書の種類】{job_tag}
「日付の足し引きをしない」は、書かないと必ず破られます。 「30 days after the final payment due date」とあれば、AIは親切に日付を出し、支払期日が後で変わっても見た目では誤りと分かりません。
「受益者の名称を自社名に直さない」も同じ理由です。 AIが綴りを直せば、その食い違いが台帳から消えます。
出力形式を固定する
次の形のJSONで受け取ります。 Claude API の構造化出力(output_config.format に json_schema)で形を守らせます。
{
"guarantee_no": "",
"document_kind": "original | amendment",
"amendment_no": 0,
"instrument_type": "demand_guarantee | standby_lc | other",
"fields": [
{ "item": "expiry", "status": "ok | not_found | unreadable | ambiguous",
"value": "", "original": "", "confidence": 0, "note_ja": "" }
],
"expiry_type": "date | event | not_found",
"demand_conditions": [
{ "condition_type": "form | place | document | statement | timing | other",
"original": "", "split_from": "", "note_ja": "" }
],
"reduction_clauses": [ { "original": "", "note_ja": "" } ],
"signature_detected": "yes | no",
"language_note": ""
}
fields には当事者・保証額・期限・準拠規則・準拠法・譲渡・一部請求の項目を1つずつ並べます。
1つ目の理由は、AIの出力と照合の結果を別の層に置けることです。 JSONはAIが埋め、照合はプログラムが別の表に書きます。
| 照合の結果 | 意味 |
|---|---|
match | 保証状の値と、契約で求めた条件が一致する |
mismatch | 一致しない(保証額、有効期限、準拠規則、受益者名、保証の種類など) |
not_in_contract | 保証状にはあるが、契約に取り決めが無い条件(請求に裁判所の書類が要る、など) |
needs_human | unreadable または ambiguous を含み、照合できない |
2つ目は、期限をプログラムが毎日数えられることです。 expiry_type が date なら有効期限と最終の支払期日を比べ、期限が先に来るものに印を付けます。 延長を頼む日は「60日前」のように自社の規則で出します。event のものは、出来事が起きたかを営業に月1回確かめる一覧に回します。 original があるので、確認は1行ごとに英文と画像を見比べるだけで済みます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 受付フォルダ(S3) | イベントで AWS Lambda を起動 | 保存を検知し、読み取りを始める |
| AWS Textract | API呼び出し(非同期) | 全文・キーと値・質問の答え・署名の位置を返す |
| Amazon SNS | 完了の通知 | 状態が SUCCEEDED なら結果を取りに行く |
| Claude API | API呼び出し | 項目の切り分けと請求の条件の分解 |
| 与信台帳 | 読み取り(照合)と、人が確定した後の登録 | 契約で求めた条件を契約番号で引く |
| 担当への通知 | メールまたはチャット | 食い違いの一覧と、期限の近い保証の一覧 |
与信台帳へは、人が確定するまで書き込みません。 「保証額が違う」と出ても、契約の側が変わった可能性もあるからです。台帳の保全の欄は保証1件につき1行、列は「保証番号/版/種類/保証額/有効期限/期限の決め方/準拠規則/請求の条件(原文へのリンク)/確定した人」とします。
人が確認する
人が確かめるのは、照合で印が付いた項目と、請求の条件の原文です。 match の項目は一覧で流し見ます。
needs_humanを先に見る … 読めなかった項目と候補が複数ある項目です。画像を開いて値を確定します- 請求の条件の行を、原文と画像で見比べる … 1条件1行に分けたときに、書類と記載文言が別の行に紛れていないかを見ます
mismatchとnot_in_contractを営業に渡す … 営業担当が、差し替えを頼むか、条件を受け入れて与信限度額の側を見直すかを決めます- 署名の印を見る …
signature_detectedがnoのものは、原本の署名欄を目で確かめます - 確定の印を付ける … 確定したものだけが、与信台帳に保全として載ります
2番目を省かないでください。 請求の条件は、保証を使う日まで誰も読み返しません。
例外に対処する
| 起きること | 対応 |
|---|---|
| パスワード付きのPDF | PDFはパスワードで保護できない。通知銀行に解除したものを頼む |
| XFA形式のPDF | 扱えない。印刷し直してPDFにする |
| 文字が小さすぎる | 高さ15ピクセルが下限。300 DPIで取り直し、読めない項目は unreadable |
| 英語以外の保証状 | 質問を外し、キーと値と全文で読む。手書きの書き込みは英語しか読めない |
| 質問の答えが空 | 全文から探し、見つからなければ not_found |
| 期限が出来事で決まる | event のまま、営業の確認の一覧に回す |
| 条件変更の元の保証状が無い、版の番号が飛ぶ | 照合を止め、契約番号の付け間違いと通知の抜けを疑う |
処理が FAILED または PARTIAL_SUCCESS | 受付フォルダに残し、StatusMessage を記録して担当へ |
JobId の期限(7日)を過ぎた | 結果は取り直せない。読み取りからやり直す |
上から3行目までが大半を占めます。 どれも受け取り方の問題で、通知銀行に電子で送ってもらう取り決めが効きます。
記録を残す
- 元の保証状と条件変更のPDF、受け取った日時と経路
- AWS Textract の結果のJSON全文と
JobId - Claude API の出力(
fields、demand_conditions、reduction_clauses) - 照合に使った契約の条件の値と、照合の結果
- 期限の計算に使った値と規則、通知を送った日時と相手
- 人が値を直した記録と、確定した版・確定した人・日時
4つ目で「そのときの契約の条件」を残すのは、契約が後から変わるためです。
04実装レベルの3段階
最小構成は、確かめるための段階です。 件数はさばけません。 半自動化で、②の書き出しの大半が無くなります。 契約との見比べと期限の見渡しは残り、本格構成でそれらも自動になります。この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化で1か月回すと、どの発行銀行の書き方で質問の答えが外れるかが分かります。
05工数削減シミュレーション
導入後 60件 × 12分 ÷ 60 = 12 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 海外の買い手や仕入先との取引で、相手の銀行が発行する英文の銀行保証状・スタンバイL/Cを毎月数十件受け取り、財務の担当者が全文を読んで与信台帳に手で写している商社・メーカー・プラント関連の企業。保証の有効期限が切れてから気づいた、契約で求めた保証額や準拠規則と違う保証状をそのまま受け取っていた、という経験がある場合。保証状の読み方が一部の担当者に偏っている場合。
- 保証状が英語以外(中国語・日本語など)で届く取引が中心の場合(この構成のOCRは英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語しか読めず、質問による読み取りは英語の文書だけです)。受け取る保証状が年に数件の場合。なお、保証状の文言で債権が守られるかの判断、保証状の差し替えや延長を相手に求めるかの判断、保証の請求(デマンド)を出すかの判断は、財務・法務の責任者と取引銀行が行うもので、この構成では代替できません。
07最小構成で試す方法
- いま有効な保証状から10件を選ぶ(うち数件は、差し替えを頼んだことがあるものや、期限の延長で慌てたものを入れる)
- その10件について、与信台帳の登録内容と、契約で求めた条件を集める
- 保証状のPDFを、手元のAIサービスの画面に1件ずつ貼り付ける
- 「この保証状から、保証番号、発行銀行、受益者、保証額と通貨、減額の条件、効力が始まる条件、有効期限、準拠規則、請求の条件(1条件1行、原文のまま)を取り出してください。日付の計算はしないでください。書かれていない項目は『記載なし』としてください」と指示する
- 出てきた結果を、与信台帳と契約の条件と突き合わせる
10件は必ずやってください。 ワークフローを組む前に、「請求の条件を原文のまま1条件1行に分けられるか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 台帳に無かった請求の条件や減額の条件が出た | 読み落としが見つかった。OCRとの連携に進む |
| 準拠規則の一般論で条件を書き足した | 指示の書き方で直る。構成は有効 |
| 原本のスキャンの文字が読めない | スキャンの設定が先。 AIの問題ではない |
1行目は失敗ではなく、台帳の「保全あり」の1行に何が欠けていたのかが分かったということです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| AIが準拠規則の一般論で請求の手順を書き足す | 規則は名前だけを写させる。 条件は本文に書かれたものだけ |
| 請求の条件の原文が言い換えられる | original と note_ja を分け、原文の欄を必須にする |
| 期限を日付に直して書く | 日付の計算を禁じる。 出来事で決まる期限は event のまま残す |
| 質問の答えが発行日など別の日付を拾う | 何の日付かを特定して聞き、全文からも探して両方が一致したときだけ採用する |
| 質問が2ページ目以降を見ない | ページの指定が無いと1ページ目だけ。**Pages に ["*"] を入れる** |
| 英語以外の保証状で質問が使えない | 質問は英語の文書だけ。キーと値と全文で読む |
| 条件変更がどこを変えたか分からない | 版の番号で重ね、変わった項目に印を付ける |
JobId の期限が切れて結果が取れない | 7日間で無効になる。完了の通知で即座に保存する |
| 署名の検出を「本物の確認」と思い込む | 検出は位置と信頼度だけ。真正性は取引銀行を通じて確かめる |
上の3行が、この構成の失敗のほとんどです。 どれも、AIが「親切に」整えた結果、保証状の原文の情報が消えるという同じ形をしています。保証状は書かれた条件どおりにしか請求できない文書なので、整えることがそのまま誤りになります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 保証番号、発行銀行と通知銀行、取引先の名称と住所、保証額と取引の金額、そして与信台帳の与信限度額と売掛金の残高です。取引先の信用と自社の与信の判断そのもので、社外に出れば取引関係を損ないます。
- 外部へ渡す範囲を、項目の切り分けに要るものに限る … 生成AIに渡すのは読み取り結果と段落ごとの原文です。与信限度額や売掛金の残高は照合のプログラムの側で使い、生成AIへは渡しません
- AWS の保存先を自社の管理下に置く … 結果は
OutputConfigで自社のバケットに出し、KMSKeyIdで自社の鍵で暗号化できます - 差し替えや延長の依頼を自動で送らない … 出すのは下書きまでです。取引先に保証の条件を求めることは、取引条件の交渉そのものです
- この構成は、保証で債権が守られるかを判断しません … 判断するのは、自社の財務・法務の責任者と取引銀行です。この構成が出すのは、保証状に何が書かれていたかと、契約と一致したかという事実だけです。 請求(デマンド)を出すかどうかも人が決めます
誤りが起きた場合のリスクは、使えない保証を「保全あり」として台帳に載せることと、期限切れに気づかないことの2つです。 どちらも設計で守ります。
10まず何から始めるか
1週目:与信台帳に列を足す
与信台帳に、保証番号、保証の版、契約で求めた保証額・有効期限・準拠規則の列を足します。いま有効期限が半年以内に来る保証から埋めます。
2週目:10件で試す
いま有効な保証状から10件を選び、手元のAIサービスに貼り付けて項目と請求の条件を取り出させます。台帳に載っていなかった請求の条件や減額の条件が出るかを最優先で見ます。
3週目:期限の規則を決める
延長を頼む日と、請求の準備を始める日の規則を、財務と法務、取引銀行で確かめます。 期限が日付で決まる場合と出来事で決まる場合を分けて、文章にしておきます。
4週目:受付フォルダから読み取りまでをつなぐ
S3、Lambda、Textract、SNS をつなぎ、質問の答えと全文を保存するところまで作ります。この時点では照合を足さず、台帳の登録案だけを出します。
2か月目: 契約の条件との照合と、毎朝の期限の見回りを足します。3か月目以降: 条件変更の重ね合わせを足し、1件45分が何分になったかを実測します。期限切れで慌てる保証が出なくなった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| スタンドバイ信用状が信用状の一種で、輸入者の不払いのリスクを発行銀行が保証すること。準拠ルールにUCP600ないしISP98が指定されること。前受金返還保証などにも使われること。債務不履行の証明書(通常は受益者のステートメント)が要求されること | ジェトロ: スタンドバイ信用状にD/Pないしは送金決済方式を組み合わせた決済 | 2026-10-08 |
| URDG 758 が35条で各当事者の責任を定め、請求の手続き、有効期限の条件、条件変更と譲渡を扱うこと。2011年に国連国際商取引法委員会(UNCITRAL)が承認したこと | ICC: ICC demand guarantee rules URDG 758 | 2026-10-08 |
| XFA形式のPDFの非対応。同期はPDF1ページまで、非同期は500MB・3,000ページまで。パスワード付きPDFの非対応。質問は非同期で1ページ30問まで。対応言語が英・仏・独・伊・葡・西で、質問は英語だけ、手書きは英語のみ、縦書きは非対応。文字の最小の高さが15ピクセル | AWS: Set Quotas in Amazon Textract | 2026-10-08 |
FeatureTypes(TABLES/FORMS/QUERIES/SIGNATURES/LAYOUT)。全文の行と単語は指定にかかわらず返ること。ClientRequestToken で同じ JobId が返ること、JobTag、Amazon SNS への完了通知と SUCCEEDED の確認、OutputConfig と KMSKeyId。JobId が7日間だけ有効なこと | AWS: StartDocumentAnalysis | 2026-10-08 |
JobStatus が IN_PROGRESS/SUCCEEDED/FAILED/PARTIAL_SUCCESS であること。MaxResults の既定と上限が1,000で、NextToken で続きを取ること。StatusMessage を返すこと | AWS: GetDocumentAnalysis | 2026-10-08 |
| 署名の検出が署名の位置を境界の枠と信頼度で返し、フォームや質問と併用できること | AWS: Analyzing Documents | 2026-10-08 |
質問は文書の言葉を使い「What is / Who is」で始めること、日付が複数あるときは特定して聞くこと、100語未満の答えになる質問にすること。ページの指定が無いと ["1"] になり、* で全ページを指定できること | AWS: Best Practices for Queries | 2026-10-08 |
構造化出力を output_config.format に json_schema を指定して受け取れること | Claude Docs: Structured outputs | 2026-10-08 |
保証で債権が守られるかの判断、差し替えや延長を求めるかの判断、保証の請求を出すかの判断は、自社の財務・法務の責任者と取引銀行が行うものです。 本記事はジェトロとICCの公開情報で確認できた範囲と、保証状の読み取りと契約との照合までを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1029)についてのご相談はこちらから。
