# CheckCash [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CashCheck.cpp) 対応する[CheckCreateトランザクション](/ja/docs/references/protocol/transactions/types/checkcreate)で承認された額まで受領するため、レジャーでCheckオブジェクトの清算を試みます。CheckCashトランザクションでCheckを換金できるのは、Checkの`Destination`アドレスだけです。このCheckの換金方法は、送金先により開始される[Payment](/ja/docs/references/protocol/transactions/types/payment)の実行に似ています。 Checkに相当する資金があるとは保証されないため、送金元に十分な残高がないか、または資金を送金できるだけの十分な流動性がないことが原因で、Checkの清算が失敗することがあります。このような状況が発生した場合、Checkはレジャーに残り、送金先は後でこのCheckの換金を再試行するか、または異なる額で換金を試みることができます。 *([Checks Amendment](/ja/resources/known-amendments#checks)が必要です)* ## JSONの例 ```json { "Account": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", "TransactionType": "CheckCash", "Amount": "100000000", "CheckID": "838766BA2B995C00744175F69A1B11E32C3DBC40E64801A4056FCBD657F57334", "Fee": "12" } ``` ## フィールド [共通フィールド](/ja/docs/references/protocol/transactions/common-fields)に加えて、トランザクションは以下のフィールドを使用します。 | フィールド | JSONの型 | [内部の型](/ja/docs/references/protocol/binary-format) | 説明 | | --- | --- | --- | --- | | `CheckID` | 文字列 | UInt256 | 換金する[Checkレジャーオブジェクト](/ja/docs/references/protocol/ledger-data/ledger-entry-types/check)のID(64文字の16進文字列)。 | | `Amount` | [通貨額](/ja/docs/references/protocol/data-types/basic-data-types#%E9%80%9A%E8%B2%A8%E9%A1%8D%E3%81%AE%E6%8C%87%E5%AE%9A) | Amount | *(省略可)* 可能であればCheckを厳密にこの額で清算します。通貨は対応するCheckCreateトランザクションの`SendMax`の通貨と一致している必要があります。このフィールドまたは`DeliverMin`のいずれかを指定する必要があります。 | | `DeliverMin` | [通貨額](/ja/docs/references/protocol/data-types/basic-data-types#%E9%80%9A%E8%B2%A8%E9%A1%8D%E3%81%AE%E6%8C%87%E5%AE%9A) | Amount | *(省略可)* Checkをこの額以上の可能な限りの額で清算します。通貨は対応するCheckCreateトランザクションの`SendMax`の通貨と一致している必要があります。このフィールドまたは`Amount`のいずれかを指定する必要があります。 | `Amount`または`DeliverMin`のいずれかを指定する***必要があります***が、両方は指定しないでください。 ## エラーケース - CheckCashトランザクションの送信者がCheckの`Destination`ではない場合、トランザクションは結果コード`tecNO_PERMISSION`で失敗します。 - `CheckID`フィールドにより識別されるCheckが存在していない場合、トランザクションは結果コード`tecNO_ENTRY`で失敗します。 - `CheckID`フィールドにより識別されるCheckが有効期限切れである場合、トランザクションは結果コード`tecEXPIRED`で失敗します。 - Checkの送金先でRequireDestフラグが有効であるが、作成されるCheckには送金先タグが指定されていない場合、トランザクションは結果コード`tecDST_TAG_NEEDED`で失敗します。 - トランザクションで`Amount`と`DeliverMin`の両方が指定または省略される場合、トランザクションは結果コード`temMALFORMED`で失敗します。 - `Amount`または`DeliverMin` がCheckの通貨(およびXRP以外の通貨の場合はイシュアー)に一致しない場合、トランザクションは結果コード`temBAD_CURRENCY`で失敗します。