{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-developers/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"redocly_category":"Developers","type":"markdown"},"seo":{"title":"XRP Ledger Claimable Balances"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"xrp-ledger-claimable-balances","__idx":0},"children":["XRP Ledger Claimable Balances"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A claimable balance is how Fordefi surfaces the XRP Ledger's Check"," ","mechanism when sending a Trust Line Asset to a recipient who does not yet have"," ","a trust line for that asset. Fordefi works with claimable balances in two"," ","scenarios:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Automatically creating"]}," a claimable balance when a Trust Line Asset"," ","transfer targets a recipient that has no trust line for that asset."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Cashing"]}," the Check for a claimable balance the vault holds."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"automatic-claimable-balance-on-transfer","__idx":1},"children":["Automatic claimable balance on transfer"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When you send a Trust Line Asset to a recipient that has not yet established a"," ","trust line for that asset, a normal ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Payment"]}," would fail. To prevent this,"," ","Fordefi automatically checks the recipient's trust lines before building the"," ","transaction:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If the recipient ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["has"]}," a trust line, Fordefi builds a standard Payment"," ","transaction."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If the recipient ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["does not have"]}," a trust line, Fordefi builds a"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CheckCreate"]}," transaction instead, with the recipient as the destination."," ","The funds stay in the sender's vault, and only leave it when the recipient"," ","establishes a trust line and cashes the Check. In the meantime, a 0.2 XRP"," ","owner reserve is locked on the sender's account."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This behavior is fully automatic: the request body is the same as any other"," ","Trust Line Asset transfer. No caller changes are required."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Fordefi does not support canceling a Check once created."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"cashing-a-check","__idx":2},"children":["Cashing a Check"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When your vault is the recipient of a Check, you can cash it with a"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ripple_cash_check"]}," request, referencing the Check-creating transaction by"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction_id"]},". In the UI, such a transaction shows a gray completed status"," ","and a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Cash Check"]}," action until it's cashed; you can also filter"," ","transaction history by claimed/unclaimed to find pending Checks."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If the vault does not yet have a trust line for the asset, Fordefi"," ","automatically prepends a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TrustSet"]}," transaction. These are two separate"," ","ledger transactions, each with its own fee, presented as a single flow to the"," ","signer (a single signature on mobile; two separate entries in transaction"," ","history on web)."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"vault_id\": \"your_xrp_vault_id\",\n  \"signer_type\": \"initiator\",\n  \"type\": \"ripple_transaction\",\n  \"details\": {\n    \"type\": \"ripple_cash_check\",\n    \"transaction_id\": \"source-checkcreate-tx-id\",\n    \"fail_on_prediction_failure\": true,\n    \"skip_prediction\": false,\n    \"push_mode\": \"auto\"\n  }\n}\n","lang":"json"},"children":[]}]},"headings":[{"value":"XRP Ledger Claimable Balances","id":"xrp-ledger-claimable-balances","depth":1},{"value":"Automatic claimable balance on transfer","id":"automatic-claimable-balance-on-transfer","depth":2},{"value":"Cashing a Check","id":"cashing-a-check","depth":2}],"frontmatter":{"seo":{"title":"XRP Ledger Claimable Balances"}},"lastModified":"2026-08-16T10:49:59.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/developers/transaction-types/xrp-claimable-balances","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}