# Create a wallet

Create a new wallet for an account. You can specify optional attributes such as a display name and description to specify the intended use of the wallet. This will generate a new moov-wallet payment method.

Read our [Moov wallets guide](https://docs.moov.io/guides/sources/wallets/) to learn more.

To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/wallets.write` scope.

## POST

/accounts/{accountID}/wallets

Ask

```shell
curl -X POST "https://api.moov.io/accounts/{accountID}/wallets" \
  -H "Authorization: Bearer {token}" \
  -H "X-Moov-Version: v2026.07.00" \
  -d '{
  "name": "My wallet",
  "description": "A general wallet used for my payments",
  "metadata": {
    "optional": "metadata"
  }
}'
```

Ask

```go
mc, _ := moov.NewClient()

accountID := "{uuid}" // account ID of the wallet owner
create := moov.CreateWallet{
    Name: "My wallet",
}

mc.CreateWallet(ctx, accountID, create)
```

Ask

```typescript
import { Moov } from "@moovio/sdk";

const moov = new Moov({
  security: {
    username: "",
    password: "",
  },
});

async function run() {
  const result = await moov.wallets.create({
    accountID: "b4b3f37c-b73e-4271-b8ec-108a8593c9b9",
    createWallet: {
      name: "My wallet",
      description: "A general wallet used for my payments",
      metadata: {
        "optional": "metadata",
      },
    },
  });

console.log(result);
}

run();
```

Ask

```php
declare(strict_types=1);

require 'vendor/autoload.php';

use Moov\
