token_id using the Dashboard or the APIs given below.
Know about about Tokens.
2.1. Fetch Token by Payment ID
The following endpoint fetches thetoken_id using a payment_id.
/payments/:id
Curl
curl -u : \
-X GET https://api.razorpay.com/v1/payments/pay_1Aa00000000002
```java: Java
RazorpayClient razorpay = new RazorpayClient("[YOUR_KEY_ID]", "[YOUR_KEY_SECRET]");
String paymentId = "pay_1Aa00000000002";
Payment payment = razorpay.payments.fetch(paymentId)
```php: PHP
$api = new Api($key_id, $secret);
$api->payment->fetch($paymentId);
```javascript: Node.js
var instance = new Razorpay({ key_id: 'YOUR_KEY_ID', key_secret: 'YOUR_SECRET' })
instance.payments.fetch(paymentId)
```python: Python
client = razorpay.Client(auth=("YOUR_ID", "YOUR_SECRET"))
client.payment.fetch(paymentId)
```ruby: Ruby
require "razorpay"
Razorpay.setup('YOUR_KEY_ID', 'YOUR_SECRET')
paymentId = "pay_FHfAzEJ51k8NLj"
Razorpay::Payment.fetch(paymentId)
```go: Go
import ( razorpay "github.com/razorpay/razorpay-go" )
client := razorpay.NewClient("YOUR_KEY_ID", "YOUR_SECRET")
body, err := client.Payment.Fetch("", nil, nil)
```csharp: .NET
RazorpayClient client = new RazorpayClient("[YOUR_KEY_ID]", "[YOUR_KEY_SECRET]");
string paymentid = "pay_FHfqtkRzWvxky4";
Payment payment = client.Payment.Fetch(paymentid);
Debit Payment
{
"id": "pay_FHfAzEJ51k8NLj",
"entity": "payment",
"amount": 100,
"currency": "INR",
"status": "captured",
"order_id": "order_FHfANdTUYeP8lb",
"invoice_id": null,
"international": false,
"method": "upi",
"amount_refunded": 0,
"refund_status": null,
"captured": true,
"description": null,
"card_id": null,
"bank": null,
"wallet": null,
"vpa": "gaurav.kumar@upi",
"email": "gaurav.kumar@example.com",
"contact": "+919876543210",
"customer_id": "cust_DtHaBuooGHTuyZ",
"token_id": "token_FHfAzGzREc1ug6",
"notes": {
"note_key 1": "Beam me up Scotty",
"note_key 2": "Tea. Earl Gray. Hot."
},
"fee": 0,
"tax": 0,
"error_code": null,
"error_description": null,
"error_source": null,
"error_step": null,
"error_reason": null,
"acquirer_data": {
"rrn": "854977234911",
"upi_transaction_id": "D0BED5A062ECDB3E9B3A1071C96BB273"
},
"created_at": 1595447490
}
```json: Authorisation Payment
{
"id": "pay_QDhVJ5M23wt4rh",
"entity": "payment",
"amount": 1000,
"currency": "INR",
"status": "failed",
"order_id": "order_QDhT2PqFJvtg4y",
"invoice_id": null,
"international": false,
"method": "upi",
"amount_refunded": 0,
"refund_status": null,
"captured": false,
"description": null,
"card_id": null,
"bank": null,
"wallet": null,
"vpa": "success@razorpay",
"email": "gaurav.kumar@example.com",
"contact": "+919123456780",
"customer_id": "cust_Q0g6LTYw3obZEn",
"token_id": "token_QDhVJHYr5m87fF",
"notes": {
"notes_key_1": "Tea, Earl Grey, Hot",
"notes_key_2": "Tea, Earl Grey\u2026 decaf.",
"note_key 1": "Beam me up Scotty",
"note_key 2": "Tea. Earl Gray. Hot.",
"optimizer_provider_name": "razorpay"
},
"fee": null,
"tax": null,
"error_code": "BAD_REQUEST_ERROR",
"error_description": "Payment was a dummy payment for one time mandate registration.",
"error_source": "business",
"error_step": "payment_initiation",
"error_reason": "upi_dummy_payment",
"acquirer_data": {
"rrn": null
},
"gateway_provider": "Razorpay",
"created_at": 1743490280,
"upi": {
"vpa": "success@razorpay"
}
}
Handy Tips
token_id via the payment.authorized webhook.
Path Parameter
id mandatory
: string The unique identifier of the payment to be retrieved. For example, pay_1Aa00000000002.
2.2. Fetch Tokens by Customer ID
A customer can have multiple tokens and these tokens can be used to create subsequent payments for multiple products or services. The following endpoint retrieves tokens linked to a customer.Watch Out!
- This endpoint will not fetch the details of expired and unused tokens.
- The UPI tokens are not populated in the API response if the
save_vpafeature is not enabled in your account. Please raise a request with our Support team to get this activated.
Curl
curl -u : \
-X GET https://api.razorpay.com/v1/customers/cust_1Aa00000000002/tokens
```java: Java
RazorpayClient razorpay = new RazorpayClient("[YOUR_KEY_ID]", "[YOUR_KEY_SECRET]");
String customerId = "cust_1Aa00000000002";
List tokens = razorpay.customers.fetchTokens(customerId);
```php: PHP
$api = new Api($key_id, $secret);
$api->customer->fetch($customerId)->tokens()->all();
```javascript: Node.js
var instance = new Razorpay({ key_id: 'YOUR_KEY_ID', key_secret: 'YOUR_SECRET' })
instance.customers.fetchTokens(customerId)
```python: Python
client = razorpay.Client(auth=("YOUR_ID", "YOUR_SECRET"))
client.token.all(customerId)
```ruby: Ruby
require "razorpay"
Razorpay.setup('YOUR_KEY_ID', 'YOUR_SECRET')
customerId = "cust_1Aa00000000004"
Razorpay::Customer.fetch(customerId).fetchTokens
```go: Go
import ( razorpay "github.com/razorpay/razorpay-go" )
client := razorpay.NewClient("YOUR_KEY_ID", "YOUR_SECRET")
body, err := client.Token.All("", nil, nil)
```csharp: .NET
RazorpayClient client = new RazorpayClient("[YOUR_KEY_ID]", "[YOUR_KEY_SECRET]");
string customerId = "cust_1Aa00000000001";
List token = client.Customer.Fetch(customerId).Tokens();
Response
{
"entity": "collection",
"count": 1,
"items": [
{
"id": "token_FHfAzGzREc1ug6",
"entity": "token",
"token": "9KHsdPaCELeQ0t",
"bank": null,
"wallet": null,
"method": "upi",
"vpa": {
"username": "gaurav.kumar",
"handle": "upi",
"name": null
},
"recurring": true,
"recurring_details": {
"status": "confirmed",
"failure_reason": null
},
"auth_type": null,
"mrn": null,
"used_at": 1595447490,
"created_at": 1595447490,
"start_time": 1595447455,
"dcc_enabled": false
}
]
}
Path Parameter
id mandatory
: string The unique identifier of the customer for whom tokens are to be retrieved. For example, cust_1Aa00000000002.
2.3. Delete Tokens
The following endpoint deletes a token. /customers/:customer_id/tokens/:token_idCurl
curl -u [YOUR_KEY_ID]:[YOUR_KEY_SECRET] \
-X DELETE https://api.razorpay.com/v1/customers/cust_1Aa00000000002/tokens/token_1Aa00000000001
```java: Java
RazorpayClient razorpay = new RazorpayClient("[YOUR_KEY_ID]", "[YOUR_KEY_SECRET]");
String customerId = "cust_1Aa00000000002";
String tokenId = "token_1Aa00000000001";
Customer customer = razorpay.customers.deleteToken(customerId, tokenId);
```php: PHP
$api = new Api($key_id, $secret);
$api->customer->fetch($customerId)->tokens()->delete($tokenId);
```javascript: Node.js
var instance = new Razorpay({ key_id: 'YOUR_KEY_ID', key_secret: 'YOUR_SECRET' })
instance.customers.deleteToken(customerId, tokenId)
```python: Python
client = razorpay.Client(auth=("YOUR_ID", "YOUR_SECRET"))
client.token.delete(customerId, tokenId)
```ruby: Ruby
require "razorpay"
Razorpay.setup('YOUR_KEY_ID', 'YOUR_SECRET')
customerId = "cust_1Aa00000000004"
tokenId = "token_Hxe0skTXLeg9pF"
Razorpay::Customer.fetch(customerId).deleteToken(tokenId)
```go: Go
import ( razorpay "github.com/razorpay/razorpay-go" )
client := razorpay.NewClient("YOUR_KEY_ID", "YOUR_SECRET")
body, err := client.Token.Delete("", "", nil, nil)
```ruby: Ruby
require "razorpay"
Razorpay.setup('YOUR_KEY_ID', 'YOUR_SECRET')
customerId = "cust_1Aa00000000004"
tokenId = "token_Hxe0skTXLeg9pF"
Razorpay::fetch(customerId).deleteToken(tokenId)
```java: Java
RazorpayClient razorpay = new RazorpayClient("[YOUR_KEY_ID]", "[YOUR_KEY_SECRET]");
String customerId = "cust_DtHaBuooGHTuyZ";
String tokenId = "token_HouA2OQR5Z2jTL";
Customer customer = instance.customers.deleteToken(customerId, tokenId);
```csharp: .NET
RazorpayClient client = new RazorpayClient("[YOUR_KEY_ID]", "[YOUR_KEY_SECRET]");
string customerId = "cust_Z6t7VFTb9xHeOs";
string tokenId = "token_1Aa00000000001";
Customer customer = client.Customer.Fetch(customerId).DeleteToken(tokenId);
Response
{
"deleted": true
}
Path Parameter
customer_id mandatory
: string The unique identifier of the customer with whom the token is linked. For example, cust_1Aa00000000002.
token_id mandatory
: string The unique identifier of the token that is to be deleted. For example, token_1Aa00000000001.