# Retrieve

## `$kit->customers->retrieve()`

Fetches a single customer from Stripe by ID and normalizes it.

## Signature

```php
public function retrieve(string $customerId): array
```

## Example request

```php
$customer = $kit->customers->retrieve('cus_R1a2B3c4D5e6F7');
```

## Example response

```php
[
    'id' => 'cus_R1a2B3c4D5e6F7',
    'userId' => null,
    'email' => 'anna@example.com',
    'name' => 'Anna Jansen',
    'phone' => '+31612345678',
    'description' => null,
    'address' => null,
    'defaultPaymentMethodId' => 'pm_1P9k2K2eZvKYlo2C3example',
    'metadata' => ['source' => 'stripekit'],
    'createdAtUtc' => '2026-08-12T09:14:02.000Z',
    'deleted' => false,
]
```

## Errors

| Exception | When |
| --- | --- |
| `NotFoundError` | The customer exists but has already been deleted in Stripe. |
| `StripeOperationError` | The customer ID does not exist, or any other Stripe-side failure. |

## Notes

- `userId` is always `null` on a plain `retrieve()` call, because StripeKit has no way to know your internal user ID from a Stripe customer ID alone unless you pass it in yourself elsewhere. If you need `userId` populated, look the record up through your own storage adapter, or use [`findOrCreateByEmail()`](/packagist-packages/stripekit/modules/customers/find-or-create-by-email).