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