Skip to content
Last updated
Edit

[Source]

Create an on-ledger check, which is a deferred payment that can be cashed by its intended destination. The sender of this transaction is the sender of the check.

Requires the Checks amendment. Loading...

Example CheckCreate JSON

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

CheckCreate Fields

In addition to the common fields, CheckCreate transactions use the following fields:

FieldJSON TypeInternal TypeDescription
DestinationStringAccountIDThe unique address of the account that can cash the Check.
SendMaxCurrency AmountAmountMaximum 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.
DestinationTagNumberUInt32(Optional) Arbitrary tag that identifies the reason for the Check, or a hosted recipient to pay.
ExpirationNumberUInt32(Optional) Time after which the Check is no longer valid, in seconds since the Ripple Epoch.
InvoiceIDStringUInt256(Optional) Arbitrary 256-bit hash representing a specific reason or identifier for this Check.

Error Cases

Besides errors that can occur for all transactions, CheckCreate transactions can result in the following transaction result codes:

Error CodeDescription
tecNO_PERMISSIONThe Destination account is blocking incoming Checks.

Requires the DisallowIncoming amendment. Loading...

temREDUNDANTThe Destination is the sender of the transaction.
tecNO_DSTThe Destination account does not exist in the ledger.
tecDST_TAG_NEEDEDThe Destination account has the RequireDest flag enabled but the transaction does not include a DestinationTag field.
tecFROZENSendMax specifies a token which is frozen.
tecEXPIREDThe Expiration of the transaction is in the past.
tecINSUFFICIENT_RESERVEThe sender does not have enough XRP to meet the owner reserve after adding the Check.
tecDIR_FULLEither the sender or the destination of the Check cannot own more objects in the ledger.
This error is effectively impossible to receive if

Requires the fixDirectoryLimit. Loading...

is enabled.

See Also