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

The PPI APIs let you create and manage digital wallets, sub-wallets, gift cards, and prepaid cards for your users. These APIs enable secure fund transactions, ensure compliance with RBI guidelines, and support integration across multiple business use cases.

## Key features

The PPI APIs support the following capabilities:

* **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.

## PPI APIs

The following APIs are grouped by function to help you find what you need quickly.

### Users

Use these APIs to create and manage PPI users.

| API                                                                                                     | Description                                                                                   |
| :------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------- |
| [Create PPI User](/api-reference/prepaid-payment-instruments/user-management/create-ppi-user)           | Create a new user in the PPI system with personal information required for wallet operations. |
| [Get PPI User Details](/api-reference/prepaid-payment-instruments/user-management/get-ppi-user-details) | Retrieve details of an existing user based on the user ID.                                    |
| [Update PPI User](/api-reference/prepaid-payment-instruments/user-management/update-ppi-user)           | Update an existing PPI user's information.                                                    |

### User KYC

Use these APIs to verify users and complete KYC requirements.

| API                                                                                                                         | Description                                                                  |
| :-------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- |
| [Initiate Video KYC](/api-reference/prepaid-payment-instruments/kyc-verification/video-kyc-verification)                    | Initiate Video KYC for a user and generate a VKYC link.                      |
| [Get Video KYC Status](/api-reference/prepaid-payment-instruments/kyc-verification/get-video-kyc-status)                    | Retrieve the current status and details of a Video KYC verification request. |
| [Video KYC Webhooks](/api-reference/prepaid-payment-instruments/kyc-verification/webhook-vkyc)                              | Receive webhook notifications for Video KYC status updates.                  |
| [VKYC Status and Status-Code Mapping](/api-reference/prepaid-payment-instruments/kyc-verification/vkyc-status-descriptions) | View status and status-code values returned during the Video KYC flow.       |

### Wallets

Use these APIs to create wallets, manage balances, and process credits, debits, and refunds.

| API                                                                                                                            | Description                                                                                   |
| :----------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------- |
| [Create Wallet](/api-reference/prepaid-payment-instruments/wallet-management/create-wallet)                                    | Create a wallet and associated sub-wallets based on a program configuration.                  |
| [Credit Wallet](/api-reference/prepaid-payment-instruments/wallet-management/credit-wallet)                                    | Credit funds to a user's sub-wallet and issue gift codes for gift wallets.                    |
| [Debit Wallet](/api-reference/prepaid-payment-instruments/wallet-management/debit-wallet)                                      | Debit an amount from a user's sub-wallet. Behaviour varies depending on the sub-wallet type.  |
| [Verify Wallet Debit](/api-reference/prepaid-payment-instruments/wallet-management/verify-debit-wallet)                        | Complete a debit transaction that requires OTP verification.                                  |
| [Debit Status and Status-Code Mapping](/api-reference/prepaid-payment-instruments/wallet-management/debit-status-descriptions) | View `status` and `status_code` values returned during the wallet debit flow.                 |
| [Refund Debit Wallet](/api-reference/prepaid-payment-instruments/wallet-management/refund-wallet)                              | Process refunds for previously debited transactions.                                          |
| [Close Wallet](/api-reference/prepaid-payment-instruments/wallet-management/close-wallet)                                      | Close a specific sub-wallet.                                                                  |
| [Check Wallet Eligibility](/api-reference/prepaid-payment-instruments/wallet-management/check-wallet-eligibility)              | Check if a user is eligible for wallet creation under a program.                              |
| [Get Wallet Details](/api-reference/prepaid-payment-instruments/wallet-management/get-wallet-details)                          | Retrieve total wallet and sub-wallet balances with optional filtering by specific sub-wallet. |
| [Get Wallet Statement](/api-reference/prepaid-payment-instruments/wallet-management/get-wallet-statement)                      | Retrieve statement details for a specific sub-wallet.                                         |
| [Wallet Webhooks](/api-reference/prepaid-payment-instruments/wallet-management/webhook-wallet)                                 | Receive webhook notifications for wallet events.                                              |

### Beneficiaries

Use these APIs to add, retrieve, and remove beneficiaries for wallet transfers.

| API                                                                                                | Description                                                                                          |
| :------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------- |
| [Create Beneficiary](/api-reference/prepaid-payment-instruments/user-beneficiary/create-user-bene) | Save a beneficiary for a PPI wallet user with bank account, UPI VPA, or other supported instruments. |
| [Get Beneficiary](/api-reference/prepaid-payment-instruments/user-beneficiary/get-user-bene)       | Retrieve beneficiary details for a user.                                                             |
| [Remove Beneficiary](/api-reference/prepaid-payment-instruments/user-beneficiary/remove-user-bene) | Remove a saved beneficiary for a user.                                                               |

### Transfers

Use these APIs to initiate wallet transfers and track their status.

| API                                                                                               | Description                                                                                      |
| :------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------- |
| [Initiate Transfer](/api-reference/prepaid-payment-instruments/transfers/initiate-transfer)       | Initiate a wallet transfer to a beneficiary using bank account, UPI VPA, or saved instrument ID. |
| [Verify Transfer](/api-reference/prepaid-payment-instruments/transfers/verify-transfer)           | Submit the OTP for a transfer initiated with OTP verification.                                   |
| [Get Transfer Details](/api-reference/prepaid-payment-instruments/transfers/get-transfer-details) | Retrieve the status and details of a wallet transfer.                                            |
| [Transfer Webhook Events](/api-reference/prepaid-payment-instruments/transfers/webhook-transfer)  | Receive webhook notifications for transfer status updates.                                       |

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