リファレンス

テンプレート&フィールド

テンプレートは、ドキュメントから抽出したいフィールド(出力列ごとに1つ)を保存して再利用できるリストです。テンプレートのidをバッチ処理の開始に渡すことで、毎回フィールドを再指定する必要がなくなります。組み込みのプリセットからテンプレートを作成することも、テンプレートを完全にスキップしてアドホックなfieldsを直接processに渡し、1回限りの実行を行うこともできます。

テンプレート一覧

保存済みのテンプレートを、各テンプレートの完全なフィールドリスト(順序付き)とともに返します。

GET /api/v1/templates

パラメータ

名前場所型説明
limitクエリ(省略可)整数1~100。デフォルトは50。
page_tokenクエリ(省略可)文字列前回のレスポンスのnext_page_tokenから取得するオペークカーソル。ページネーションを参照。

発生しうるエラー

  • missing_api_key / invalid_api_key / plan_required — エラーハンドリングを参照してください。
  • invalid_parameter — limitまたはpage_tokenが不正です。

テンプレートを作成する

1つのエンドポイントでテンプレートを作成する方法は2つあります。ゼロから作成する方法(base_template_idを使用して別のテンプレートのフィールドをクローンすることも可能)と、preset_idを使用して組み込みプリセットから作成する方法です。アカウントごとに作成できるテンプレートは最大30件までです。上限に達した場合は、既存のテンプレートを削除してから新しいものを作成してください。

POST /api/v1/templates

パラメータ

名前場所型説明
namebody (JSON)stringpreset_idが指定されていない場合は必須です(指定された場合はプリセット自体の名前が使用され、同名のテンプレートが既に存在する場合はタイムスタンプサフィックスで重複回避されます)。
preset_idbody (JSON)string、任意組み込みプリセットからテンプレート(およびそのフィールド)を作成します。有効なIDについてはプリセット一覧を参照してください。
base_template_idbody (JSON)integer、任意preset_idが指定されていない場合にのみ使用されます。既存のテンプレートのフィールドを新しいテンプレートにクローンします。

発生しうるエラー

  • missing_api_key / invalid_api_key / plan_required — エラーハンドリングを参照してください。
  • missing_parameter (param: "name") — nameとpreset_idの両方が指定されていません。
  • invalid_parameter (param: "name") — この名前のテンプレートが既に存在します(プリセット以外の作成パスのみ)。
  • invalid_parameter (param: "preset_id") — 不明なプリセットIDです。
  • template_limit_reached — このアカウントのテンプレート上限(30件)に達しています。
  • internal_error

テンプレート設定を更新

テンプレートのグローバルなフォーマット要件(各フィールド独自の要件の上に適用)と、 マルチページ結合設定を設定します。同じ論理レコードに属する複数のアップロードページ(複数ページのリース、ホチキス留めされたレシートの束)を、1ページ1行のままにするのではなく、1つの出力行にまとめるかどうかを指定します。ここで有効にすると、このテンプレートが処理と結果の両方で使用される場所で、結合が自動的に適用されます。?merge=true(バッチ結果の取得)およびバッチのエクスポート(こちらは常に適用され、オプトインは不要)を参照してください。以下のリクエストボディのすべてのフィールドはオプションです。送信したキーのみが更新され、その他はすべてそのまま残ります(確認用の別途ドラフト/プレビュー状態はありません。この呼び出しは、Webアプリのテンプレート設定ダイアログと同様に、即座に有効になります)。

PUT /api/v1/templates/{id}/settings

パラメータ

名前場所型説明
idpathinteger更新対象のテンプレート。
global_format_requirementbody (JSON), optionalstring各フィールドのformat_requirementに追加で適用される指示。
merge_enabledbody (JSON), optionalbooleanマルチページ結合のオン/オフ。これがfalseの間、以下のmerge_*フィールドはすべて無意味。
merge_modebody (JSON), optionalstring or null"sequential"(データ列の値が変わったときに新規レコード)、"key_match"(アップロード順に関係なくデータ列の値でグループ化)、または"fixed_count"(N件ごとにグループ化)。
merge_field_namebody (JSON), optionalstring or nullsequentialの値ベースのトリガーとkey_matchのグループ化キーに使用するデータ列(フィールド名)。
merge_trigger_typebody (JSON), optionalstring or nullsequentialのみ: "value_change"、"blank"、"has_value"、または"equals_value"。
merge_trigger_valuebody (JSON), optionalstring or nullmerge_trigger_type: "equals_value"のみ — 照合するテキストまたは正規表現。
merge_fixed_countbody (JSON), optionalinteger or nullmerge_mode: "fixed_count"のみ — グループサイズ、最小1。
merge_conflict_policybody (JSON), optionalstring or nullグループ化されたページでフィールドの値が一致しない場合: "split"(マージせずページごとに1出力行)、"first"、"last"、または"concat"(デフォルト)。
merge_conflict_separatorbody (JSON), optionalstring or nullmerge_conflict_policy: "concat"のときに使用、最大20文字。nullはデフォルトの" / "にフォールバック。""は意図的な「区切りなし」の選択で、そのまま保存される。
merge_skip_previewbody (JSON), optionalbooleanWebアプリのみの設定(エクスポートプレビュー確認画面を制御)— APIにはスキップする対話型プレビュー手順がないため、APIの動作には影響しない。テンプレートの完全な設定がこのエンドポイントで往復できるようにするためのみ設定可能。

