---
title: "Retrieve stored details"
url: "https://docs.adyen.com/online-payments/classic-integrations/classic-api-integration/tokenization/retrieve-stored-details"
source_url: "https://docs.adyen.com/online-payments/classic-integrations/classic-api-integration/tokenization/retrieve-stored-details.md"
canonical: "https://docs.adyen.com/online-payments/classic-integrations/classic-api-integration/tokenization/retrieve-stored-details"
last_modified: "2026-05-24T12:54:31+02:00"
language: "en"
---
# Retrieve stored details
[View source](/online-payments/classic-integrations/classic-api-integration/tokenization/retrieve-stored-details.md)
**Adyen is no longer developing the Classic API integration**
This page is for the Classic API (`/authorise`) integration, which we no longer accept new integrations with.
We strongly recommend migrating to the newer [Tokenization](/online-payments/tokenization) integration. To use this newer integration, you must also [migrate to the Checkout API](/online-payments/upgrade-your-integration/migrate-to-checkout-api).
After you [store payment details](/online-payments/classic-integrations/classic-api-integration/tokenization/store-payment-details) along with an `/authorisation` call, you need the `recurringDetailReference` to refer to the stored details in other requests.
## Request
To retrieve the payment details and their reference number, use the `/listRecurringDetails` call. In this call, pass your merchant account and a reference of a shopper, whose payment details were previously stored.
For information on all available fields, see .
The following example demonstrates how to get payment details stored with your **TestMerchant** account for a shopper **14194858.**
**\
**
#### JSON
```json
{
"merchantAccount":"TestMerchant",
"shopperReference":"YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j"
}
```
#### Soap
```xml
TestMerchant
YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j
```
#### curl
```bash
curl https://pal-test.adyen.com/pal/servlet/Recurring/v25/listRecurringDetails \
-H 'x-api-key: ADYEN_API_KEY' \
-H 'content-type: application/json' \
-d '{
"merchantAccount": "TestMerchant",
"shopperReference": "YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j"
}'
```
#### Java
```java
// Adyen Java API Library v39.3.0
import com.adyen.Client;
import com.adyen.enums.Environment;
import com.adyen.model.recurring.*;
import java.time.OffsetDateTime;
import java.util.*;
import com.adyen.service.*;
Client client = new Client("ADYEN_API_KEY", Environment.TEST);
// Create the request object(s)
// Send the request
RecurringApi service = new RecurringApi(client);
RecurringDetailsResult response = service.listRecurringDetails(recurringDetailsRequest, null);
```
#### PHP
```php
setXApiKey("ADYEN_API_KEY");
$client->setEnvironment(Environment::TEST);
// Create the request object(s)
// Send the request
$service = new RecurringApi($client);
$response = $service->listRecurringDetails($recurringDetailsRequest);
```
#### C\#
```cs
// Adyen .net API Library v32.1.1
using Adyen;
using Environment = Adyen.Model.Environment;
using Adyen.Model;
using Adyen.Model.Recurring;
using Adyen.Service;
var config = new Config()
{
XApiKey = "ADYEN_API_KEY",
Environment = Environment.Test
};
var client = new Client(config);
// Create the request object(s)
// Send the request
var service = new RecurringService(client);
var response = service.ListRecurringDetails(recurringDetailsRequest);
```
#### NodeJS (JavaScript)
```js
// Adyen Node API Library v29.0.0
const { Client, RecurringAPI } = require('@adyen/api-library');
const config = new Config({
apiKey: "ADYEN_API_KEY",
environment: EnvironmentEnum.TEST
});
const client = new Client(config);
// Create the request object(s)
const recurringDetailsRequest = {
merchantAccount: "TestMerchant",
shopperReference: "YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j"
}
// Send the request
const recurringAPI = new RecurringAPI(client);
const response = recurringAPI.listRecurringDetails(recurringDetailsRequest);
```
#### Go
```go
// Adyen Go API Library v21.0.0
import (
"context"
"github.com/adyen/adyen-go-api-library/v21/src/common"
"github.com/adyen/adyen-go-api-library/v21/src/adyen"
"github.com/adyen/adyen-go-api-library/v21/src/recurring"
)
client := adyen.NewClient(&common.Config{
ApiKey: "ADYEN_API_KEY",
Environment: common.TestEnv,
})
// Create the request object(s)
// Send the request
service := client.Recurring()
req := service.RecurringApi.ListRecurringDetailsInput().RecurringDetailsRequest(recurringDetailsRequest)
res, httpRes, err := service.RecurringApi.ListRecurringDetails(context.Background(), req)
```
#### Python
```py
# Adyen Python API Library v13.6.0
import Adyen
adyen = Adyen.Adyen()
adyen.client.xapikey = "ADYEN_API_KEY"
adyen.client.platform = "test" # The environment to use library in.
# Create the request object(s)
json_request = {
"merchantAccount": "TestMerchant",
"shopperReference": "YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j"
}
# Send the request
result = adyen.recurring.list_recurring_details(request=json_request)
```
#### Ruby
```rb
# Adyen Ruby API Library v10.4.0
require "adyen-ruby-api-library"
adyen = Adyen::Client.new
adyen.api_key = 'ADYEN_API_KEY'
adyen.env = :test # Set to "live" for live environment
# Create the request object(s)
request_body = {
:merchantAccount => 'TestMerchant',
:shopperReference => 'YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j'
}
# Send the request
result = adyen.recurring.list_recurring_details(request_body)
```
#### NodeJS (TypeScript)
```ts
// Adyen Node API Library v29.0.0
import { Client, RecurringAPI, Types } from "@adyen/api-library";
const config = new Config({
apiKey: "ADYEN_API_KEY",
environment: EnvironmentEnum.TEST
});
const client = new Client(config);
// Create the request object(s)
// Send the request
const recurringAPI = new RecurringAPI(client);
const response = recurringAPI.listRecurringDetails(recurringDetailsRequest);
```
## Response
If there are payment details stored for the specified `shopperReference`, the response contains one or more `RecurringDetail` objects. In this object some fields may be missing or nil, depending on the payment method being used.
The response is different in the following scenarios:
* If the `shopperReference` does not exist, the endpoint returns an empty object.
* If the `shopperReference` exists but the request contains a specific `contract` type and a recurring detail for that contract does not exist, the `details` array is not included in the response.
For information on all fields available in a response, see [RecurringDetailsResult](https://docs.adyen.com/api-explorer/#/Recurring/v30/listRecurringDetails__section_resParams).
The following example shows the response if a shopper **14194858** stored the details of their VISA Debit card with a number starting with **492179**. In this case, the `recurringDetailReference` is equal to **8313147988756818. **
#### JSON
```json
{
"creationDate":"2015-07-30T22:54:13+02:00",
"details":[
{
"RecurringDetail":{
"additionalData":{
"cardBin":"492179"
},
"card":{
"expiryMonth":"2",
"expiryYear":"2017",
"holderName":"John Doe",
"number":"0380"
},
"contractTypes": [
"ONECLICK",
"RECURRING"
],
"alias":"H123456789012345",
"aliasType":"Default",
"creationDate":"2015-07-30T22:54:13+02:00",
"firstPspReference":"1314362892522014",
"name": "1132",
"recurringDetailReference":"8313147988756818",
"paymentMethodVariant":"visa",
"variant":"visa"
}
}
],
"shopperReference":"YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j"
}
```
#### Soap
```xml
2015-07-30T22:54:13+02:00
cardBin
492179
H123456789012345
Default
2
2017
John Doe
0380
ONECLICK
RECURRING
2015-07-30T22:54:13+02:00
1314362892522014
visadebit
8313147988756818
visa
14194858@gmail.com
YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j
```
## Next steps
* [Authorise a recurring payment](/online-payments/classic-integrations/classic-api-integration/tokenization/authorise-a-recurring-payment)
* [Update stored details](/online-payments/classic-integrations/classic-api-integration/tokenization/update-stored-details)
* [Disable stored details](/online-payments/classic-integrations/classic-api-integration/tokenization/disable-stored-details)