
Cashing a check
4 minDifficulty Checked 2026-11-10- CheckCash takes either Amount for an exact sum or DeliverMin for as much as possible.
- If the sender's balance is short, cashing fails and the check stays on the ledger.
- Cashing a token check creates the receiver's trust line if it is missing.
You hold a check for "up to 100 XRP". You have two ways to cash it.
Exact. "Give me 100." If the sender has it, you get 100. If not, nothing moves.
Flexible. "Give me as much as you can, but at least 50." If the sender has 60, you get 60. If the sender has 40, nothing moves.
Either way, a failed try does not destroy the check. It stays on the ledger. You can try again tomorrow, or ask for less.
A successful cash ends the check. It is removed from the ledger, even if you took less than the maximum. There is no second cash for the rest.
Cashing is your transaction, so you pay its small fee. The sender pays nothing at that moment except the amount cashed.
Token checks work the same way, with two extras:
- If you do not have a trust line for the token yet, cashing creates one. That adds one owner reserve to your account, 0.2 XRP today.
- If the token has a transfer fee, the sender is debited more than you receive. The check's maximum includes that fee.
Nobody can force a token on you with a check. A check does nothing until you cash it.
CheckCash fields:
| Field | Meaning |
|---|---|
CheckID | The 64-character ID of the Check entry |
Amount | Cash for exactly this amount |
DeliverMin | Cash for at least this amount, and as much as possible |
Provide Amount or DeliverMin, never both. The currency, and the issuer for tokens, must match the check's SendMax.
Cashing works like a payment started by the receiver. It can fail because the sender's balance is too low, or because there is not enough liquidity to deliver the funds. The Check entry then remains.
Result codes:
tecNO_PERMISSION: the sender ofCheckCashis not the check'sDestination.tecNO_ENTRY: no check has thatCheckID.tecEXPIRED: the check has expired.tecDST_TAG_NEEDED: the receiver now requires destination tags and the check has none.temMALFORMED: both or neither ofAmountandDeliverMin, or an all-zeroCheckID.temBAD_CURRENCY: the currency or issuer does not match the check.
Trust lines. The CheckCashMakesTrustLine amendment (enabled 2023-01-23) lets CheckCash create the receiver's trust line for the token, with a limit of 0. Before it, the receiver had to send TrustSet first. An issuer cashing a check for its own token needs no trust line.
What was delivered. With DeliverMin, the result is at least that amount and at most the check's SendMax. Read the exact balance changes in the transaction metadata:
- XRP: the two
AccountRootentries change. The receiver's change is net of the transaction cost it paid. - Tokens:
RippleStateentries change. With a third-party issuer, two trust lines change, sender to issuer and issuer to receiver. - With a transfer fee, the sender is debited more than the receiver is credited.
Related: Trust lines and issued tokens.
- CheckCashRead 2026-11-10
- Cash a Check for a Flexible AmountRead 2026-11-10
- ChecksRead 2026-11-10
- Known AmendmentsRead 2026-11-10
