iDempiere 支払トランザクションの使い方|債権債務・資金管理 操作マニュアル・技術仕様
This content is not available in your language yet.
📖 債権債務・資金管理の全体像: 債権債務・資金管理の全体図 も合わせてご覧ください。
支払トランザクションは、支払プロセッサ(決済ゲートウェイ)経由のオンライン決済取引を 1 件ずつ記録・実行するウィンドウです。クレジットカードの与信(Authorization)・売上(Sales)・取消(Void)といった取引単位を管理し、承認された取引から入金支払伝票(Payment)を生成できます。
📌 ポイント: 会計に反映される「入金支払伝票(Payment)」とは別のテーブルです。支払トランザクションは決済ゲートウェイとの取引そのものを記録する層で、承認後に
createPayment()で Payment に引き継がれます。
支払トランザクションでできること
Section titled “支払トランザクションでできること”- クレジットカード等のオンライン決済の実行(支払プロセッサ連携)
- 取引タイプ(与信・売上等)とカード情報・名義人情報の登録
- 与信取引の取消(Void It ボタン)・出荷後清算(Delayed Capture)
- ゲートウェイからの回答(結果・メッセージ・認証コード・AVS/CVV 照合)の記録
- 売上請求伝票・受注伝票・プロジェクト等との関連付け
- 承認済み取引からの入金支払伝票(Payment)生成
単一タブ構成のシンプルなウィンドウです(AD_Window_ID: 200017)。
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| Payment Transaction | C_PaymentTransaction | 約74項目 | 取引基本情報・カード/口座情報・ゲートウェイ回答 |
メニュー上の位置は「債権債務管理&資金管理 ▸ Payment Transaction」です。
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>債権債務管理&資金管理 > Payment Transaction"] --> B["➕ 新規で基本情報を入力<br/>(取引先・取引日付・御支払金額・通貨)"]
B --> C["💳 提出タイプ・取引タイプを選択<br/>(クレジットカードの場合はカード情報も入力)"]
C --> D["🔗 必要に応じて売上請求伝票・<br/>受注伝票を関連付け"]
D --> E["🌐 支払プロセッサ経由で<br/>オンライン処理を実行"]
E --> F{承認された?}
F -->|Yes| G["✅ 承認済み=ON<br/>回答・認証コードが記録される"]
F -->|No| H["⚠️ 回答メッセージを確認<br/>(オンライン取引履歴にも記録)"]
G --> I["💰 入金支払伝票(Payment)へ引き継ぎ"]
G --> J["↩️ 取消が必要なら Void It ボタン"]
アクセス方法
Section titled “アクセス方法”メニューから「債権債務管理&資金管理 > Payment Transaction」を開きます。
- ツールバーの「新規」ボタンをクリック
- 基本情報を入力:
- 取引先: 決済相手の取引先(必須)
- 取引日付: 取引日(必須。デフォルトはログイン日付)
- 御支払金額: 決済金額(必須)
- 通貨: 決済通貨(必須)
- 入金(ON)/支払(OFF): 入金か支払かの区分
- 提出タイプ: 支払方法(必須。デフォルトは小切手)
- 取引タイプ: クレジットカード取引の種別(必須。デフォルトは売上)
- クレジットカード決済の場合は クレジットカード・カード番号・満期月/年・名義人 等を入力
- 「保存」をクリック
⚠️ 注意: このウィンドウには伝票状態(DocStatus)がありません。取引の完了は「処理済み」「承認済み」フラグとゲートウェイ回答欄で確認します。承認済みの与信取引を取り消す場合は「Void It」ボタンを使用します。
項目リファレンス
Section titled “項目リファレンス”主要項目のみ抜粋します。全項目一覧はリファレンス参照。
| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 取引先 | 必須 | 検索 | 決済相手の取引先 |
| 取引日付 | 必須 | 日付 | 取引日(デフォルト: ログイン日付) |
| 御支払金額 | 必須 | 金額 | 決済金額(変更時に配分計算 Callout が動作) |
| 通貨 | 必須 | 選択 | 決済通貨 |
| 入金(ON)/支払(OFF) | 必須 | チェック | 入金取引か支払取引か |
| 提出タイプ | 必須 | リスト | 支払方法(小切手・クレジットカード等) |
| 取引タイプ | 必須 | リスト | クレジットカード取引の種別(デフォルト: 売上) |
| 銀行口座 | - | 選択 | 自社側の銀行口座 |
| 売上請求伝票 / 受注伝票 | - | 検索 | 決済対象の伝票 |
| 支払プロセッサ | - | 選択 | 電子決済の支払プロセッサ |
| 承認済み | 必須 | チェック | ゲートウェイで承認されたか(自動セット) |
| 出荷後清算 | 必須 | チェック | 与信のみ行い出荷後に売上確定する場合 ON |
| 回答 / 回答メッセージ | - | 文字列 | ゲートウェイからの応答結果 |
| 認証コード | - | 文字列 | 返却された認証コード |
| Voided | 必須 | チェック | 取消済みか(Void It で自動セット) |
| 入金支払伝票 | - | 検索 | 生成された Payment への参照 |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 入金支払伝票(Payment)との違いは何ですか?
Section titled “Q. 入金支払伝票(Payment)との違いは何ですか?”支払トランザクションは決済ゲートウェイとの取引 1 件(与信・売上・取消等)を記録するレコードで、会計処理は行いません。承認された取引はソース上の createPayment() により、カード情報・口座情報・金額等がコピーされた入金支払伝票(C_Payment)として生成され、そちらで消込・会計処理が行われます。
Q. オンライン処理の結果はどこで確認できますか?
Section titled “Q. オンライン処理の結果はどこで確認できますか?”処理結果は本ウィンドウの「回答」「回答メッセージ」「認証コード」「郵便番号チェック/住所チェック/CVV照合」の各項目に記録されます。さらに processOnline() は成否にかかわらず オンライン取引履歴(C_OnlineTrxHistory)へ履歴レコードを自動追加します。
Q. 与信(Authorization)した取引を取り消すには?
Section titled “Q. 与信(Authorization)した取引を取り消すには?”「Void It」ボタンを使用します。ソース上は voidOnlineAuthorizationPaymentTransaction() が呼ばれ、取消用のトランザクションを複製してオンライン処理し、成功すると「Voided」フラグが ON になります。出荷後に売上を確定する運用は「出荷後清算(Delayed Capture)」を使用します。
🛠 技術仕様(開発者向け)
支払トランザクションは C_PaymentTransaction テーブル(アクセスレベル: 組織)に格納されます。MPaymentTransaction クラス(792行)がオンライン決済の実行・取消・Delayed Capture・Payment 生成のロジックを担います。DocAction/DocStatus を持たない非伝票型テーブルです。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MPaymentTransaction {
+setAmount(int, BigDecimal) void
+setCreditCard(...) boolean
+setPaymentProcessor() boolean
+processOnline() boolean
+voidOnlineAuthorizationPaymentTransaction() boolean
+delayCaptureOnlineAuthorizationPaymentTransaction(int) boolean
+createPayment(String) MPayment
+copyFrom(...)$ MPaymentTransaction
+getAuthorizationPaymentTransactionIDs(...)$ int[]
+startProcess(Properties, ProcessInfo, Trx) boolean
}
class X_C_PaymentTransaction {
<<generated>>
}
class PO {
<<abstract>>
}
MPaymentTransaction --|> X_C_PaymentTransaction
X_C_PaymentTransaction --|> PO
MPaymentTransaction --> MPaymentProcessor : uses
MPaymentTransaction --> MOnlineTrxHistory : writes history
MPaymentTransaction --> MPayment : createPayment
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MPaymentTransaction.java
関連DBテーブル
Section titled “関連DBテーブル”C_PaymentTransaction(支払トランザクション)
Section titled “C_PaymentTransaction(支払トランザクション)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_PaymentTransaction_ID | ID | PK | 支払トランザクションID | 主キー |
| C_BPartner_ID | Search | Y | 取引先 | |
| DateTrx | Date | Y | 取引日付 | デフォルト @#Date@ |
| PayAmt | Amount | Y | 御支払金額 | デフォルト 0、callout CalloutPayment.amounts |
| C_Currency_ID | TableDirect | Y | 通貨 | |
| IsReceipt | YesNo | Y | 入金/支払区分 | |
| TenderType | List | Y | 提出タイプ | デフォルト K |
| TrxType | List | Y | 取引タイプ | デフォルト S |
| CreditCardType | List | N | クレジットカード | デフォルト M |
| CreditCardExpMM / YY | Integer | N | 満期月/年 | デフォルト 1 / 03 |
| C_PaymentProcessor_ID | TableDirect | N | 支払プロセッサ | |
| IsApproved | YesNo | Y | 承認済み | デフォルト N、processOnline が更新 |
| IsVoided | YesNo | Y | 取消済み | Void 処理が更新 |
| IsDelayedCapture | YesNo | Y | 出荷後清算 | |
| R_Result / R_RespMsg / R_AuthCode | String | N | ゲートウェイ回答 | processOnline が更新 |
| C_Payment_ID | Search | N | 生成された入金支払伝票 | |
| Ref_PaymentTransaction_ID | Search | N | 参照元トランザクション | Void/複製時に使用 |
| Processed | YesNo | Y | 処理済み | デフォルト N |
ビジネスロジック
Section titled “ビジネスロジック”processOnline():C_PaymentProcessor_IDまたは銀行口座に紐づくMBankAccountProcessorからPaymentProcessorを生成して決済を実行し、結果に応じてIsApproved/IsVoidedを更新します。処理後は成否にかかわらずMOnlineTrxHistoryレコードを作成して履歴を残します。setPaymentProcessor(): 提出タイプ・カード種別・支払プロセッサ指定から適合する銀行口座プロセッサを検索し、C_PaymentProcessor_IDをセットします。voidOnlineAuthorizationPaymentTransaction()/delayCaptureOnlineAuthorizationPaymentTransaction(int C_Invoice_ID):copyFrom()で取消用/売上確定用のトランザクションを複製し、processOnline()を実行します。createPayment(String trxName): 名義人・口座・カード・伝票参照等のフィールド一式をMPaymentへコピーして入金支払伝票を生成します。startProcess(Properties, ProcessInfo, Trx): プロセスとしての呼び出し(ProcessCall)に対応しています。
拡張ポイント
Section titled “拡張ポイント”- Model Validator:
C_PaymentTransactionの保存前後・変更時に独自チェックを追加できます(OSGi プラグイン推奨)。 - Callout: 標準では
PayAmtにorg.compiere.model.CalloutPayment.amountsが定義されています。 - PaymentProcessor 実装: 決済ゲートウェイ固有の接続は
PaymentProcessor.create()が返すプロセッサ実装クラス側で拡張します。
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”決済ゲートウェイ連携や独自の決済フロー組み込みなど、支払トランザクション周りの拡張はプラグインで安全に実装できます。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。