# credential.retrieve()

[[Source]](https://github.com/ripple/simpleXRPL/blob/95b977b15f8950c5bc076b25165217869c0b06d3/src/verticals/credential.ts#L42)

Retrieve a single credential by type and issuer (point-in-time).

## Signature

```ts
credential.retrieve(
  params: CredentialRetrieveParams,
): Promise<CredentialRetrieveResult>
```

## Parameters

| Parameter | Type | Required | Description |
|  --- | --- | --- | --- |
| `credType` | `string` | Yes | The credential type. |
| `issuer` | `string` | Yes | The issuer r-address. |
| `account` | `string` | No | The holder (subject). Defaults to the primary signer's account. |


## Returns

Resolves to a `CredentialRetrieveResult`:

| Field | Type | Description |
|  --- | --- | --- |
| `credType` | `string` | The credential type. |
| `issuer` | `string` | The issuer r-address. |
| `holder` | `string` | The holder (subject) r-address. |
| `data` | `CredentialData | undefined` | The credential snapshot, or `undefined` if none exists. |


### CredentialData

| Field | Type | Description |
|  --- | --- | --- |
| `credType` | `string` | The credential type. |
| `issuer` | `string` | The issuer r-address. |
| `holder` | `string` | The holder (subject) r-address. |
| `accepted` | `boolean` | Whether the holder has accepted the credential. |
| `uri` | `string` *(optional)* | The optional URI (decoded from hex). |
| `expiration` | `number` *(optional)* | Expiration (seconds since the Ripple epoch), if set. |


## Underlying XRPL request

Read-only — no signer is required and nothing is submitted. Queries the ledger with [ledger_entry](https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry).

## Example

```ts
const { data } = await client.credential.retrieve({
  credType: 'KYC',
  issuer: 'rIssuer...',
})

console.log(data?.accepted)
```