> ## Documentation Index
> Fetch the complete documentation index at: https://www.cashfree.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Integrate and manage PPI APIs for wallet creation, balance checks, and transaction management in digital payments.

Use the Prepaid Payment Instrument (PPI) APIs to create and manage digital wallets, sub-wallets, gift cards, and prepaid cards for your users. They enable secure fund transactions, ensure compliance with RBI guidelines, and support integration across multiple business use cases.

## Key features

The key features offered by Cashfree's PPI APIs are:

* **Create and manage users, wallets, and sub-wallets:** Onboard users and create wallets or sub-wallets with program-based configuration, and update them as needed.
* **Fund transfers:** Handle credits, debits, and refunds securely with duplicate-transaction protection.
* **RBI-compliant KYC and rules:** Enforce KYC verification, balance limits, and transaction rules in line with RBI guidelines.
* **Wallet balances:** Retrieve total and sub-wallet balances in real time.

## Program structure

A Program defines the wallet type and rules for your integration.

* **Definition:** A Program specifies the type of wallet or instrument you can offer.
* **Functions:** It lets you configure limits, validity, and usage rules.
* **Sub-programs:** A Program can include multiple categories, such as meal, reward, or gift wallets, to support different use cases.

For example, the main program may have an overall load limit of ₹50,000 per month. Within it, the Meal sub-wallet could allow only ₹2,000 per month and be restricted to food merchants.

<Tabs>
  <Tab title="User Management and KYC">
    <div class="row relative lowmhr">
      <div class="col-md-6">
        <div class="">
          <h4 class="text-gray-800 semibold dark:text-gray-500 pb-4">User lifecycle</h4>

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/prepaid-payment-instruments/user-management/create-ppi-user" class="text-cf bold">Create PPI User</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Create a new user in the PPI system with personal information required for wallet operations.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/prepaid-payment-instruments/user-management/get-ppi-user-details" class="text-cf bold">Get PPI User Details</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Retrieve details of an existing user based on the user ID.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/prepaid-payment-instruments/user-management/update-ppi-user" class="text-cf bold">Update PPI User</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Update an existing PPI user's information.
              </p>
            </div>
          </div>
        </div>
      </div>

      <div class="col-md-6">
        <div class="">
          <h4 class="text-gray-800 semibold dark:text-gray-500 pb-4">Verification flows</h4>

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/prepaid-payment-instruments/kyc-verification/min-kyc-verification" class="text-cf bold">Min KYC Verification</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Perform minimum KYC verification for wallet users as per RBI guidelines.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/prepaid-payment-instruments/kyc-verification/send-otp" class="text-cf bold">Send OTP</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Send an OTP to the user's registered mobile number for verification.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/prepaid-payment-instruments/kyc-verification/verify-otp" class="text-cf bold">Verify OTP</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Verify the OTP submitted by the user to complete the verification flow.
              </p>
            </div>
          </div>
        </div>
      </div>
    </div>
  </Tab>

  <Tab title="Wallet Management">
    <div class="row relative lowmhr">
      <div class="col-md-6">
        <div class="">
          <h4 class="text-gray-800 semibold dark:text-gray-500 pb-4">Wallet lifecycle</h4>

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/prepaid-payment-instruments/wallet-management/create-wallet" class="text-cf bold">Create Wallet</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Create a wallet and associated sub-wallets based on a program configuration.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/prepaid-payment-instruments/wallet-management/get-wallet-details" class="text-cf bold">Get Wallet Details</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Fetch total wallet and sub-wallet balances with optional filtering by specific sub-wallet.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/prepaid-payment-instruments/wallet-management/check-wallet-eligibility" class="text-cf bold">Check Wallet Eligibility</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Check if a user is eligible for wallet creation under a program.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/prepaid-payment-instruments/wallet-management/close-wallet" class="text-cf bold">Close Wallet</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Close a specific sub-wallet.
              </p>
            </div>
          </div>
        </div>
      </div>

      <div class="col-md-6">
        <div class="">
          <h4 class="text-gray-800 semibold dark:text-gray-500 pb-4">Fund operations</h4>

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/prepaid-payment-instruments/wallet-management/credit-wallet" class="text-cf bold">Credit Wallet</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Credit funds to a user's sub-wallet and issue gift codes for gift wallets.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/prepaid-payment-instruments/wallet-management/debit-wallet" class="text-cf bold">Debit Wallet</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Debit an amount from a user's sub-wallet. Behaviour varies depending on the sub-wallet type.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/prepaid-payment-instruments/wallet-management/refund-wallet" class="text-cf bold">Refund Wallet</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Process refunds for previously debited transactions, crediting the amount back to the user's sub-wallet.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/prepaid-payment-instruments/wallet-management/get-wallet-statement" class="text-cf bold">Get Wallet Statement</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Fetch statement details for a specific sub-wallet.
              </p>
            </div>
          </div>
        </div>
      </div>
    </div>
  </Tab>
</Tabs>

## Getting started

Use the following resources to begin implementing PPI APIs:

<CardGroup cols={2}>
  <Card title="API setup" href="/docs/api-reference/prepaid-payment-instruments/getting-started" icon="rocket">
    Base URLs, API keys, and steps to run your first PPI API request
  </Card>

  <Card title="Secure your integration" href="/docs/api-reference/authentication" icon="key">
    Authenticate requests and keep credentials safe with Client ID and Client Secret
  </Card>
</CardGroup>
