# CheckCreate

[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CreateCheck.cpp)

レジャーにCheckオブジェクトを作成します。これにより指定の送金先は後日換金することができます。このトランザクションの送信者はCheckの送金元です。

*（[Checks Amendment](/ja/resources/known-amendments#checks)が必要です）*

##  JSONの例


```json
{
 "TransactionType": "CheckCreate",
 "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo",
 "Destination": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy",
 "SendMax": "100000000",
 "Expiration": 570113521,
 "InvoiceID": "6F1DFD1D0FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B",
 "DestinationTag": 1,
 "Fee": "12"
}
```

##  フィールド

[共通フィールド](/ja/docs/references/protocol/transactions/common-fields)に加えて、トランザクションは以下のフィールドを使用します。

| フィールド | JSONの型 | [内部の型](/ja/docs/references/protocol/binary-format) | 説明 |
|  --- | --- | --- | --- |
| `Destination` | 文字列 | AccountID | Checkを換金できる[アカウント](/ja/docs/concepts/accounts)の一意アドレス。 |
| `SendMax` | [通貨額](/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で送金元から引き落とすことができる送金元通貨の最大額（XRP以外の通貨の[送金手数料](/ja/docs/concepts/tokens/fungible-tokens/transfer-fees)を含む）。Checkは同一通貨の送金先にのみ入金可能です（XRP以外の通貨の場合は同一イシュアーから）。XRP以外の金額の場合、入れ子フィールドの名前にはアルファベットの小文字のみ使用してください。 |
| `DestinationTag` | 数値 | UInt32 | *（省略可）* Checkの理由を明確にする任意のタグ、または支払先となる、ホスティングされている受取人。 |
| `Expiration` | 数値 | UInt32 | *（省略可）* Checkが無効になる時刻（[Rippleエポック以降の経過秒数](/ja/docs/references/protocol/data-types/basic-data-types#%E6%99%82%E9%96%93%E3%81%AE%E6%8C%87%E5%AE%9A)）。 |
| `InvoiceID` | 文字列 | UInt256 | *（省略可）* このCheckの具体的な理由または識別子を表現する任意の256ビットハッシュ。 |


## エラーケース

- `Destination`アカウントがCheckの着信をブロックしている場合、トランザクションは結果コード`tecNO_PERMISSION`で失敗します。
- `Destination`がトランザクションの送信者である場合、トランザクションは結果コード`temREDUNDANT`で失敗します。
- `Destination`[アカウント](/ja/docs/concepts/accounts)がレジャーに存在していない場合、トランザクションは結果コード`tecNO_DST`で失敗します。
- `Destination`アカウントでRequireDestフラグが有効であるが、トランザクションに`DestinationTag`フィールドが含まれていない場合、トランザクションは結果コード`tecDST_TAG_NEEDED`で失敗します。
- `SendMax`に[フリーズ](/ja/docs/concepts/tokens/fungible-tokens/freezes)されているトークンが指定されている場合、トランザクションは結果コード`tecFROZEN`で失敗します。
- トランザクションの`Expiration`が過去の日時である場合、トランザクションは結果コード`tecEXPIRED`で失敗します。
- Checkの追加後に送金元が[所有者準備金](/ja/docs/concepts/accounts/reserves#%E6%89%80%E6%9C%89%E8%80%85%E6%BA%96%E5%82%99%E9%87%91)条件を満たすのに十分なXRPを保有していない場合、トランザクションは結果コード`tecINSUFFICIENT_RESERVE`で失敗します。
- Checkの送金元または送金先のいずれかがレジャーでこれ以上のオブジェクトを所有できない場合、トランザクションは結果コード`tecDIR_FULL`で失敗します。