CheckCreate

[Source]

(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 code temREDUNDANT.
  • If the Destination account does not exist in the ledger, the transaction fails with the result code tecNO_DST.
  • If the Destination account has the RequireDest flag enabled but the transaction does not include a DestinationTag field, the transaction fails with the result code tecDST_TAG_NEEDED.
  • If SendMax specifies an issued currency which is frozen, the transaction fails with the result tecFROZEN.
  • If the Expiration of the transaction is in the past, the transaction fails with the result tecEXPIRED.
  • 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.