Processes a refund for a previously debited transaction from a user’s sub-wallet. The refund operation
credits the amount back to the user’s sub-wallet, effectively reversing a debit transaction:
GIFT_PPI: Credits amount back to gift wallet.
CLOSED_LOOP_PPI: Credits amount back to the respective sub-wallet.
STANDARD_PPI: Credits amount back to the respective sub-wallet.
Refund amount cannot exceed the original debit amount.
The following table outlines the possible status values returned in the refund response:
Status
Description
SUCCESS
The refund has been processed successfully and the amount has been credited back to the user’s sub-wallet. The transaction is complete.
PENDING
The refund request has been accepted and is currently being processed. The amount will be credited to the wallet shortly. Check the status later or wait for webhook notification.
Unique identifier that you create to identify the refund transaction in your system. Only alphanumeric characters, periods (.), hyphens (-), and underscores (_) are allowed.
Unique identifier of the original debit transaction for which the refund is being initiated. Only alphanumeric characters, periods (.), hyphens (-), and underscores (_) are allowed.
Unique identifier for the user, as provided by you during PPI user creation. Only alphanumeric characters, periods (.), hyphens (-), and underscores (_) are allowed.
Unique identifier for the wallet, as provided by you during wallet creation. Only alphanumeric characters, periods (.), hyphens (-), and underscores (_) are allowed.
Unique identifier of the sub-wallet from which the original debit was made and to which the refund will be credited. Only numeric characters are allowed.
Amount to refund. Decimal values are allowed. The amount should be greater than 0 and cannot exceed the original debit amount or the remaining refundable amount.
Optional key-value pairs for any extra information. Keys and values must be strings. The following constraints apply:
Maximum 10 entries.
Keys: maximum 50 characters. Alphanumeric characters, underscores (_), periods (.), commas (,), single quotes ('), ampersands (&), hyphens (-), and spaces are allowed.
Values: maximum 200 characters. Same character set as keys.
Optional key-value pairs for any extra information. Keys and values must be strings. The following constraints apply:
Maximum 10 entries.
Keys: maximum 50 characters. Alphanumeric characters, underscores (_), periods (.), commas (,), single quotes ('), ampersands (&), hyphens (-), and spaces are allowed.
Values: maximum 200 characters. Same character set as keys.
Timestamp when the refund transaction was processed. Will be null if status is PENDING.
Example:
"2025-07-28T10:30:00Z"
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Cashfree Developer Documentation","colors":{"primary":"#6930ca","light":"#cfb8f5","dark":"#130851"},"logo":{"light":"https://mintcdn.com/cashfreepayments-d00050e9/6mQw7is1us8FhXrb/static/logo/light.svg?fit=max\u0026auto=format\u0026n=6mQw7is1us8FhXrb\u0026q=85\u0026s=8a2837083063d8a01e0be6b454a1baf1","dark":"https://mintcdn.com/cashfreepayments-d00050e9/6mQw7is1us8FhXrb/static/logo/dark.svg?fit=max\u0026auto=format\u0026n=6mQw7is1us8FhXrb\u0026q=85\u0026s=5c7de40784c6f6f9eebdad085ec5a7ef"},"favicon":"https://mintcdn.com/cashfreepayments-d00050e9/NpjCgm3mwC7v6gp-/static/favicon.png?fit=max\u0026auto=format\u0026n=NpjCgm3mwC7v6gp-\u0026q=85\u0026s=ba85dcd024bd70845e38c3f3957514c6","appearance":{"default":"light","strict":false},"background":{"color":{"light":"#fbfbfb","dark":"#000000"}},"navbar":{"links":[{"href":"https://www.cashfree.com/support/","label":"Contact Us"}],"primary":{"type":"button","label":"Get Started","href":"https://merchant.cashfree.com/merchants/signup?source-action=docs%20page\u0026action=Sign%20Up\u0026button-id=StartNow_Navbar"}},"footer":{"socials":{"github":"https://github.com/cashfree","youtube":"https://www.youtube.com/channel/UCxO0W7xVngh7TfkChPa_nwg","website":"https://www.cashfree.com/blog/category/engineering","discord":"https://discord.com/invite/w97HT9RKCF"}},"search":{"prompt":"Search or ask..."},"seo":{"metatags":{"og:title":"Cashfree Developer Documentation","og:description":"Welcome to the Cashfree developer documentation. You will find help about Cashfree products and APIs that will help you start using our products quickly.","og:site_name":"Cashfree Developer Documentation","twitter:site":"@gocashfree","google-site-verification":"T69Ao_T0Ps8pkRbluKzW179qvd_aCsWISCApeSsIhRU"},"indexing":"all"},"fonts":{"heading":{"family":"Inter","weight":600},"body":{"family":"Inter","weight":400}},"styling":{"codeblocks":"dark","latex":true},"integrations":{"ga4":{"measurementId":"G-56SCQ867FW"},"gtm":{"tagId":"GTM-5SRVH4P"}},"contextual":{"options":["chatgpt","claude","copy","view",{"title":"Open in Discord","description":"Join our Discord community","icon":"discord","href":"https://discord.com/invite/w97HT9RKCF"}],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cashfreepayments-d00050e9","hasAudioNarration":false,"actualSubdomain":"cashfreepayments-d00050e9","customDomains":["www.cashfree.com"],"gitSource":{"type":"github","owner":"cashfree","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae49f2dbfaae13da36b452f","collectionId":"849e9bcc-f7f0-46ac-84be-219ff7da0505","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae49f2dbfaae13da36b452f"},"feedback":{"thumbs":true,"agentFeedback":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"DISABLED"},"CONTEXTUAL_FEEDBACK":{"status":"DISABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae49f2dbfaae13da36b452f","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"Payments APIs","count":520},{"language":"default","tag":"Other Versions","count":349},{"language":"default","tag":"Payments","count":305},{"language":"default","tag":"v2026-01-01","count":159},{"language":"default","tag":"Subscription","count":151},{"language":"default","tag":"v2025-01-01","count":150},{"language":"default","tag":"v2023-08-01","count":142},{"language":"default","tag":"Payment Gateway","count":136},{"language":"default","tag":"Secure ID","count":106},{"language":"default","tag":"Payouts","count":105}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":false,"email":"documentation@cashfree.com","showHelpButton":true}},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"starterQuestions":[{"_id":"6916d346c181a220cfa37e8d","deploymentId":"66d5827f2de686bc28e7722b","questionText":"How do I accept payments online?","status":"active","generatedBy":"manual","createdAt":"2025-11-14T06:59:18.295Z","updatedAt":"2025-11-14T06:59:18.295Z","__v":0},{"_id":"6916d306c181a220cfa370e8","deploymentId":"66d5827f2de686bc28e7722b","questionText":"What is Cashfree Hosted Checkout?","status":"active","generatedBy":"manual","createdAt":"2025-11-14T06:58:14.574Z","updatedAt":"2025-11-14T06:58:14.574Z","__v":0},{"_id":"6916d2dbc181a220cfa368a4","deploymentId":"66d5827f2de686bc28e7722b","questionText":"How do I create a payment link?","status":"active","generatedBy":"manual","createdAt":"2025-11-14T06:57:31.657Z","updatedAt":"2025-11-14T06:57:31.657Z","__v":0}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","href":"/docs/_mintlify/custom/cashfreepayments-d00050e9/e1e3b3ccb8bef592/style.css"},{"filePath":"grid.css","content":".container,.container-fluid{margin-right:auto;margin-left:auto}.container{padding-top:3rem;padding-bottom:3rem}.container-fluid{padding:3rem 2rem}.col-xs,.row{box-sizing:border-box}.row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-.5rem;margin-left:-.5rem}.col.reverse,.row.reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.col.reverse{-webkit-box-orient:vertical;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.col-xs{-ms-flex:0 0 auto;flex:0 0 auto;padding-right:.5rem;padding-left:.5rem}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-offset-0,.col-xs-offset-1,.col-xs-offset-10,.col-xs-offset-11,.col-xs-offset-12,.col-xs-offset-2,.col-xs-offset-3,.col-xs-offset-4,.col-xs-offset-5,.col-xs-offset-6,.col-xs-offset-7,.col-xs-offset-8,.col-xs-offset-9{box-sizing:border-box;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;padding-right:.5rem;padding-left:.5rem}.col-xs{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0;max-width:100%}.col-xs-1{-ms-flex-preferred-size:8.33333333%;flex-basis:8.33333333%;max-width:8.33333333%}.col-xs-2{-ms-flex-preferred-size:16.66666667%;flex-basis:16.66666667%;max-width:16.66666667%}.col-xs-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.col-xs-4{-ms-flex-preferred-size:33.33333333%;flex-basis:33.33333333%;max-width:33.33333333%}.col-xs-5{-ms-flex-preferred-size:41.66666667%;flex-basis:41.66666667%;max-width:41.66666667%}.col-xs-6{-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.col-xs-7{-ms-flex-preferred-size:58.33333333%;flex-basis:58.33333333%;max-width:58.33333333%}.col-xs-8{-ms-flex-preferred-size:66.66666667%;flex-basis:66.66666667%;max-width:66.66666667%}.col-xs-9{-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.col-xs-10{-ms-flex-preferred-size:83.33333333%;flex-basis:83.33333333%;max-width:83.33333333%}.col-xs-11{-ms-flex-preferred-size:91.66666667%;flex-basis:91.66666667%;max-width:91.66666667%}.col-xs-12{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.col-xs-offset-0{margin-left:0}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-11{margin-left:91.66666667%}.start-xs{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:start}.center-xs{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}.end-xs{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:end}.top-xs{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.middle-xs{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.bottom-xs{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.around-xs{-ms-flex-pack:distribute;justify-content:space-around}.between-xs{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.first-xs{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.last-xs{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}@media only screen and (min-width:48em){.container{width:49rem}.col-sm{box-sizing:border-box;-ms-flex:0 0 auto;flex:0 0 auto;padding-right:.5rem;padding-left:.5rem}.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-offset-0,.col-sm-offset-1,.col-sm-offset-10,.col-sm-offset-11,.col-sm-offset-12,.col-sm-offset-2,.col-sm-offset-3,.col-sm-offset-4,.col-sm-offset-5,.col-sm-offset-6,.col-sm-offset-7,.col-sm-offset-8,.col-sm-offset-9{box-sizing:border-box;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;padding-right:.5rem;padding-left:.5rem}.col-sm{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0;max-width:100%}.col-sm-1{-ms-flex-preferred-size:8.33333333%;flex-basis:8.33333333%;max-width:8.33333333%}.col-sm-2{-ms-flex-preferred-size:16.66666667%;flex-basis:16.66666667%;max-width:16.66666667%}.col-sm-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.col-sm-4{-ms-flex-preferred-size:33.33333333%;flex-basis:33.33333333%;max-width:33.33333333%}.col-sm-5{-ms-flex-preferred-size:41.66666667%;flex-basis:41.66666667%;max-width:41.66666667%}.col-sm-6{-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.col-sm-7{-ms-flex-preferred-size:58.33333333%;flex-basis:58.33333333%;max-width:58.33333333%}.col-sm-8{-ms-flex-preferred-size:66.66666667%;flex-basis:66.66666667%;max-width:66.66666667%}.col-sm-9{-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.col-sm-10{-ms-flex-preferred-size:83.33333333%;flex-basis:83.33333333%;max-width:83.33333333%}.col-sm-11{-ms-flex-preferred-size:91.66666667%;flex-basis:91.66666667%;max-width:91.66666667%}.col-sm-12{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.col-sm-offset-0{margin-left:0}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-11{margin-left:91.66666667%}.start-sm{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:start}.center-sm{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}.end-sm{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:end}.top-sm{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.middle-sm{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.bottom-sm{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.around-sm{-ms-flex-pack:distribute;justify-content:space-around}.between-sm{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.first-sm{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.last-sm{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}}@media only screen and (min-width:64em){.container{width:65rem}.col-md{box-sizing:border-box;-ms-flex:0 0 auto;flex:0 0 auto;padding-right:.5rem;padding-left:.5rem}.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-offset-0,.col-md-offset-1,.col-md-offset-10,.col-md-offset-11,.col-md-offset-12,.col-md-offset-2,.col-md-offset-3,.col-md-offset-4,.col-md-offset-5,.col-md-offset-6,.col-md-offset-7,.col-md-offset-8,.col-md-offset-9{box-sizing:border-box;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;padding-right:.5rem;padding-left:.5rem}.col-md{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0;max-width:100%}.col-md-1{-ms-flex-preferred-size:8.33333333%;flex-basis:8.33333333%;max-width:8.33333333%}.col-md-2{-ms-flex-preferred-size:16.66666667%;flex-basis:16.66666667%;max-width:16.66666667%}.col-md-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.col-md-4{-ms-flex-preferred-size:33.33333333%;flex-basis:33.33333333%;max-width:33.33333333%}.col-md-5{-ms-flex-preferred-size:41.66666667%;flex-basis:41.66666667%;max-width:41.66666667%}.col-md-6{-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.col-md-7{-ms-flex-preferred-size:58.33333333%;flex-basis:58.33333333%;max-width:58.33333333%}.col-md-8{-ms-flex-preferred-size:66.66666667%;flex-basis:66.66666667%;max-width:66.66666667%}.col-md-9{-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.col-md-10{-ms-flex-preferred-size:83.33333333%;flex-basis:83.33333333%;max-width:83.33333333%}.col-md-11{-ms-flex-preferred-size:91.66666667%;flex-basis:91.66666667%;max-width:91.66666667%}.col-md-12{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-11{margin-left:91.66666667%}.start-md{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:start}.center-md{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}.end-md{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:end}.top-md{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.middle-md{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.bottom-md{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.around-md{-ms-flex-pack:distribute;justify-content:space-around}.between-md{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.first-md{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.last-md{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}}@media only screen and (min-width:75em){.container{width:76rem}.col-lg{box-sizing:border-box;-ms-flex:0 0 auto;flex:0 0 auto;padding-right:.5rem;padding-left:.5rem}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-offset-0,.col-lg-offset-1,.col-lg-offset-10,.col-lg-offset-11,.col-lg-offset-12,.col-lg-offset-2,.col-lg-offset-3,.col-lg-offset-4,.col-lg-offset-5,.col-lg-offset-6,.col-lg-offset-7,.col-lg-offset-8,.col-lg-offset-9{box-sizing:border-box;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;padding-right:.5rem;padding-left:.5rem}.col-lg{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0;max-width:100%}.col-lg-1{-ms-flex-preferred-size:8.33333333%;flex-basis:8.33333333%;max-width:8.33333333%}.col-lg-2{-ms-flex-preferred-size:16.66666667%;flex-basis:16.66666667%;max-width:16.66666667%}.col-lg-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.col-lg-4{-ms-flex-preferred-size:33.33333333%;flex-basis:33.33333333%;max-width:33.33333333%}.col-lg-5{-ms-flex-preferred-size:41.66666667%;flex-basis:41.66666667%;max-width:41.66666667%}.col-lg-6{-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.col-lg-7{-ms-flex-preferred-size:58.33333333%;flex-basis:58.33333333%;max-width:58.33333333%}.col-lg-8{-ms-flex-preferred-size:66.66666667%;flex-basis:66.66666667%;max-width:66.66666667%}.col-lg-9{-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.col-lg-10{-ms-flex-preferred-size:83.33333333%;flex-basis:83.33333333%;max-width:83.33333333%}.col-lg-11{-ms-flex-preferred-size:91.66666667%;flex-basis:91.66666667%;max-width:91.66666667%}.col-lg-12{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-11{margin-left:91.66666667%}.start-lg{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:start}.center-lg{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}.end-lg{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:end}.top-lg{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.middle-lg{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.bottom-lg{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.around-lg{-ms-flex-pack:distribute;justify-content:space-around}.between-lg{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.first-lg{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.last-lg{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}}"},{"filePath":"typography.css","content":".landing-page h1{font-size:2.4rem}.landing-page h2{font-size:2rem}.landing-page h3{font-size:1.6rem}.landing-page h4{font-size:1.2rem}.landing-page h5{font-size:1rem}.landing-page h6{font-size:.8rem}.bold{font-weight:700}.semibold{font-weight:600}.medium{font-weight:500}.regular{font-weight:400}.light{font-weight:300}"}],"page":{"pagePath":"api-reference/prepaid-payment-instruments/wallet-management/refund-wallet","slug":"/api-reference/prepaid-payment-instruments/wallet-management/refund-wallet","pageMetadata":{"openapi":"openapi/ppi/ppi.yaml post /ppi/wallet/refund","keywords":["wallet management","PPI","API reference","wallet operations","webhook integration","refund processing"],"og:title":"Refund Wallet API | Cashfree","og:description":"Refund a previous debit on a Cashfree PPI sub-wallet for a user, returning the amount back to gift, closed, or small PPI wallets with idempotent refund IDs.","title":"Refund Debit Wallet","description":"Processes a refund for a previously debited transaction from a user's sub-wallet. The refund operation \ncredits the amount back to the user's sub-wallet, effectively reversing a debit transaction:\n- `GIFT_PPI`: Credits amount back to gift wallet.\n- `CLOSED_LOOP_PPI`: Credits amount back to the respective sub-wallet.\n- `STANDARD_PPI`: Credits amount back to the respective sub-wallet.\n- Refund amount cannot exceed the original debit amount.\n","href":"/api-reference/prepaid-payment-instruments/wallet-management/refund-wallet","hidden":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Processes a refund for a previously debited transaction from a user’s sub-wallet. The refund operation\\ncredits the amount back to the user’s sub-wallet, effectively reversing a debit transaction:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"GIFT_PPI\"\n }), \": Credits amount back to gift wallet.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"CLOSED_LOOP_PPI\"\n }), \": Credits amount back to the respective sub-wallet.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"STANDARD_PPI\"\n }), \": Credits amount back to the respective sub-wallet.\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"Refund amount cannot exceed the original debit amount.\"\n }), \"\\n\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Table}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsx(AccordionGroup,{children:_jsxs(Accordion,{title:`Refund Status Descriptions`,defaultOpen:true,id:`refund-status-descriptions`,children:[_jsx(_components.p,{children:`The following table outlines the possible status values returned in the refund response:`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:_jsx(_components.strong,{children:`Status`})}),_jsx(_components.th,{children:_jsx(_components.strong,{children:`Description`})})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`SUCCESS`})}),_jsx(_components.td,{children:`The refund has been processed successfully and the amount has been credited back to the user’s sub-wallet. The transaction is complete.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`PENDING`})}),_jsx(_components.td,{children:`The refund request has been accepted and is currently being processed. The amount will be credited to the wallet shortly. Check the status later or wait for webhook notification.`})]})]})]})]})})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"openapi":"openapi/ppi/ppi.yaml post /ppi/wallet/refund","keywords":["wallet management","PPI","API reference","wallet operations","webhook integration","refund processing"],"og:title":"Refund Wallet API | Cashfree","og:description":"Refund a previous debit on a Cashfree PPI sub-wallet for a user, returning the amount back to gift, closed, or small PPI wallets with idempotent refund IDs.","title":"Refund Debit Wallet","description":"Processes a refund for a previously debited transaction from a user's sub-wallet. The refund operation \ncredits the amount back to the user's sub-wallet, effectively reversing a debit transaction:\n- `GIFT_PPI`: Credits amount back to gift wallet.\n- `CLOSED_LOOP_PPI`: Credits amount back to the respective sub-wallet.\n- `STANDARD_PPI`: Credits amount back to the respective sub-wallet.\n- Refund amount cannot exceed the original debit amount.\n","href":"/api-reference/prepaid-payment-instruments/wallet-management/refund-wallet","hidden":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/cashfreepayments-d00050e9/0a1efd0b138512b4/util/downloadImages.js","/docs/_mintlify/custom/cashfreepayments-d00050e9/7b49b0aba32ccd66/util/checkLinks.js","/docs/_mintlify/custom/cashfreepayments-d00050e9/6520965c686ab08e/util/updateFrontmatter.js","/docs/_mintlify/custom/cashfreepayments-d00050e9/e6313895ea4c2bf0/export-docs/export.js","/docs/_mintlify/custom/cashfreepayments-d00050e9/6459e4b38b43a234/export-docs/sync-kb.js","/docs/_mintlify/custom/cashfreepayments-d00050e9/82d5b75dd1e333d2/snippets/postman-buttons/postman-links.js","/docs/_mintlify/custom/cashfreepayments-d00050e9/e8f71dc9fab8d95d/scripts/ga4-video-tracking.js","/docs/_mintlify/custom/cashfreepayments-d00050e9/e3b0c44298fc1c14/scripts/generate-postman-buttons.js","/docs/_mintlify/custom/cashfreepayments-d00050e9/bc4eac15553663a2/scripts/openapi-rm-desc.js","/docs/_mintlify/custom/cashfreepayments-d00050e9/5748000362acad1e/scripts/quote-openapi.js","/docs/_mintlify/custom/cashfreepayments-d00050e9/0a7365ce97b5cca7/scripts/script.js","/docs/_mintlify/custom/cashfreepayments-d00050e9/d99a96c0c4b010fe/scripts/updateHelpAccordionsWithPostHog.js","/docs/_mintlify/custom/cashfreepayments-d00050e9/bd8561d01634fd2e/scripts/updateIframeSrc.js"],"openApiReferenceData":{"operation":{"summary":"Refund Debit Wallet","description":"Processes a refund for a previously debited transaction from a user's sub-wallet. The refund operation \ncredits the amount back to the user's sub-wallet, effectively reversing a debit transaction:\n- `GIFT_PPI`: Credits amount back to gift wallet.\n- `CLOSED_LOOP_PPI`: Credits amount back to the respective sub-wallet.\n- `STANDARD_PPI`: Credits amount back to the respective sub-wallet.\n- Refund amount cannot exceed the original debit amount.\n","operationId":"refundWallet","tags":["Wallets"],"parameters":["a71987e0-20db-4ff7-8f0d-28d6b7fab9ab"],"security":["529a052a-859a-4edc-a5ec-aab125417897"],"requestBody":"adb0bc1b-2745-44ba-8d4d-c1b9dee863c4","responses":{"200":"7374eb5d-e9ae-496c-8a94-f7814e617554","400":"d8fa3cfd-8a5b-499a-9fab-291c28226cac","401":"63ade25d-cfbb-4d81-9397-f9113e72a362","403":"a468b4e1-d04f-440d-9246-45484b720295","404":"5338ba6a-bd7c-45ac-a195-ce089ef6b647","409":"eff4e4db-962d-41d7-9295-14d5f57fbda5","422":"278d8459-a422-4f40-88c3-c76becff4e6c","429":"9f5d469d-bde3-4324-b744-c258fde78a32","500":"90593838-8a8e-4cbc-8fc2-59d0940ecad8"},"method":"post","type":"path","servers":["8cee66d8-0b87-41ef-ab76-cce054584ced","f7bb6ace-47fa-4bed-99e0-0765bd0613d1"],"path":"/ppi/wallet/refund","baseUrlOptions":["https://api.cashfree.com","https://sandbox.cashfree.com"],"title":"Refund Debit Wallet","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"a71987e0-20db-4ff7-8f0d-28d6b7fab9ab":{"description":"API version to be used. Format is in YYYY-MM-DD.","name":"x-api-version","in":"header","required":true,"schema":{"type":"string","default":"2025-11-01","example":"2025-11-01","isRequired":true,"description":"API version to be used. Format is in YYYY-MM-DD.","uniqueKey":"","typeLabel":"string"},"example":"2025-11-01"}},"requestBody":{"description":"Request parameters to refund a previous debit transaction back to the user's wallet.","required":true,"content":{"application/json":{"schema":{"type":"object","required":["refund_id","debit_id","user_id","wallet_id","cf_sub_wallet_id","amount"],"properties":{"refund_id":{"type":"string","description":"Unique identifier that you create to identify the refund transaction in your system. Only alphanumeric characters, periods (.), hyphens (-), and underscores (_) are allowed.","example":"REFUND420984","minLength":1,"maxLength":50,"isRequired":true,"uniqueKey":"refund_id","typeLabel":"string"},"debit_id":{"type":"string","description":"Unique identifier of the original debit transaction for which the refund is being initiated. Only alphanumeric characters, periods (.), hyphens (-), and underscores (_) are allowed.","example":"DEBIT1244","minLength":1,"maxLength":50,"isRequired":true,"uniqueKey":"debit_id","typeLabel":"string"},"user_id":{"type":"string","description":"Unique identifier for the user, as provided by you during PPI user creation. Only alphanumeric characters, periods (.), hyphens (-), and underscores (_) are allowed.","example":"USER827364","minLength":1,"maxLength":50,"isRequired":true,"uniqueKey":"user_id","typeLabel":"string"},"wallet_id":{"type":"string","description":"Unique identifier for the wallet, as provided by you during wallet creation. Only alphanumeric characters, periods (.), hyphens (-), and underscores (_) are allowed.","example":"WALLET936721","minLength":1,"maxLength":50,"isRequired":true,"uniqueKey":"wallet_id","typeLabel":"string"},"cf_sub_wallet_id":{"type":"string","description":"Unique identifier of the sub-wallet from which the original debit was made and to which the refund will be credited. Only numeric characters are allowed.","example":"35246543210987654321","minLength":1,"maxLength":19,"isRequired":true,"uniqueKey":"cf_sub_wallet_id","typeLabel":"string"},"amount":{"type":"number","format":"double","description":"Amount to refund. Decimal values are allowed. The amount should be greater than 0 and cannot exceed the original debit amount or the remaining refundable amount.","example":100.5,"minimum":0.01,"isRequired":true,"uniqueKey":"amount","typeLabel":"number\u003cdouble>"},"remarks":{"type":"string","description":"Additional remarks for the refund request. Alphanumeric and whitespaces are allowed. The maximum character limit is 500.","example":"Wallet Refund","maxLength":500,"uniqueKey":"remarks","typeLabel":"string"},"notes":{"type":"object","description":"Optional key-value pairs for any extra information. Keys and values must be strings. The following constraints apply:\n- Maximum 10 entries.\n- Keys: maximum 50 characters. Alphanumeric characters, underscores (_), periods (.), commas (,), single quotes ('), ampersands (\u0026), hyphens (-), and spaces are allowed.\n- Values: maximum 200 characters. Same character set as keys.\n","properties":{"example_key":{"type":"string","description":"A note value. Maximum 200 characters. Alphanumeric characters, underscores (_), periods (.), commas (,), single quotes ('), ampersands (\u0026), hyphens (-), and spaces are allowed.","example":"example_value","uniqueKey":"notes.example_key","typeLabel":"string"}},"uniqueKey":"notes","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"refundTransaction":{"title":"refundTransaction","description":"Example of refunding a previously debited transaction.","value":{"refund_id":"REFUND420984","debit_id":"DEBIT1244","user_id":"USER827364","wallet_id":"WALLET936721","cf_sub_wallet_id":"35246543210987654321","amount":100.5,"remarks":"Wallet Refund","notes":{"example_key1":"example_value1","example_key2":"example_value2"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"7374eb5d-e9ae-496c-8a94-f7814e617554":{"description":"Success response for refunding a wallet debit.","content":{"application/json":{"schema":{"type":"object","properties":{"refund_id":{"type":"string","description":"Unique identifier for the refund transaction, as provided by you during the refund request.","example":"REFUND420984","uniqueKey":"refund_id","typeLabel":"string"},"debit_id":{"type":"string","description":"Unique identifier of the original debit transaction for which this refund was initiated.","example":"DEBIT1244","uniqueKey":"debit_id","typeLabel":"string"},"cf_refund_id":{"type":"string","description":"Unique identifier for the refund transaction, generated by Cashfree.","example":"8901234567890123456","uniqueKey":"cf_refund_id","typeLabel":"string"},"user_id":{"type":"string","description":"Unique identifier for the user, as provided by you during PPI user creation.","example":"USER827364","uniqueKey":"user_id","typeLabel":"string"},"wallet_id":{"type":"string","description":"Primary wallet ID to which the refund amount has been credited.","example":"WALLET936721","uniqueKey":"wallet_id","typeLabel":"string"},"sub_wallet":{"type":"object","properties":{"cf_sub_wallet_id":{"type":"string","description":"Unique identifier for the sub-wallet provided in response while creating the wallet.","example":"5432109876543210987","uniqueKey":"sub_wallet.cf_sub_wallet_id","typeLabel":"string"},"name":{"type":"string","description":"Name for the sub-wallet.","example":"Gift Wallet","uniqueKey":"sub_wallet.name","typeLabel":"string"},"type":{"type":"string","description":"Type of the sub-wallet.","example":"GIFT_PPI","uniqueKey":"sub_wallet.type","typeLabel":"string"},"status":{"type":"string","description":"Status of the sub-wallet.","example":"ACTIVE","uniqueKey":"sub_wallet.status","typeLabel":"string"},"balance":{"type":"number","format":"double","description":"Current balance of the sub-wallet.","example":1500.75,"uniqueKey":"sub_wallet.balance","typeLabel":"number\u003cdouble>"},"available_balance":{"type":"number","format":"double","description":"Available balance in the sub-wallet.","example":1500.75,"uniqueKey":"sub_wallet.available_balance","typeLabel":"number\u003cdouble>"},"funds_on_hold":{"type":"number","format":"double","description":"Funds on hold in the sub-wallet.","example":0,"uniqueKey":"sub_wallet.funds_on_hold","typeLabel":"number\u003cdouble>"}},"uniqueKey":"sub_wallet","typeLabel":"object"},"status":{"type":"string","description":"Status of the refund operation:\n- `SUCCESS`: Refund has been processed successfully and amount credited to wallet\n- `PENDING`: Refund is being processed and will be credited shortly\n","enum":["SUCCESS","PENDING"],"example":"SUCCESS","uniqueKey":"status","typeLabel":"enum\u003cstring>"},"refunded_gift_codes":{"type":"array","description":"List of gift codes that were refunded in the transaction. This is applicable only for GIFT_PPI type wallets and when the refund is successful.","items":{"type":"object","properties":{"code":{"type":"string","description":"Unique identifier for the gift code.","example":"GIFT-2025-XYZ133","uniqueKey":"refunded_gift_codes.items.[INDEX].code","typeLabel":"string"},"amount_refunded":{"type":"number","format":"double","description":"Amount refunded to the gift code.","example":100,"uniqueKey":"refunded_gift_codes.items.[INDEX].amount_refunded","typeLabel":"number\u003cdouble>"},"value":{"type":"number","format":"double","description":"Total value of the gift code.","example":100,"uniqueKey":"refunded_gift_codes.items.[INDEX].value","typeLabel":"number\u003cdouble>"},"expiry":{"type":"string","format":"date-time","description":"Expiry date of the gift code.","example":"2026-07-28T10:30:00Z","uniqueKey":"refunded_gift_codes.items.[INDEX].expiry","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"refunded_gift_codes.items.[INDEX]","typeLabel":"object"},"uniqueKey":"refunded_gift_codes","typeLabel":"object[]"},"amount":{"type":"number","format":"double","description":"Amount that was refunded to the wallet.","example":100.5,"uniqueKey":"amount","typeLabel":"number\u003cdouble>"},"remarks":{"type":"string","description":"Remarks for the refund transaction.","example":"Wallet Refund","uniqueKey":"remarks","typeLabel":"string"},"notes":{"type":"object","description":"Optional key-value pairs for any extra information. Keys and values must be strings. The following constraints apply:\n- Maximum 10 entries.\n- Keys: maximum 50 characters. Alphanumeric characters, underscores (_), periods (.), commas (,), single quotes ('), ampersands (\u0026), hyphens (-), and spaces are allowed.\n- Values: maximum 200 characters. Same character set as keys.\n","properties":{"example_key":{"type":"string","description":"A note value. Maximum 200 characters. Alphanumeric characters, underscores (_), periods (.), commas (,), single quotes ('), ampersands (\u0026), hyphens (-), and spaces are allowed.","example":"example_value","uniqueKey":"notes.example_key","typeLabel":"string"}},"uniqueKey":"notes","typeLabel":"object"},"initiated_at":{"type":"string","format":"date-time","description":"Timestamp when the refund transaction was initiated.","example":"2025-07-28T10:30:00Z","uniqueKey":"initiated_at","typeLabel":"string\u003cdate-time>"},"processed_at":{"oneOf":[{"type":"string","format":"date-time","description":"Timestamp when the refund transaction was processed. Will be null if status is PENDING.","example":"2025-07-28T10:30:00Z","uniqueKey":"processed_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Timestamp when the refund transaction was processed. Will be null if status is PENDING.","example":"2025-07-28T10:30:00Z","uniqueKey":"processed_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"processed_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"SUCCESS_GIFT_WALLET":{"title":"SUCCESS_GIFT_WALLET","value":{"refund_id":"REFUND420984","debit_id":"DEBIT1244","cf_refund_id":"8901234567890123456","user_id":"USER827364","wallet_id":"WALLET936721","sub_wallet":{"cf_sub_wallet_id":"35246543210987654321","name":"Gift Wallet","type":"GIFT_PPI","status":"ACTIVE","balance":1500.75,"available_balance":1500.75,"funds_on_hold":0},"status":"SUCCESS","refunded_gift_codes":[{"code":"GHO-8900-HKDH-8899","amount_refunded":50,"value":150,"expiry":"2026-07-28T10:30:00Z"},{"code":"ABC-1234-WXYZ-5678","amount_refunded":50.5,"value":200.5,"expiry":"2026-12-31T23:59:59Z"}],"amount":100.5,"remarks":"Wallet Refund","notes":{"example_key1":"example_value1","example_key2":"example_value2"},"initiated_at":"2025-07-28T10:30:00Z","processed_at":"2025-07-28T10:30:00Z"}},"SUCCESS_CLOSED_WALLET":{"title":"SUCCESS_CLOSED_WALLET","value":{"refund_id":"REFUND420984","debit_id":"DEBIT1244","cf_refund_id":"8901234567890123456","user_id":"USER827364","wallet_id":"WALLET936721","sub_wallet":{"cf_sub_wallet_id":"35246543210987654321","name":"Meal Wallet","type":"CLOSED_LOOP_PPI","status":"ACTIVE","balance":1500.75,"available_balance":1500.75,"funds_on_hold":0},"status":"SUCCESS","amount":100.5,"remarks":"Wallet Refund","notes":{"example_key1":"example_value1","example_key2":"example_value2"},"initiated_at":"2025-07-28T10:30:00Z","processed_at":"2025-07-28T10:30:00Z"}}},"exampleType":"examples"}},"exampleType":"examples"},"d8fa3cfd-8a5b-499a-9fab-291c28226cac":{"description":"Bad request - Invalid input parameters.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"A broad category of the error.","example":"internal_error","uniqueKey":"type","typeLabel":"string"},"code":{"type":"string","description":"A machine-readable error code specific to the issue.","example":"internal_server_error","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"A message providing more details about the error, dynamic based on the specific issue.","example":"Internal server error","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"refund_id_missing":{"title":"refund_id_missing","value":{"code":"refund_id_missing","type":"validation_error","message":"refund_id is missing in the request"}},"auth_mode_missing":{"title":"auth_mode_missing","value":{"code":"auth_mode_missing","type":"validation_error","message":"auth.mode is required"}},"auth_mode_invalid":{"title":"auth_mode_invalid","value":{"code":"auth_mode_invalid","type":"validation_error","message":"only OTP_VERIFICATION mode is supported"}},"auth_data_missing":{"title":"auth_data_missing","value":{"code":"auth_data_missing","type":"validation_error","message":"auth.data is required for OTP_VERIFICATION"}},"auth_notification_modes_missing":{"title":"auth_notification_modes_missing","value":{"code":"auth_notification_modes_missing","type":"validation_error","message":"auth.data.notification_modes must contain at least one channel for OTP_VERIFICATION"}},"auth_notification_modes_too_many":{"title":"auth_notification_modes_too_many","value":{"code":"auth_notification_modes_too_many","type":"validation_error","message":"auth.data.notification_modes must contain at most 5 entries"}},"auth_notification_modes_null":{"title":"auth_notification_modes_null","value":{"code":"auth_notification_modes_null","type":"validation_error","message":"auth.data.notification_modes cannot contain null entries"}},"auth_notification_modes_duplicate":{"title":"auth_notification_modes_duplicate","value":{"code":"auth_notification_modes_duplicate","type":"validation_error","message":"auth.data.notification_modes must not contain duplicates"}},"debit_id_missing":{"title":"debit_id_missing","value":{"code":"debit_id_missing","type":"validation_error","message":"debit_id is missing in the request"}},"user_id_missing":{"title":"user_id_missing","value":{"code":"user_id_missing","type":"validation_error","message":"user_id is missing in the request"}},"wallet_id_missing":{"title":"wallet_id_missing","value":{"code":"wallet_id_missing","type":"validation_error","message":"wallet_id is missing in the request"}},"cf_sub_wallet_id_missing":{"title":"cf_sub_wallet_id_missing","value":{"code":"cf_sub_wallet_id_missing","type":"validation_error","message":"cf_sub_wallet_id is missing in the request"}},"amount_missing":{"title":"amount_missing","value":{"code":"amount_missing","type":"validation_error","message":"amount is missing in the request"}},"userWalletMismatch":{"title":"userWalletMismatch","value":{"message":"wallet does not belong to provided user","code":"wallet_id_value_invalid","type":"validation_error"}},"userSubWalletMismatch":{"title":"userSubWalletMismatch","value":{"message":"sub-wallet does not belong to provided user","code":"sub_wallet_id_value_invalid","type":"validation_error"}},"cf_sub_wallet_id_invalid":{"title":"cf_sub_wallet_id_invalid","value":{"code":"cf_sub_wallet_id_invalid","type":"validation_error","message":"cf_sub_wallet_id is invalid in the request"}},"refund_id_value_invalid":{"title":"refund_id_value_invalid","value":{"code":"refund_id_value_invalid","type":"validation_error","message":"refund_id value is invalid in the request"}},"debit_id_value_invalid":{"title":"debit_id_value_invalid","value":{"code":"debit_id_value_invalid","type":"validation_error","message":"debit_id value is invalid in the request"}},"invalidAmount":{"title":"invalidAmount","value":{"code":"amount_value_invalid","type":"validation_error","message":"amount should be a positive number"}},"missingClientId":{"title":"missingClientId","value":{"message":"x-client-id is missing in the request","code":"x-client-id_missing","type":"validation_error"}},"missingClientSecret":{"title":"missingClientSecret","value":{"message":"x-client-secret is missing in the request","code":"x-client-secret_missing","type":"validation_error"}}},"exampleType":"examples"}},"exampleType":"examples"},"63ade25d-cfbb-4d81-9397-f9113e72a362":{"description":"Unauthorised - Invalid or missing authentication.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"A broad category of the error.","example":"internal_error","uniqueKey":"type","typeLabel":"string"},"code":{"type":"string","description":"A machine-readable error code specific to the issue.","example":"internal_server_error","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"A message providing more details about the error, dynamic based on the specific issue.","example":"Internal server error","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"invalidCredentials":{"title":"invalidCredentials","value":{"code":"authentication_failed","type":"authentication_error","message":"Invalid client ID and client secret combination"}}},"exampleType":"examples"}},"exampleType":"examples"},"a468b4e1-d04f-440d-9246-45484b720295":{"description":"Forbidden - Access denied.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"A broad category of the error.","example":"internal_error","uniqueKey":"type","typeLabel":"string"},"code":{"type":"string","description":"A machine-readable error code specific to the issue.","example":"internal_server_error","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"A message providing more details about the error, dynamic based on the specific issue.","example":"Internal server error","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"ipNotWhitelisted":{"title":"ipNotWhitelisted","value":{"code":"ip_not_whitelisted","type":"authentication_error","message":"Authentication error (IP not whitelisted)"}}},"exampleType":"examples"}},"exampleType":"examples"},"5338ba6a-bd7c-45ac-a195-ce089ef6b647":{"description":"Not found - Wallet, sub-wallet or debit transaction not found.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"A broad category of the error.","example":"internal_error","uniqueKey":"type","typeLabel":"string"},"code":{"type":"string","description":"A machine-readable error code specific to the issue.","example":"internal_server_error","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"A message providing more details about the error, dynamic based on the specific issue.","example":"Internal server error","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"walletNotFound":{"title":"walletNotFound","value":{"code":"wallet_id_not_found","type":"invalid_request_error","message":"The specified wallet_id does not exist"}},"subWalletNotFound":{"title":"subWalletNotFound","value":{"code":"sub_wallet_id_not_found","type":"invalid_request_error","message":"The specified cf_sub_wallet_id does not exist"}},"debitTransactionNotFound":{"title":"debitTransactionNotFound","value":{"code":"debit_id_not_found","type":"invalid_request_error","message":"The specified debit_id does not exist"}}},"exampleType":"examples"}},"exampleType":"examples"},"eff4e4db-962d-41d7-9295-14d5f57fbda5":{"description":"Conflict - Refund already processed or invalid refund request.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"A broad category of the error.","example":"internal_error","uniqueKey":"type","typeLabel":"string"},"code":{"type":"string","description":"A machine-readable error code specific to the issue.","example":"internal_server_error","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"A message providing more details about the error, dynamic based on the specific issue.","example":"Internal server error","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"duplicateRefund":{"title":"duplicateRefund","value":{"code":"refund_id_already_exists","type":"validation_error","message":"Refund request with the same refund_id has already been processed"}},"debitAlreadyRefunded":{"title":"debitAlreadyRefunded","value":{"code":"debit_already_refunded","type":"validation_error","message":"The specified debit transaction has already been fully refunded"}}},"exampleType":"examples"}},"exampleType":"examples"},"278d8459-a422-4f40-88c3-c76becff4e6c":{"description":"Unprocessable Entity - Business rule validation failed.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"A broad category of the error.","example":"internal_error","uniqueKey":"type","typeLabel":"string"},"code":{"type":"string","description":"A machine-readable error code specific to the issue.","example":"internal_server_error","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"A message providing more details about the error, dynamic based on the specific issue.","example":"Internal server error","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"refundAmountExceeded":{"title":"refundAmountExceeded","value":{"code":"refund_amount_exceeded","type":"validation_error","message":"Refund amount exceeds the available refund amount for this debit transaction"}},"invalidDebitStatus":{"title":"invalidDebitStatus","value":{"code":"invalid_debit_status","type":"validation_error","message":"Debit transaction must be in SUCCESS status to be eligible for refund"}}},"exampleType":"examples"}},"exampleType":"examples"},"9f5d469d-bde3-4324-b744-c258fde78a32":{"description":"Too Many Requests - Rate limit exceeded.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"A broad category of the error.","example":"internal_error","uniqueKey":"type","typeLabel":"string"},"code":{"type":"string","description":"A machine-readable error code specific to the issue.","example":"internal_server_error","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"A message providing more details about the error, dynamic based on the specific issue.","example":"Internal server error","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"rateLimitExceeded":{"title":"rateLimitExceeded","value":{"code":"rate_limit_exceeded","type":"rate_limit_error","message":"Rate limit exceeded. Please try again after some time"}}},"exampleType":"examples"}},"exampleType":"examples"},"90593838-8a8e-4cbc-8fc2-59d0940ecad8":{"description":"Internal server error.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"A broad category of the error.","example":"internal_error","uniqueKey":"type","typeLabel":"string"},"code":{"type":"string","description":"A machine-readable error code specific to the issue.","example":"internal_server_error","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"A message providing more details about the error, dynamic based on the specific issue.","example":"Internal server error","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"internalError":{"title":"internalError","value":{"code":"internal_server_error","type":"internal_error","message":"An internal error occurred while processing the request"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"529a052a-859a-4edc-a5ec-aab125417897":{"XClientID":{"type":"apiKey","in":"header","name":"x-client-id","description":"Your unique client identifier issued by Cashfree. You can find this in your [Merchant Dashboard](https://merchant.cashfree.com/merchants/landing?env=prod).","scopes":[],"schemeName":"XClientID"},"XClientSecret":{"type":"apiKey","in":"header","name":"x-client-secret","description":"The secret key associated with your client ID. Use this to authenticate your API requests. You can find this in your [Merchant Dashboard](https://merchant.cashfree.com/merchants/landing?env=prod).","scopes":[],"schemeName":"XClientSecret"}}},"servers":{"8cee66d8-0b87-41ef-ab76-cce054584ced":{"url":"https://api.cashfree.com","description":"Production server."},"f7bb6ace-47fa-4bed-99e0-0765bd0613d1":{"url":"https://sandbox.cashfree.com","description":"Sandbox server."}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-client-id","description":"Your unique client identifier issued by Cashfree. You can find this in your [Merchant Dashboard](https://merchant.cashfree.com/merchants/landing?env=prod).","scopes":[],"schemeName":"XClientID"},"schema":{"title":"x-client-id","type":"string","description":"Your unique client identifier issued by Cashfree. You can find this in your [Merchant Dashboard](https://merchant.cashfree.com/merchants/landing?env=prod).","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"XClientID","name":"x-client-id"},{"scheme":{"type":"apiKey","in":"header","name":"x-client-secret","description":"The secret key associated with your client ID. Use this to authenticate your API requests. You can find this in your [Merchant Dashboard](https://merchant.cashfree.com/merchants/landing?env=prod).","scopes":[],"schemeName":"XClientSecret"},"schema":{"title":"x-client-secret","type":"string","description":"The secret key associated with your client ID. Use this to authenticate your API requests. You can find this in your [Merchant Dashboard](https://merchant.cashfree.com/merchants/landing?env=prod).","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"XClientSecret","name":"x-client-secret"}],"title":"XClientID \u0026 XClientSecret"}]},"originalFileLocation":"openapi/ppi/ppi.yaml"},"subdomain":"cashfreepayments-d00050e9","siteName":"Cashfree Developer Documentation","title":"Refund Wallet API | Cashfree","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"manual"},"contextualStarterQuestions":[{"_id":"6acdfbdd5d3191a3cb2a8088","deploymentId":"66d5827f2de686bc28e7722b","questionText":"How do I refund a wallet debit?","status":"active","generatedBy":"contextual","path":"api-reference/prepaid-payment-instruments/wallet-management/refund-wallet","createdAt":"2026-10-13T09:37:33.895Z","updatedAt":"2026-10-13T09:37:33.895Z","__v":0},{"_id":"6acdfbdd5d3191a3cb2a808a","deploymentId":"66d5827f2de686bc28e7722b","questionText":"Can I refund more than debited?","status":"active","generatedBy":"contextual","path":"api-reference/prepaid-payment-instruments/wallet-management/refund-wallet","createdAt":"2026-10-13T09:37:33.895Z","updatedAt":"2026-10-13T09:37:33.895Z","__v":0},{"_id":"6acdfbdd5d3191a3cb2a8089","deploymentId":"66d5827f2de686bc28e7722b","questionText":"What refund statuses are possible?","status":"active","generatedBy":"contextual","path":"api-reference/prepaid-payment-instruments/wallet-management/refund-wallet","createdAt":"2026-10-13T09:37:33.895Z","updatedAt":"2026-10-13T09:37:33.895Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-13T09:37:26.198Z","originalFileLocation":"api-reference/prepaid-payment-instruments/wallet-management/refund-wallet.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Processes a refund for a previously debited transaction from a user\u0026#x27;s sub-wallet. The refund operation credits the amount back to the user\u0026#x27;s sub-wallet, effectively reversing a debit transaction: - GIFT_PPI: Credits amount back to gift wallet. - CLOSED_LOOP_PPI: Credits amount back to the respective sub-wallet. - STANDARD_PPI: Credits amount back to the respective sub-wallet. - Refund amount cannot exceed the original debit amount.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Cashfree Developer Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/cashfreepayments-d00050e9/MP8bOqKxh3TohVa1/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/cashfreepayments-d00050e9/MP8bOqKxh3TohVa1/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/cashfreepayments-d00050e9/MP8bOqKxh3TohVa1/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/cashfreepayments-d00050e9/MP8bOqKxh3TohVa1/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/cashfreepayments-d00050e9/MP8bOqKxh3TohVa1/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/cashfreepayments-d00050e9/MP8bOqKxh3TohVa1/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/cashfreepayments-d00050e9/MP8bOqKxh3TohVa1/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/cashfreepayments-d00050e9/MP8bOqKxh3TohVa1/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/cashfreepayments-d00050e9/MP8bOqKxh3TohVa1/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Refund Wallet API | Cashfree\">\u003cmeta data-mint-head property=\"og:description\" content=\"Refund a previous debit on a Cashfree PPI sub-wallet for a user, returning the amount back to gift, closed, or small PPI wallets with idempotent refund IDs.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Cashfree Developer Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.cashfree.com/docs/api-reference/prepaid-payment-instruments/wallet-management/refund-wallet\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cashfreepayments-d00050e9.mintlify.app/_mintlify/api/og/v2?division=Wallets\u0026amp;title=Refund+Debit+Wallet\u0026amp;description=Processes+a+refund+for+a+previously+debited+transaction+from+a+user%27s+sub-wallet.+The+refund+operation+%0Acredits+the+amount+back+to+the+user%27s+sub-wallet%2C+effect\u0026amp;theme=2adde9c6a50d91a75e16dbfe\u0026amp;signature=15d923d664012fb5d84f54080f0d2db06132cdc4d05b4774d01583f3e196c699\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Refund Wallet API | Cashfree\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Refund a previous debit on a Cashfree PPI sub-wallet for a user, returning the amount back to gift, closed, or small PPI wallets with idempotent refund IDs.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cashfreepayments-d00050e9.mintlify.app/_mintlify/api/og/v2?division=Wallets\u0026amp;title=Refund+Debit+Wallet\u0026amp;description=Processes+a+refund+for+a+previously+debited+transaction+from+a+user%27s+sub-wallet.+The+refund+operation+%0Acredits+the+amount+back+to+the+user%27s+sub-wallet%2C+effect\u0026amp;theme=2adde9c6a50d91a75e16dbfe\u0026amp;signature=15d923d664012fb5d84f54080f0d2db06132cdc4d05b4774d01583f3e196c699\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/cashfreepayments-d00050e9/MP8bOqKxh3TohVa1/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Cashfree Developer Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6930ca\">\u003cmeta data-mint-head name=\"google-site-verification\" content=\"T69Ao_T0Ps8pkRbluKzW179qvd_aCsWISCApeSsIhRU\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.cashfree.com/docs/api-reference/prepaid-payment-instruments/wallet-management/refund-wallet\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/prepaid-payment-instruments/wallet-management/refund-wallet.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.cashfree.com/#organization\",\"name\":\"Cashfree Developer Documentation\",\"url\":\"https://www.cashfree.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/cashfreepayments-d00050e9/6mQw7is1us8FhXrb/static/logo/light.svg?fit=max\u0026auto=format\u0026n=6mQw7is1us8FhXrb\u0026q=85\u0026s=8a2837083063d8a01e0be6b454a1baf1\"}},{\"@type\":\"WebSite\",\"@id\":\"https://www.cashfree.com/docs#website\",\"name\":\"Cashfree Developer Documentation\",\"url\":\"https://www.cashfree.com/docs\",\"publisher\":{\"@id\":\"https://www.cashfree.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.cashfree.com/docs/api-reference/prepaid-payment-instruments/wallet-management/refund-wallet#webpage\",\"url\":\"https://www.cashfree.com/docs/api-reference/prepaid-payment-instruments/wallet-management/refund-wallet\",\"name\":\"Refund Debit Wallet\",\"description\":\"Processes a refund for a previously debited transaction from a user's sub-wallet. The refund operation credits the amount back to the user's sub-wallet, effectively reversing a debit transaction: - GIFT_PPI: Credits amount back to gift wallet. - CLOSED_LOOP_PPI: Credits amount back to the respective sub-wallet. - STANDARD_PPI: Credits amount back to the respective sub-wallet. - Refund amount cannot exceed the original debit amount.\",\"dateModified\":\"2026-10-13T09:37:26.198Z\",\"isPartOf\":{\"@id\":\"https://www.cashfree.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://www.cashfree.com/docs/api-reference/prepaid-payment-instruments/wallet-management/refund-wallet#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.cashfree.com/docs/api-reference/prepaid-payment-instruments/wallet-management/refund-wallet#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Prepaid Payment Instrument APIs\",\"item\":\"https://www.cashfree.com/docs/api-reference/prepaid-payment-instruments/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Wallets\",\"item\":\"https://www.cashfree.com/docs/api-reference/prepaid-payment-instruments/wallet-management/create-wallet\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Refund Debit Wallet\",\"item\":\"https://www.cashfree.com/docs/api-reference/prepaid-payment-instruments/wallet-management/refund-wallet\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://www.cashfree.com/docs/api-reference/prepaid-payment-instruments/wallet-management/refund-wallet#apireference\",\"headline\":\"Refund Debit Wallet\",\"name\":\"Refund Debit Wallet\",\"description\":\"Processes a refund for a previously debited transaction from a user's sub-wallet. The refund operation credits the amount back to the user's sub-wallet, effectively reversing a debit transaction: - GIFT_PPI: Credits amount back to gift wallet. - CLOSED_LOOP_PPI: Credits amount back to the respective sub-wallet. - STANDARD_PPI: Credits amount back to the respective sub-wallet. - Refund amount cannot exceed the original debit amount.\",\"url\":\"https://www.cashfree.com/docs/api-reference/prepaid-payment-instruments/wallet-management/refund-wallet\",\"mainEntityOfPage\":{\"@id\":\"https://www.cashfree.com/docs/api-reference/prepaid-payment-instruments/wallet-management/refund-wallet#webpage\"},\"dateModified\":\"2026-10-13T09:37:26.198Z\",\"keywords\":\"wallet management, PPI, API reference, wallet operations, webhook integration, refund processing\",\"publisher\":{\"@id\":\"https://www.cashfree.com/#organization\"},\"isPartOf\":{\"@id\":\"https://www.cashfree.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Cashfree Developer Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Cashfree Developer Documentation","nav":{"global":null,"tabs":[{"tab":"Payments","pages":[{"title":"Payments","href":"/payments/introduction"}]},{"tab":"Payouts","pages":[{"title":"Payouts","href":"/payouts/payouts/introduction"}]},{"tab":"Secure ID","pages":[{"title":"Secure ID","href":"/secure-id/introduction"}]},{"tab":"Partners and Platforms","pages":[{"title":"Partners and Platforms","href":"/partners/introduction"}]},{"tab":"Payments APIs","hidden":true,"pages":[{"title":"Payments APIs","href":"/api-reference/payments/overview"}]},{"tab":"Payouts APIs","hidden":true,"pages":[{"title":"Payouts APIs","href":"/api-reference/payouts/overview"}]},{"tab":"Secure ID APIs","hidden":true,"pages":[{"title":"Secure ID APIs","href":"/api-reference/vrs/overview"}]},{"tab":"Additional APIs","hidden":true,"groups":[{"group":"Prepaid Payment Instrument APIs","pages":[{"title":"Overview","sidebarTitle":"Overview","description":"Integrate and manage PPI APIs for wallet creation, balance checks, and transaction management in digital payments.","href":"/api-reference/prepaid-payment-instruments/overview"},{"title":"Getting Started","sidebarTitle":"Getting Started","description":"Get started with the Cashfree PPI APIs by reviewing endpoints, generating API keys, configuring webhooks, and contacting Cashfree for production access.","href":"/api-reference/prepaid-payment-instruments/getting-started"},{"title":"PPI Webhooks","sidebarTitle":"Webhooks","icon":"webhook","description":"Index of prepaid instrument (PPI) wallet webhooks, including credit events, wallet notifications, and HMAC verification for JSON payloads.","href":"/api-reference/prepaid-payment-instruments/webhooks-overview"},{"title":"Webhook Signature Verification","sidebarTitle":"Webhook Signature Verification","description":"Verify Cashfree PPI webhook signatures using your client secret and the supplied timestamp header to confirm authenticity before processing wallet events.","icon":"webhook","iconType":"solid","href":"/api-reference/prepaid-payment-instruments/webhook-signature-verification"},{"group":"Users","pages":[{"openapi":"openapi/ppi/ppi.yaml post /ppi/user","title":"Create User","description":"Creates a new user in the PPI system with the provided personal information. This endpoint enables merchants \nto onboard new users who can then be associated with wallets or cards.\n","href":"/api-reference/prepaid-payment-instruments/user-management/create-ppi-user"},{"openapi":"openapi/ppi/ppi.yaml post /ppi/user/details","title":"Get User Details","description":"Retrieves details of an existing user in the PPI system based on the provided user ID.\nReturns the user's personal information and account status.\n","href":"/api-reference/prepaid-payment-instruments/user-management/get-ppi-user-details"},{"openapi":"openapi/ppi/ppi.yaml post /ppi/user/update","title":"Update User","description":"Updates user details in the PPI system. Only the fields provided in the request body will be updated; \nall other user fields remain unchanged.\n","href":"/api-reference/prepaid-payment-instruments/user-management/update-ppi-user"}]},{"group":"User KYC","pages":[{"openapi":"openapi/ppi/ppi.yaml post /ppi/kyc/vkyc","title":"Initiate Video KYC","description":"Initiates Video KYC for a user and generates a VKYC link.\nThis endpoint creates a VKYC verification request and sends the notification across\nthe requested channels.\n","href":"/api-reference/prepaid-payment-instruments/kyc-verification/video-kyc-verification"},{"openapi":"openapi/ppi/ppi.yaml post /ppi/kyc/vkyc/details","title":"Get Video KYC Details","description":"Retrieves the current status and other details of a Video KYC verification request, using the `user_id` and `verification_id` you supplied while initiating the request.\n","href":"/api-reference/prepaid-payment-instruments/kyc-verification/get-video-kyc-status"},{"title":"Video KYC Webhooks","sidebarTitle":"Video KYC Webhooks","description":"Configure Video KYC webhooks to receive real-time notifications when VKYC verification status changes in your PPI integration.","icon":"webhook","href":"/api-reference/prepaid-payment-instruments/kyc-verification/webhook-vkyc"},{"title":"VKYC Status and Status-Code Mapping","sidebarTitle":"VKYC Status Mapping","description":"Reference for PPI Video KYC status and status-code combinations returned by VKYC APIs and webhooks, with recommended actions for each scenario.","icon":"list","href":"/api-reference/prepaid-payment-instruments/kyc-verification/vkyc-status-descriptions"}]},{"group":"Wallets","pages":[{"openapi":"openapi/ppi/ppi.yaml post /ppi/wallet","title":"Create Wallet","description":"Creates a primary wallet and the associated sub-wallets for a user based on the specified program ID. The sub-wallet types, such as meal, fuel, and gift wallets, are determined by the program configuration. If the program is linked to a card program, a card is automatically created and associated with the wallet.\n","href":"/api-reference/prepaid-payment-instruments/wallet-management/create-wallet"},{"openapi":"openapi/ppi/ppi.yaml post /ppi/wallet/credit","title":"Credit Wallet","description":"Credits funds to a specified user sub-wallet, adding money to their available balance. Supports various sub-wallet types with behaviour determined by wallet configuration.\n","href":"/api-reference/prepaid-payment-instruments/wallet-management/credit-wallet"},{"openapi":"openapi/ppi/ppi.yaml post /ppi/wallet/debit","title":"Debit Wallet","description":"Debits funds from a user's sub-wallet for purchases. The behaviour varies based on the sub-wallet type:\n\n- `GIFT_PPI`: Identifies the applicable gift card and debits the amount transactionally from both the gift card and the gift wallet. This debit completes in a single step and does not require OTP verification.\n\n- `CLOSED_LOOP_PPI`: Performs ledger maintenance only. No actual money movement occurs.\n\n- `SMALL_PPI` and `FULL_KYC_PPI`: The debit uses a two-step flow that requires OTP verification.\n 1. In your request, include the `auth` object with `mode` set to `OTP_VERIFICATION` and specify at least one channel in `auth.data.notification_modes`.\n 2. Cashfree records the request, generates an OTP, and returns a response with `status: PENDING` and `status_code: OTP_GENERATED`.\n 3. Call the [Verify Debit Wallet](/api-reference/prepaid-payment-instruments/wallet-management/verify-debit-wallet) API with the `debit_id` and OTP to complete the debit. On successful verification, the status moves to `SUCCESS`.\n","href":"/api-reference/prepaid-payment-instruments/wallet-management/debit-wallet"},{"openapi":"openapi/ppi/ppi.yaml post /ppi/wallet/debit/verify","title":"Verify Debit Wallet","description":"Completes a debit transaction that requires OTP verification for SMALL_PPI or FULL_KYC_PPI sub-wallets. Use this endpoint after the [Debit Wallet API](/api-reference/prepaid-payment-instruments/wallet-management/debit-wallet) returns status_code: OTP_GENERATED. Pass the debit_id from that response along with the OTP received by the customer through the channels configured in auth.data.notification_modes. On successful verification, the API returns status: SUCCESS and status_code: SUCCESS, and the debit transaction is completed. Each debit_id supports a maximum of three OTP verification attempts.\n","href":"/api-reference/prepaid-payment-instruments/wallet-management/verify-debit-wallet"},{"title":"Debit Status and Status-Code Mapping","sidebarTitle":"Debit Status Mapping","description":"Understand debit status and status_code combinations returned by PPI Debit Wallet and Verify Debit Wallet APIs, with recommended actions for each scenario.","icon":"list","href":"/api-reference/prepaid-payment-instruments/wallet-management/debit-status-descriptions"},{"openapi":"openapi/ppi/ppi.yaml post /ppi/wallet/refund","title":"Refund Debit Wallet","href":"/api-reference/prepaid-payment-instruments/wallet-management/refund-wallet"},{"openapi":"openapi/ppi/ppi.yaml post /ppi/wallet/closure","title":"Close Wallet","description":"Closes a user's sub-wallet, making it inactive for future transactions. The closure process may require approval \ndepending on the sub-wallet type and business rules:\n- Any remaining balance is handled according to the configured closure policy.\n","href":"/api-reference/prepaid-payment-instruments/wallet-management/close-wallet"},{"openapi":"openapi/ppi/ppi.yaml post /ppi/wallet/eligibility","title":"Check Transaction Eligibility","description":"Validates a user’s eligibility to perform credit or debit transactions on a sub-wallet based on compliance rules.\n","href":"/api-reference/prepaid-payment-instruments/wallet-management/check-wallet-eligibility"},{"openapi":"openapi/ppi/ppi.yaml post /ppi/wallet/details","title":"Get Wallet Details","description":"Use this API to fetch wallet details and associated sub-wallet balances for a specified user. You can query by wallet ID, card ID, or a combination of either with a sub-wallet ID.\n","href":"/api-reference/prepaid-payment-instruments/wallet-management/get-wallet-details"},{"openapi":"openapi/ppi/ppi.yaml post /ppi/wallet/statement","title":"Get Wallet Statement","description":"Retrieves a paginated wallet statement for a user, including both credit and debit transactions for a specific sub-wallet.\n- The statement can be fetched for a specified date range. If no range is provided, the API returns transactions from the last 6 months.\n- The `from` date **cannot** be earlier than 1 year from the current date.\n- Pagination is handled using the `after` and `before` parameters, which define the `cf_statement_id` boundary for retrieving the next or previous set of records.\n- Only **one** of `after` or `before` can be passed at a time.\n","href":"/api-reference/prepaid-payment-instruments/wallet-management/get-wallet-statement"},{"title":"Wallet Webhooks","sidebarTitle":"Wallet Webhooks","description":"Configure Cashfree wallet webhooks to receive credit, debit, and refund event notifications in your prepaid instrument integration.","icon":"webhook","href":"/api-reference/prepaid-payment-instruments/wallet-management/webhook-wallet"},{"title":"Card Webhooks","sidebarTitle":"Card Webhooks","description":"Configure Cashfree Card webhooks to receive event-based notifications whenever card transactions, refunds or card status updates occur in your PPI integration.","icon":"webhook","href":"/api-reference/prepaid-payment-instruments/wallet-management/webhook-card"}]},{"group":"Beneficiaries","pages":[{"openapi":"openapi/ppi/ppi.yaml post /ppi/user/bene","title":"Create Beneficiary","description":"Creates a new beneficiary to user's Full KYC wallet by providing bank account number or VPA and other required details. Ensure the successful creation of the beneficiary before initiating a fund transfer.\n","href":"/api-reference/prepaid-payment-instruments/user-beneficiary/create-user-bene"},{"openapi":"openapi/ppi/ppi.yaml post /ppi/user/bene/details","title":"Get Beneficiary Details","description":"Retrieves details of an existing beneficiary of user in the PPI system.\n- If `bene_instrument_id` is provided, the response includes details for the specified instrument only.\n- If `bene_instrument_id` is not provided, the response includes details for all `bene_instruments` linked to the given `bene_id`.\n","href":"/api-reference/prepaid-payment-instruments/user-beneficiary/get-user-bene"},{"openapi":"openapi/ppi/ppi.yaml delete /ppi/user/bene/remove","title":"Remove Beneficiary","description":"Removes an existing beneficiary of the user in the PPI system.\n- If `bene_instrument_id` is provided, only the specified instrument is removed from the beneficiary.\n- If `bene_instrument_id` is not provided, the entire beneficiary along with all its `bene_instruments` is removed.\n","href":"/api-reference/prepaid-payment-instruments/user-beneficiary/remove-user-bene"}]},{"group":"Transfers","pages":[{"openapi":"openapi/ppi/ppi.yaml post /ppi/wallet/transfer","title":"Initiate Transfer","description":"Initiates a fund transfer from a user's FULL_KYC_PPI sub-wallet to a beneficiary account. Supports multiple transfer modes including RTGS, NEFT, IMPS, and UPI. It is an async request by default.\n\nThe beneficiary can be specified using either:\n- Existing beneficiary ID and instrument ID\n- New instrument details (bank account or UPI)\n","href":"/api-reference/prepaid-payment-instruments/transfers/initiate-transfer"},{"openapi":"openapi/ppi/ppi.yaml post /ppi/wallet/transfer/verify","title":"Verify Transfer","description":"Submits the OTP for a wallet transfer that was initiated with mode `OTP_VERIFICATION`. \nUse **Get Transfer Details** or webhooks for terminal status.\n","href":"/api-reference/prepaid-payment-instruments/transfers/verify-transfer"},{"openapi":"openapi/ppi/ppi.yaml post /ppi/wallet/transfer/details","title":"Get Transfer Details","description":"Retrieves detailed information about a specific transfer transaction, including current status, beneficiary details.\n\nThis endpoint provides comprehensive transfer information including:\n- Current transfer status and bank status\n- Beneficiary and instrument details\n- Transaction timestamps and reference numbers if transaction successfully completed\n- Sub-wallet balance after the transfer\n","href":"/api-reference/prepaid-payment-instruments/transfers/get-transfer-details"},{"title":"Transfer Webhook Events","sidebarTitle":"Transfer Webhooks","description":"Configure Transfer webhooks to receive event-based notifications whenever a wallet transfer changes status in your PPI integration.","icon":"webhook","href":"/api-reference/prepaid-payment-instruments/transfers/webhook-transfer"}]}]}]},{"tab":"Partners APIs","hidden":true,"pages":[{"title":"Partners APIs","href":"/api-reference/platforms/overview"}]},{"tab":"Additional APIs","hidden":true,"pages":[{"title":"Additional APIs","href":"/api-reference/other-apis/bbps/overview"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/overview"}]},{"tab":"AI Stack","pages":[{"title":"AI Stack","href":"/tools-ai/overview"}]},{"tab":"Help Center","pages":[{"title":"Help Center","href":"/help/overview"}]}]},"basePath":"","title":"Refund Wallet API | Cashfree","buildId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","deploymentId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-D_4Sesi0.js","utils-DRHeK26p.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C6d-DUc2.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dex7slho.js","snippetPresets-BcCEBp0Z.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CufowNTX.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-A4lJSCIe.js","shallow-DqoHP7zn.js","getApiPlaygroundDisplay-Cku8AmtL.js","CodeSnippet-CtHQbNqc.js","CodeSnippets-CGo5Cslf.js","Page-BoJxk0m8.js","getPastedJson-M-bKdue4.js","icon-DEqCU4st.js","MethodPill-DnfSSXiJ.js","DuplicateIcon-BHu2PE8M.js","createIcon-BPsE5X7c.js","DynamicMarkdown-Dnt6YhtR.js","SectionHeading-6CtFWqMQ.js","axios-vUo_bRtp.js","Markdown-BoKe_1fI.js","clsx-DM5-sUNJ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CkIdkovK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-B3e6Nh_r.js"]}