CheckCreate
(Added by the Checks amendment.)
Create a Check object in the ledger, which is a deferred payment that can be cashed by its intended destination. The sender of this transaction is the sender of the Check.
Example CheckCreate JSON
{
"TransactionType": "CheckCreate",
"Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo",
"Destination": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy",
"SendMax": "100000000",
"Expiration": 570113521,
"InvoiceID": "6F1DFD1D0FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B",
"DestinationTag": 1,
"Fee": "12"
}
CheckCreate Fields
In addition to the common fields, a CheckCreate transaction uses the following fields:
Field | JSON Type | Internal Type | Description |
---|---|---|---|
Destination |
String | AccountID | The unique address of the account that can cash the Check. |
SendMax |
Currency Amount | Amount | Maximum amount of source currency the Check is allowed to debit the sender, including transfer fees on non-XRP currencies. The Check can only credit the destination with the same currency (from the same issuer, for non-XRP currencies). For non-XRP amounts, the nested field names MUST be lower-case. |
DestinationTag |
Number | UInt32 | (Optional) Arbitrary tag that identifies the reason for the Check, or a hosted recipient to pay. |
Expiration |
Number | UInt32 | (Optional) Time after which the Check is no longer valid, in seconds since the Ripple Epoch. |
InvoiceID |
String | Hash256 | (Optional) Arbitrary 256-bit hash representing a specific reason or identifier for this Check. |
Error Cases
- If the
Destination
is the sender of the transaction, the transaction fails with the result codetemREDUNDANT
. - If the
Destination
account does not exist in the ledger, the transaction fails with the result codetecNO_DST
. - If the
Destination
account has theRequireDest
flag enabled but the transaction does not include aDestinationTag
field, the transaction fails with the result codetecDST_TAG_NEEDED
. - If
SendMax
specifies an issued currency which is frozen, the transaction fails with the resulttecFROZEN
. - If the
Expiration
of the transaction is in the past, the transaction fails with the resulttecEXPIRED
. - If the sender does not have enough XRP to meet the owner reserve after adding the Check, the transaction fails with the result
tecINSUFFICIENT_RESERVE
. - If either the sender or the destination of the Check cannot own more objects in the ledger, the transaction fails with the result
tecDIR_FULL
.