> ## 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

> Use Cashfree Prepaid Payment Instrument (PPI) APIs to issue digital wallets, gift cards, and prepaid cards while staying compliant with RBI PPI guidelines.

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

Cashfree sets up a Program based on your business needs and the wallet restrictions you define.

* **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/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/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/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/api-reference/prepaid-payment-instruments/kyc-verification/video-kyc-verification" class="text-cf bold">Full KYC Verification</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Perform Full KYC verification for wallet users as per RBI guidelines.
              </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/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/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/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/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/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/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/api-reference/prepaid-payment-instruments/wallet-management/refund-wallet" class="text-cf bold">Refund Debit 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/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="/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="/api-reference/authentication" icon="key">
    Authenticate requests and keep credentials safe with Client ID and Client Secret
  </Card>
</CardGroup>
