iDempiere 入金/支払伝票の使い方|債権債務・資金管理 操作マニュアル・技術仕様
📖 未収・未払管理の全体像: 未収・未払管理の業務フロー全体図 も合わせてご覧ください。
入金/支払伝票は、iDempiereの債権債務・資金管理における中核機能です。得意先からの入金(AR Receipt)と仕入先への支払(AP Payment)を一元的に管理し、請求書との消込(Allocation)を行います。
📌 ポイント: 入金と支払は同じウィンドウを使用し、伝票タイプ(AR入金 / AP支払)で区別されます。複数請求書への消込は「支払配分」タブで行います。
入金と支払は同一ウィンドウで管理され、伝票タイプにより区別されます。現金・振込・小切手・クレジットカードなど複数の支払方法に対応しています。
入金/支払伝票でできること
Section titled “入金/支払伝票でできること”- 得意先からの入金(売掛金回収)の記録
- 仕入先への支払(買掛金決済)の記録
- 請求書との消込(支払配分)
- 複数の支払方法(振込、現金、小切手、クレジットカード等)
- 前受金・前払金の管理
- オンライン決済処理との連携
- 通貨換算による外貨取引の入出金
画面レイアウト(ヘッダータブ)
Section titled “画面レイアウト(ヘッダータブ)”┌─ 入出金伝票(Payment)───────────────────────────────────────────────────┐│ ││ クライアント [▼ Table Direct] 組織 [▼ Table Direct] ││ 入金 [☐ Yes-No] 伝票番号 [________________] ││ ││ ── 伝票タイプ・日付 ────────────────────────────────────────────────── ││ 対象伝票タイプ [▼ Table] 銀行口座 [▼ Table Direct] ││ 取引日付 [📅 Date] 転記日付 [📅 Date] ││ ││ ── 取引先・請求書 ──────────────────────────────────────────────────── ││ 取引先 [🔍 Search] 請求書 [🔍 Search] ││ 支払方法 [▼ List] 通貨 [▼ Table Direct] ││ 支払金額 [¥_________] 割引金額 [¥_________] ││ 超過/不足金額 [¥______] チャージ金額 [¥_________] ││ ││ ── ステータス ──────────────────────────────────────────────────────── ││ 伝票状態 [▼ List] 伝票タイプ [▼ Table Direct] ││ [支払処理] [消込] ││ ││ [入出金] [支払配分] [消込伝票明細] │└──────────────────────────────────────────────────────────────────────────┘📌 ポイント: この図はADメタデータ(
AD_Field.XPosition,IsSameLine)から再現した実際のUI配置です。画面は2カラム構成で、左列(XPosition=1)と右列(XPosition=4)にフィールドが配置されます。
graph TD
subgraph "Payment and Receipt (Window 195)"
T1["💳 入金/支払伝票<br/>C_Payment<br/>93項目"]
T2["📋 支払配分<br/>C_PaymentAllocate<br/>12項目"]
T3["🔍 消込伝票明細<br/>C_AllocationLine<br/>11項目(参照)"]
end
T1 --> T2
T1 --> T3
💡 ヒント: 1件の請求書を直接消込する場合はヘッダーの「請求書」欄に指定します。複数の請求書に按分消込する場合は「支払配分」タブを使用してください。
| タブ名 | テーブル | 役割 | 主な入力項目 |
|---|---|---|---|
| 入金/支払伝票 | C_Payment | ヘッダー情報(取引先・金額・支払方法等) | 取引先、伝票タイプ、支払方法、金額 |
| 支払配分 | C_PaymentAllocate | 複数請求書への消込配分 | 請求書、消込金額、割引額 |
| 消込伝票明細 | C_AllocationLine | 消込結果の参照(読み取り専用) | 消込金額、請求書、入金伝票 |
入金/支払伝票の基本操作手順
Section titled “入金/支払伝票の基本操作手順”graph TD
A["🚀 メニューから開く<br/>債権債務・資金管理 > 入金/支払伝票(標準)"] --> B["➕ 新規で伝票タイプを選択<br/>AR入金 または AP支払"]
B --> C["📝 ヘッダー情報を入力<br/>(取引先・銀行口座・支払方法・金額)"]
C --> D["💾 保存"]
D --> E{消込方法}
E -->|1件消込| F["📄 ヘッダーの請求書欄に指定"]
E -->|複数消込| G["📋 支払配分タブで各請求書に配分"]
F --> H["✅ 伝票処理 → 完了"]
G --> H
H --> I["🏦 会計仕訳・銀行口座残高に反映"]
⚠️ 注意: 支払配分タブの消込金額合計がヘッダーの入金/支払金額と一致しないと完了処理でエラーになります。
アクセス方法
Section titled “アクセス方法”メニューから「債権債務・資金管理 > 入金/支払伝票(標準)」を開きます。
入金伝票の新規登録(AR Receipt)
Section titled “入金伝票の新規登録(AR Receipt)”- ツールバーの「新規」ボタンをクリック
- ヘッダー情報を入力:
- 伝票タイプ: 「AR入金」を選択
- 取引先: 入金元の得意先を選択
- 銀行口座: 入金先の銀行口座を選択
- 支払方法: 振込、現金、小切手等を選択
- 金額: 入金額を入力
- 転記日付: 入金日を入力(デフォルト: 当日)
- 「保存」をクリック
支払伝票の新規登録(AP Payment)
Section titled “支払伝票の新規登録(AP Payment)”- 「新規」ボタンをクリック
- 伝票タイプで「AP支払」を選択
- 仕入先、銀行口座、支払方法、金額を入力
- 「保存」をクリック
請求書への消込(支払配分)
Section titled “請求書への消込(支払配分)”- 「支払配分」タブに移動
- 請求書を選択(未消込の請求書が表示される)
- 消込金額を入力(部分消込も可能)
- 割引額・超過/不足額を必要に応じて入力
- 「保存」をクリック
伝票処理(確定)
Section titled “伝票処理(確定)”- 「入金/支払伝票」タブに戻る
- 「伝票処理」ボタンをクリック
- アクション「完了(Complete)」を選択
- 「OK」をクリック
完了処理により以下が自動実行されます:
- 請求書との消込(Allocation)の確定
- 銀行口座残高への反映
- 会計仕訳の生成
項目リファレンス
Section titled “項目リファレンス”入金/支払伝票タブ(ヘッダー)
Section titled “入金/支払伝票タブ(ヘッダー)”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 伝票タイプ | ○ | リスト | AR入金 / AP支払 |
| 取引先 | ○ | 検索 | 入金元または支払先の取引先 |
| 銀行口座 | ○ | 選択 | 入出金する銀行口座 |
| 支払方法 | ○ | リスト | 振込、現金、小切手、クレジットカード等 |
| 金額 | ○ | 金額 | 入金額または支払額 |
| 通貨 | 自動 | 選択 | 銀行口座の通貨から自動セット |
| 転記日付 | ○ | 日付 | 入金/支払の日付 |
| 請求書 | - | 検索 | 直接消込する場合の請求書(1件のみ) |
| 割引額 | - | 金額 | 早期支払割引の金額 |
| 超過/不足額 | 自動 | 金額 | 請求額との差額 |
| 伝票状態 | 自動 | リスト | 起案、完了、無効 等 |
支払配分タブ
Section titled “支払配分タブ”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 請求書 | ○ | 検索 | 消込対象の請求書 |
| 消込金額 | ○ | 金額 | この請求書に配分する金額 |
| 割引額 | - | 金額 | 早期支払割引 |
| 超過/不足額 | - | 金額 | 消込後の過不足 |
伝票タイプ一覧
Section titled “伝票タイプ一覧”| 伝票タイプ | 用途 | IsSOTrx |
|---|---|---|
| AR入金 | 得意先からの入金 | Y |
| AP支払 | 仕入先への支払 | N |
| AR入金取消 | 入金の取消伝票 | Y |
| AP支払取消 | 支払の取消伝票 | N |
伝票ステータスの遷移
Section titled “伝票ステータスの遷移”stateDiagram-v2
[*] --> 起案: 新規作成
起案 --> 完了: 完了処理
起案 --> 無効: 無効処理
完了 --> 無効: 取消処理(逆仕訳)
完了 --> 消込済: 請求書と完全消込
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 1件の入金で複数の請求書に消込するには?
Section titled “Q. 1件の入金で複数の請求書に消込するには?”「支払配分」タブで複数行を登録し、各請求書への配分金額を指定してください。配分合計がヘッダーの入金額と一致する必要があります。
Q. 前受金(請求書なしの入金)を登録するには?
Section titled “Q. 前受金(請求書なしの入金)を登録するには?”請求書を指定せずに入金伝票を作成し、完了してください。後日、請求書が発行された際に「支払消込」プロセスで消込を行います。
Q. 外貨建ての入金で為替差損益が発生する場合は?
Section titled “Q. 外貨建ての入金で為替差損益が発生する場合は?”入金伝票の通貨と請求書の通貨が異なる場合、完了処理時に自動的に通貨換算が行われ、為替差損益が会計仕訳に計上されます。
業務フロー上の位置づけ
Section titled “業務フロー上の位置づけ”graph TD
A[売上請求書] -->|消込| B[入金伝票]
C[仕入請求書] -->|消込| D[支払伝票]
B --> E[出納帳]
D --> E
E --> F[銀行照合]
関連する仕様書
Section titled “関連する仕様書”OSS ERP導入についてのご相談
Section titled “OSS ERP導入についてのご相談”iDempiereの入金/支払管理は、複数通貨・複数支払方法に対応した柔軟な債権債務管理を実現します。 売掛金・買掛金の消込から銀行照合まで、オープンソースERPで資金管理を効率化しませんか?
As-Link株式会社では、iDempiereの導入支援・カスタマイズ開発を承っております。
🛠 技術仕様(開発者向け)
画面レイアウト(ヘッダータブ)
Section titled “画面レイアウト(ヘッダータブ)”┌─ 入出金伝票(Payment)───────────────────────────────────────────────────┐│ ││ クライアント [▼ Table Direct] 組織 [▼ Table Direct] ││ 入金 [☐ Yes-No] 伝票番号 [________________] ││ ││ ── 伝票タイプ・日付 ────────────────────────────────────────────────── ││ 対象伝票タイプ [▼ Table] 銀行口座 [▼ Table Direct] ││ 取引日付 [📅 Date] 転記日付 [📅 Date] ││ ││ ── 取引先・請求書 ──────────────────────────────────────────────────── ││ 取引先 [🔍 Search] 請求書 [🔍 Search] ││ 支払方法 [▼ List] 通貨 [▼ Table Direct] ││ 支払金額 [¥_________] 割引金額 [¥_________] ││ 超過/不足金額 [¥______] チャージ金額 [¥_________] ││ ││ ── ステータス ──────────────────────────────────────────────────────── ││ 伝票状態 [▼ List] 伝票タイプ [▼ Table Direct] ││ [支払処理] [消込] ││ ││ [入出金] [支払配分] [消込伝票明細] │└──────────────────────────────────────────────────────────────────────────┘📌 ポイント: この図はADメタデータ(
AD_Field.XPosition,IsSameLine)から再現した実際のUI配置です。画面は2カラム構成で、左列(XPosition=1)と右列(XPosition=4)にフィールドが配置されます。
入金/支払伝票は Document 型の伝票で、C_Payment テーブルに格納されます。販売側入金(IsReceipt=Y)と購買側支払(IsReceipt=N)の両方で共用されます。MPayment クラス(3,388行)が中核ビジネスロジックを担い、DocAction インターフェースを実装しています。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MPayment {
+prepareIt() String
+completeIt() String
+voidIt() boolean
+closeIt() boolean
+allocateIt() boolean
+processOnline() boolean
+testAllocation() boolean
+setPaymentProcessor() boolean
}
class X_C_Payment {
<<generated>>
}
class PO {
<<abstract>>
}
class DocAction {
<<interface>>
}
MPayment --|> X_C_Payment
X_C_Payment --|> PO
MPayment ..|> DocAction
MPayment --> MPaymentAllocate : has many
MPayment --> MAllocationHdr : creates
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MPayment.java
関連DBテーブル
Section titled “関連DBテーブル”C_Payment(入金/支払ヘッダー)
Section titled “C_Payment(入金/支払ヘッダー)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_Payment_ID | ID | PK | 入金/支払ID | 主キー |
| AD_Client_ID | TableDirect | Y | クライアント | |
| AD_Org_ID | TableDirect | Y | 組織 | |
| IsReceipt | YesNo | Y | 入金フラグ | Y=入金, N=支払 |
| DocumentNo | String | Y | 伝票番号 | |
| C_DocType_ID | TableDirect | Y | 伝票タイプ | AR入金 / AP支払 |
| DocStatus | List | Y | 伝票状態 | DR/CO/VO/RE |
| C_BPartner_ID | Search | Y | 取引先 | Callout: payment |
| C_BankAccount_ID | TableDirect | Y | 銀行口座 | |
| C_Invoice_ID | Search | N | 請求書 | 単一消込用 |
| PayAmt | Amount | Y | 支払金額 | |
| DiscountAmt | Amount | N | 割引額 | |
| OverUnderAmt | Amount | N | 過不足額 | |
| WriteOffAmt | Amount | N | 貸倒額 | |
| C_Currency_ID | TableDirect | Y | 通貨 | 銀行口座から自動 |
| TenderType | List | Y | 支払方法 | K=小切手, C=クレジット, A=振込等 |
| DateTrx | Date | Y | 取引日 | |
| DateAcct | Date | Y | 転記日付 | |
| IsAllocated | YesNo | Y | 消込済フラグ | testAllocation()で判定 |
| Processed | YesNo | Y | 処理済み |
C_PaymentAllocate(支払配分)
Section titled “C_PaymentAllocate(支払配分)”複数請求書への消込配分を管理。
| カラム名 | 型 | 必須 | 説明 |
|---|---|---|---|
| C_PaymentAllocate_ID | ID | PK | 配分ID |
| C_Payment_ID | TableDirect | Y | 入金/支払FK |
| C_Invoice_ID | Search | Y | 消込対象請求書 |
| Amount | Amount | Y | 消込金額 |
| DiscountAmt | Amount | N | 割引額 |
| OverUnderAmt | Amount | N | 過不足額 |
| WriteOffAmt | Amount | N | 貸倒額 |
erDiagram
C_Payment ||--o{ C_PaymentAllocate : "has"
C_Payment }o--|| C_BPartner : "references"
C_Payment }o--|| C_BankAccount : "references"
C_Payment }o--o| C_Invoice : "references"
C_Payment ||--o{ C_AllocationLine : "allocated by"
C_PaymentAllocate }o--|| C_Invoice : "references"
C_BankAccount }o--|| C_Bank : "belongs to"
ビジネスロジック
Section titled “ビジネスロジック”prepareIt() の主要処理
Section titled “prepareIt() の主要処理”ModelValidator.TIMING_BEFORE_PREPAREイベント発火- 会計期間のオープンチェック
- 取引先の必須チェック
- 金額の正値チェック(0以下は不可)
- 支払配分(C_PaymentAllocate)の合計金額整合性チェック
ModelValidator.TIMING_AFTER_PREPAREイベント発火
completeIt() の主要処理
Section titled “completeIt() の主要処理”ModelValidator.TIMING_BEFORE_COMPLETEイベント発火- オンライン決済の場合、
processOnline()で決済処理実行 - 請求書指定がある場合、
allocateIt()で消込伝票(MAllocationHdr)を自動生成 - 支払配分(C_PaymentAllocate)がある場合、複数請求書への消込を実行
testAllocation()で消込完了状態を判定しIsAllocatedを更新- カウンターパート伝票の自動生成(組織間取引時)
ModelValidator.TIMING_AFTER_COMPLETEイベント発火
allocateIt() — 消込処理
Section titled “allocateIt() — 消込処理”MAllocationHdr / MAllocationLine を生成し、入金/支払と請求書を紐付ける。通貨が異なる場合は換算レートを適用し、為替差損益を自動計上する。
processOnline() — オンライン決済
Section titled “processOnline() — オンライン決済”PaymentProcessor を呼び出し、クレジットカード等のオンライン決済を実行する。決済プロセッサの設定は C_PaymentProcessor テーブルで管理。
testAllocation() — 消込状態判定
Section titled “testAllocation() — 消込状態判定”入金/支払に紐づく全消込行の合計が支払額と一致するかを検証し、IsAllocated フラグを更新する。
伝票処理フロー
Section titled “伝票処理フロー”stateDiagram-v2
[*] --> Drafted : 新規作成
Drafted --> InProgress : prepareIt()
InProgress --> Completed : completeIt()
Completed --> Voided : voidIt()
Completed --> Reversed : reverseCorrectIt()
Drafted --> Voided : voidIt()
Callout
Section titled “Callout”| Calloutクラス | メソッド | トリガーフィールド | 処理内容 |
|---|---|---|---|
| CalloutPayment | docType | C_DocType_ID | 伝票タイプに応じた IsReceipt の自動セット |
| CalloutPayment | invoice | C_Invoice_ID | 請求書の未消込残高を金額にセット |
| CalloutPayment | amounts | PayAmt / DiscountAmt / WriteOffAmt | 過不足額の自動計算 |
| CalloutPayment | payment | C_BPartner_ID | 取引先情報の自動セット |
Calloutソース: org.adempiere.base.callout/src/org/compiere/model/CalloutPayment.java
拡張ポイント(カスタマイズ箇所)
Section titled “拡張ポイント(カスタマイズ箇所)”OSGi Model Validator(推奨)
Section titled “OSGi Model Validator(推奨)”入金/支払伝票に独自バリデーションや後処理を追加する例:
public class CustomPaymentValidator implements ModelValidator { @Override public String docValidate(PO po, int timing) { if (po instanceof MPayment) { MPayment payment = (MPayment) po; if (timing == TIMING_BEFORE_COMPLETE) { // 例: 一定金額以上の支払は承認必須 if (!payment.isReceipt() && payment.getPayAmt().compareTo(new BigDecimal("1000000")) > 0) { // 承認済みかチェック if (!payment.isApproved()) { return "100万円以上の支払には承認が必要です"; } } } if (timing == TIMING_AFTER_COMPLETE) { // 例: 入金完了時に通知メール送信 if (payment.isReceipt()) { sendPaymentNotification(payment); } } } return null; }}支払方法の拡張
Section titled “支払方法の拡張”TenderType に独自の支払方法を追加する場合は、AD_Reference の値リストに追加し、対応する PaymentProcessor を実装する。
関連プロセス
Section titled “関連プロセス”| プロセス名 | 説明 |
|---|---|
| 伝票処理 (DocAction) | 伝票の完了・無効・取消等 |
| 支払消込 (Payment Allocation) | 入金/支払と請求書の手動消込 |
| 支払選択 (Payment Selection) | 複数の支払をまとめて実行 |
| 自動消込 (Auto Allocation) | 未消込の入金/支払を自動マッチング |
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”iDempiereの入金/支払機能は Model Validator や Callout で安全にカスタマイズできます。 承認フロー、自動消込ルール、外部決済連携など、コア改変なしで業務要件に合わせた拡張が可能です。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。