発生しうるエラー

  • missing_api_key / invalid_api_key / plan_required — エラーハンドリングを参照してください。
  • template_not_found
  • invalid_parameter — merge_mode / merge_trigger_type / merge_fixed_count / merge_conflict_policy / merge_conflict_separator が不正です。
  • internal_error

テンプレートの削除

テンプレートとそのすべてのフィールドを削除します(カスケード削除のため、別途クリーンアップ呼び出しは不要です)。過去の process 呼び出しでこのテンプレートを使用したドキュメントには影響せず、すでに抽出された結果は変更されません。

DELETE /api/v1/templates/{id}

パラメータ

名前場所型説明
idパスinteger削除するテンプレート。

発生しうるエラー

  • missing_api_key / invalid_api_key / plan_required — エラーハンドリングを参照してください。
  • template_not_found
  • internal_error

プリセット一覧

一般的なドキュメントタイプ(請求書、領収書、銀行明細書など)向けの組み込みフィールドリストです。プリセットの id を preset_id としてテンプレートの作成に渡すと、フィールドを手動で列挙せずに動作するテンプレートを取得できます。プリセットはデータベース行ではなく静的な設定であり、APIを通じて作成・編集・削除する方法はありません。

GET /api/v1/presets

パラメータ

名前場所型説明
categoryクエリ、任意string1つのカテゴリに絞り込む(例: "Finance & Accounting")。省略すると全カテゴリを一覧表示。
limitクエリ、任意integer1〜100。デフォルトは50。
page_tokenクエリ、任意string前回のレスポンスのnext_page_tokenからのオペークカーソル。

発生しうるエラー

  • missing_api_key / invalid_api_key / plan_required — エラーハンドリングを参照。
  • invalid_parameter — limitまたはpage_tokenが不正。

フィールドの一覧取得と作成

fieldsは、製品UIで「マッチルール」と呼ばれるもののv1パブリック名です。出力列ごとに1つのフィールドが、抽出で出力される順序で並びます。GETはテンプレート上のすべてのフィールドをsort_order順に返します。POSTは新しいフィールドを末尾に追加します。

GET POST /api/v1/templates/{id}/fields

パラメータ

名前場所型説明
idパスintegerこれらのフィールドが属するテンプレート。
nameボディ(JSON)、POSTのみstring必須。このテンプレート内で一意である必要があります。詳細は以下のエラーを参照。
format_requirementボディ(JSON)、POSTのみstring、任意期待される値の形式に関する自由形式のヒント(例: "YYYY-MM-DD"、"Number")。

発生しうるエラー

  • missing_api_key / invalid_api_key / plan_required — エラーハンドリングを参照してください。
  • template_not_found
  • missing_parameter (param: "name") — POSTのみ。
  • duplicate_field_name — このテンプレートに同じnameのフィールドがすでに存在します。
  • internal_error

フィールドの更新と削除

PUTはフィールド名を変更し(format_requirementも置き換えます)、部分更新ではなく完全置換のため、片方だけ変更した場合でも両方の値を含める必要があります。DELETEはフィールドを削除します。

PUT DELETE /api/v1/templates/{id}/fields/{field_id}

パラメータ

名前場所型説明
idパスintegerこのフィールドが属するテンプレート。
field_idパスinteger更新または削除するフィールド。
nameボディ(JSON)、PUTのみstring必須。新しい名前。
format_requirementボディ(JSON)、PUTのみstring、任意新しい形式ヒント — 省略すると空文字にクリアされ、変更されずに残ることはありません。

発生しうるエラー

  • missing_api_key / invalid_api_key / plan_required — エラーハンドリングを参照してください。
  • template_not_found — テンプレートが存在しない/所有していない、または(その旨のメッセージ付きで)field_idがこのテンプレートに存在しない場合。
  • missing_parameter (param: "name") — PUTのみ。
  • duplicate_field_name — PUTのみ。このテンプレートの別のフィールドがすでに持っている名前に変更しようとした場合。
  • internal_error

フィールドの並び替え

フィールドの順序を明示的に設定します。この順序がline_itemsおよびExcel/Word書き出しにおける出力列の順序を決定します。このテンプレートに属さないIDがリストに含まれている場合は、リクエスト全体を拒否するのではなく暗黙的に無視されます。

PATCH /api/v1/templates/{id}/fields/order

パラメータ

名前場所型説明
idパスinteger並び替え対象のテンプレート。
field_idsボディ (JSON)integerの配列このテンプレート上のすべてのフィールドIDを、表示したい順序で指定します。必須です。

発生しうるエラー

  • missing_api_key / invalid_api_key / plan_required — エラーハンドリングを参照してください。
  • template_not_found
  • invalid_parameter (param: "field_ids") — integerのリストではありません。
  • internal_error
📮 contact email: [email protected]