# Users

Endpoints for interacting with users.

## List users

 - [GET /users](https://developers.ev.energy/ev.energy-api-v2/users/get-users.md): List all the users that the authorization token has access to.

## Create user

 - [POST /users](https://developers.ev.energy/ev.energy-api-v2/users/post-users.md): Create an individual user in the ev.energy system.

## Retrieve user

 - [GET /users/{user_id}](https://developers.ev.energy/ev.energy-api-v2/users/get-users-user_id.md): Retrieve information about a single, specific user.

## Update User

 - [PATCH /users/{user_id}](https://developers.ev.energy/ev.energy-api-v2/users/patch-users-user_id.md): Update user information.

## Retrieve user notification preferences

 - [GET /users/{user_id}/notification_preferences](https://developers.ev.energy/ev.energy-api-v2/users/get-users-user_id-notification_preferences.md): Retrieve the set of notification groups the user is currently subscribed to.

## Update user notification preferences

 - [PATCH /users/{user_id}/notification_preferences](https://developers.ev.energy/ev.energy-api-v2/users/patch-users-user_id-notification_preferences.md): Update the user's notification group opt-in state.

The groups object is treated as a partial map: only the keys you
include are modified. Keys you omit are left untouched. This means
clients only need to send the groups they want to change, and adding
new groups to the API in the future cannot accidentally clobber an
old client's silence on them.

PATCH {} and PATCH {"groups": {}} are valid no-ops. Unknown group
names produce a 400.

## Retrieve payout method

 - [GET /users/{user_id}/payout_method](https://developers.ev.energy/ev.energy-api-v2/users/get-users-user_id-payout-method.md): Retrieve the user's preferred payout method. Returns null fields when
the user has not set up a payout method.

## Update payout method

 - [PATCH /users/{user_id}/payout_method](https://developers.ev.energy/ev.energy-api-v2/users/patch-users-user_id-payout-method.md): Create or update the user's preferred payout method. The request must
always include receiver_wallet. For PAYPAL and VENMO the
client must also supply receiver (an email or phone respectively).
For BILL_CREDITS the receiver must not be supplied — it is
derived server-side from the user's linked billing account.

## Delete payout method

 - [DELETE /users/{user_id}/payout_method](https://developers.ev.energy/ev.energy-api-v2/users/delete-users-user_id-payout-method.md): Clear the user's preferred payout method. The user's stored
`UserPayoutMethod records are not removed; only the
preferred_payout_method` link on the user is cleared. Returns 204
even when the user already has no payout method set (no-op).

