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.
[Source]
(Added by the [Checks amendment][].)
Destination
String
AccountID
The unique address of the account that can cash the Check.
SendMax
Amount
Maximum amount of source currency the Check is allowed to debit the sender, including transfer fees on non-XAH currencies. The Check can only credit the destination with the same currency (from the same issuer, for non-XAH currencies). For non-XAH 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.
If the Destination
account is blocking incoming Checks, the transaction fails with the result code tecNO_PERMISSION
.
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 a token 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 XAH 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
.