# Name an End User

Make, or read, one of your end users by your own id. Optional: the wallet and purchase calls make the end user too.

## Overview

- Answers `201` the first time an id is named, `200` afterwards, with the wallets you attested.
- The end user has no Aurea credentials and never signs in: it exists so its purchases and events keep an owner.
- `403` `CARD_ONRAMP_TENANT_WALLETS_OFF` until tenant wallets are switched on for your tenant.

## Endpoint

### `PUT /v1/ramp/card/customers/{externalId}`

Authentication: signed by the tenant's server — headers `x-tenant-api-key`, `x-timestamp`, `x-signature` (see Authentication → Tenant signature). No user token.

Makes or reads the end user.

**Path parameters**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `externalId` | string | yes | Your own id of the end user, 1 to 100 characters: letters, digits, dot, underscore, colon, at sign or hyphen |

**Responses**

`201` Created

```json
{
  "customer": {
    "externalId": "user_8421",
    "createdAt": "2026-09-25T01:46:56.601Z",
    "wallets": []
  }
}
```

`403` Tenant wallets off

```json
{
  "statusCode": 403,
  "error": "ForbiddenError",
  "message": "This tenant cannot open card purchases for its own wallets. Ask the Aurea operator to switch it on.",
  "details": {
    "code": "CARD_ONRAMP_TENANT_WALLETS_OFF"
  }
}
```

---

Web version: https://docs.aureahub.com/#card-wallets-customer-put
