---
page_title: Topup Wallet
product: API Reference
page_source: https://juspay.io/in/docs/api-reference/docs/express-checkout/topup-wallet
openapi: https://juspay.io/in/docs/api/swagger?document=https%3A%2F%2Fjuspay.io%2Fin%2Fdocs%2Fapi-reference%2Fdocs%2Fexpress-checkout%2Ftopup-wallet
llms_txt: https://juspay.io/in/docs/llms.txt
product_llms_txt: https://juspay.io/in/docs/api-reference/llms.txt
---

## API Version: default


# Topup Wallet



Topup wallet API can be used to add money to the customer wallet. This API is applicable only for **linked**  wallets. 

> **Note**
> Currently, the supported options for wallet Topup API only includes **Paytm** , **AmazonPay** , **Freecharge**  Wallet 
> 
> In the case of other wallets we support  [Direct Debit](https://docs.juspay.in/api-reference/docs/express-checkout/wallet-direct-debit) Wallet Direct Debit API that efficiently manages both the top-up and wallet debit.
> 
> Both Topup and Wallet [Direct Debit](https://docs.juspay.in/api-reference/docs/express-checkout/wallet-direct-debit) APIs is supported by **Paytm** , **AmazonPay** , and **Freecharge**  wallets.

## Endpoints:
- Sandbox: https://sandbox.juspay.in/wallets/{wallet_id}

- Production: https://api.juspay.in/wallets/{wallet_id}/topup

## Request Type: 
POST

## Authorization:

#### Basic Auth:
Consists of two parts.

* Username: API Key obtained from Juspay dashboard
* Password: Empty string

Example:- Basic MUQ2QUxxxxxxxxxxxxU5QTIxQzNFNTQwNkFDMEZCOg==
- Tags: String, Mandatory
## Headers:

#### Content-Type:
application/x-www-form-urlencoded
- Tags: String, Mandatory

#### x-routing-id:
We recommend passing the customer_id as the x-routing-id. If the customer is checking out as a guest, you can pass an alternative ID that helps track the payment session lifecycle. For example, this could be an Order ID or Cart ID.

> **Warning**
> This ID is associated with the customer. It plays a key role in ensuring consistency and maintaining connections across different systems. If you fail to pass the same x-routing-id for the same customer in all related API calls, it could lead to issues with API functionality. Therefore, it’s crucial that you use the same x-routing-id for all requests tied to the same customer.


- Value: customer_1122
- Tags: String, Required
## Sample Code Snippets:
### Sample Request:

#### Request Code Snippet:

```request
curl -X POST https://api.juspay.in/wallets/$wallet_id/topup \
-u your_api_key: \
-H 'x-routing-id: customer_1122'\
-d "amount=1.00"
-d "topup_txn_id=topup_sdj4kjr8"
-d "return_url=https://shop.merchant.com/payments/handleResponse"

```

### Sample Response:

#### Response:
```json
{
  "topup_txn_id": "topup_sdj4kjr8",
  "wallet_id": "wlt_q23xzki3pazgtezo",
  "status": "PENDING",
  "payment_url": "https://api.juspay.in/wallets/topup/start/wtpup_g6kasufbfsre1ntb"
}
```

## Path Parameters:

#### wallet_id:
Wallet Id of the wallet
- Tags: String, Mandatory
## Body Parameters:
### Parameters:

#### amount:
- Description: Amount that has to be added to the wallet
- Tags: number, Required

#### topup_txn_id:
- Description: Merchant transaction id for topup request
- Tags: string, Required

#### return_url:
- Description: A fully qualified URL such as [https://shop.merchant.com/](https://shop.merchant.com/) to which the customer will be redirected after payment completion. This URL shouldn’t contain any query parameters. This URL takes higher precedence over the common return URL configured in your account settings.
- Tags: string
## API Responses:
### 200:

#### topup_txn_id:
- Description: topup_sdj4kjr8
- Tags: string

#### wallet_id:
- Description: wlt_q23xzki3pazgtezo
- Tags: string

#### status:
- Description: PENDING
- Tags: string

#### payment_url:
- Description: https://api.juspay.in/wallets/topup/start/wtpup_g6kasufbfsre1ntb
- Tags: string


---

## See Also

- [Update Mobile Number](https://juspay.io/in/docs/api-reference/docs/express-checkout/update-mobile-number)
- [Eligibility API](https://juspay.io/in/docs/api-reference/docs/express-checkout/eligibility-api)
