# Users

## Create a new user

> Creates a new user and associates them with the authenticated partner.\
> If a user with the provided email already exists but is not associated with the partner,\
> the existing user will be associated with the partner instead of creating a new user.<br>

```json
{"openapi":"3.0.0","info":{"title":"PayID REST API  - Users","version":"1.0.0"},"servers":[{"url":"https://api.reveel.id/v1","description":"Production API Server"},{"url":"https://staging-api.reveel.id/v1","description":"Staging API Server"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"API keys are provided when a partner account is created and can be regenerated if needed.\nTo authenticate requests, include your API key in the request headers using the Bearer token format:\n`Authorization: Bearer your-api-key`\n\n## Required Permissions\n\nThe following permissions are required for the User endpoints:\n\n- **user:create** - Create new users and associate them with your partner account\n- **user:read** - View users associated with your partner account\n- **user:update** - Modify user information for users associated with your partner account\n- **user:delete** - Disassociate users from your partner account\n"}},"schemas":{"CreateUserRequest":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email","description":"User's email address (required)"},"twitterUsername":{"type":"string","description":"User's twitter username (optional)"},"walletAddress":{"type":"string","description":"User's blockchain wallet address (optional)"}}},"CreateUserResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was successful"},"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the created user"},"email":{"type":"string","format":"email","description":"User's email address"},"twitterUsername":{"type":"string","nullable":true,"description":"User's twitter username (if provided)"},"walletAddress":{"type":"string","nullable":true,"description":"User's blockchain wallet address (if provided)"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the user was created"}}},"meta":{"type":"object","description":"Additional metadata (empty for user creation)"}}},"ValidationError":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was unsuccessful"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Indicates a validation error"},"message":{"type":"string","description":"Comma-separated list of validation errors"},"details":{"type":"array","items":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}}}}}}}},"Error":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was unsuccessful"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Error code identifying the type of error"},"message":{"type":"string","description":"Human-readable error message"},"details":{"type":"object","nullable":true,"description":"Additional details about the error (when available)"}}}}}}},"paths":{"/users":{"post":{"summary":"Create a new user","description":"Creates a new user and associates them with the authenticated partner.\nIf a user with the provided email already exists but is not associated with the partner,\nthe existing user will be associated with the partner instead of creating a new user.\n","tags":["Users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserRequest"}}}},"responses":{"201":{"description":"User created or associated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserResponse"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"401":{"description":"Authentication failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"409":{"description":"User already associated with partner","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"}}}}}}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Get a user by ID

> Retrieves a specific user by their ID (user must be associated with the authenticated partner)

```json
{"openapi":"3.0.0","info":{"title":"PayID REST API  - Users","version":"1.0.0"},"servers":[{"url":"https://api.reveel.id/v1","description":"Production API Server"},{"url":"https://staging-api.reveel.id/v1","description":"Staging API Server"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"API keys are provided when a partner account is created and can be regenerated if needed.\nTo authenticate requests, include your API key in the request headers using the Bearer token format:\n`Authorization: Bearer your-api-key`\n\n## Required Permissions\n\nThe following permissions are required for the User endpoints:\n\n- **user:create** - Create new users and associate them with your partner account\n- **user:read** - View users associated with your partner account\n- **user:update** - Modify user information for users associated with your partner account\n- **user:delete** - Disassociate users from your partner account\n"}},"schemas":{"GetUserResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was successful"},"data":{"$ref":"#/components/schemas/User"},"meta":{"type":"object","properties":{"message":{"type":"string","description":"Success message"}}}}},"User":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the user"},"email":{"type":"string","format":"email","description":"User's email address"},"twitterUsername":{"type":"string","nullable":true,"description":"User's twitter username (optional)"},"walletAddress":{"type":"string","nullable":true,"description":"User's blockchain wallet address (optional)"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the user was created"},"updatedAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when the user was last updated"},"payId":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the payId"},"name":{"type":"string","description":"The payId name"}},"description":"User's associated PayID (if any)"}}},"Error":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was unsuccessful"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Error code identifying the type of error"},"message":{"type":"string","description":"Human-readable error message"},"details":{"type":"object","nullable":true,"description":"Additional details about the error (when available)"}}}}}}},"paths":{"/users/{id}":{"get":{"summary":"Get a user by ID","description":"Retrieves a specific user by their ID (user must be associated with the authenticated partner)","tags":["Users"],"responses":{"200":{"description":"User retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetUserResponse"}}}},"401":{"description":"Authentication failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Update a user

> Updates information for a specific user by their ID.\
> The user must be associated with the authenticated partner.\
> At least one field must be provided for update.<br>

```json
{"openapi":"3.0.0","info":{"title":"PayID REST API  - Users","version":"1.0.0"},"servers":[{"url":"https://api.reveel.id/v1","description":"Production API Server"},{"url":"https://staging-api.reveel.id/v1","description":"Staging API Server"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"API keys are provided when a partner account is created and can be regenerated if needed.\nTo authenticate requests, include your API key in the request headers using the Bearer token format:\n`Authorization: Bearer your-api-key`\n\n## Required Permissions\n\nThe following permissions are required for the User endpoints:\n\n- **user:create** - Create new users and associate them with your partner account\n- **user:read** - View users associated with your partner account\n- **user:update** - Modify user information for users associated with your partner account\n- **user:delete** - Disassociate users from your partner account\n"}},"schemas":{"UpdateUserRequest":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"User's updated email address"},"twitterUsername":{"type":"string","description":"User's updated twitter username"},"walletAddress":{"type":"string","description":"User's updated blockchain wallet address"}}},"UpdateUserResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was successful"},"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the user"},"email":{"type":"string","format":"email","description":"User's updated email address"},"twitterUsername":{"type":"string","nullable":true,"description":"User's updated twitter username"},"walletAddress":{"type":"string","nullable":true,"description":"User's updated blockchain wallet address"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the user was created"},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp when the user was updated"}}},"meta":{"type":"object","properties":{"message":{"type":"string","description":"Success message"}}}}},"ValidationError":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was unsuccessful"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Indicates a validation error"},"message":{"type":"string","description":"Comma-separated list of validation errors"},"details":{"type":"array","items":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}}}}}}}},"Error":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was unsuccessful"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Error code identifying the type of error"},"message":{"type":"string","description":"Human-readable error message"},"details":{"type":"object","nullable":true,"description":"Additional details about the error (when available)"}}}}}}},"paths":{"/users/{id}":{"put":{"summary":"Update a user","description":"Updates information for a specific user by their ID.\nThe user must be associated with the authenticated partner.\nAt least one field must be provided for update.\n","tags":["Users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserRequest"}}}},"responses":{"200":{"description":"User updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserResponse"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"401":{"description":"Authentication failed","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"409":{"description":"Email already in use","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Disassociate a user

> Removes the association between a user and the authenticated partner.\
> This does not delete the user from the system, only removes the association.<br>

```json
{"openapi":"3.0.0","info":{"title":"PayID REST API  - Users","version":"1.0.0"},"servers":[{"url":"https://api.reveel.id/v1","description":"Production API Server"},{"url":"https://staging-api.reveel.id/v1","description":"Staging API Server"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"API keys are provided when a partner account is created and can be regenerated if needed.\nTo authenticate requests, include your API key in the request headers using the Bearer token format:\n`Authorization: Bearer your-api-key`\n\n## Required Permissions\n\nThe following permissions are required for the User endpoints:\n\n- **user:create** - Create new users and associate them with your partner account\n- **user:read** - View users associated with your partner account\n- **user:update** - Modify user information for users associated with your partner account\n- **user:delete** - Disassociate users from your partner account\n"}},"schemas":{"DeleteUserResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was successful"},"meta":{"type":"object","properties":{"message":{"type":"string","description":"Success message indicating the user was disassociated"}}}}},"Error":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was unsuccessful"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Error code identifying the type of error"},"message":{"type":"string","description":"Human-readable error message"},"details":{"type":"object","nullable":true,"description":"Additional details about the error (when available)"}}}}}}},"paths":{"/users/{id}":{"delete":{"summary":"Disassociate a user","description":"Removes the association between a user and the authenticated partner.\nThis does not delete the user from the system, only removes the association.\n","tags":["Users"],"responses":{"200":{"description":"User disassociated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteUserResponse"}}}},"401":{"description":"Authentication failed","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"404":{"description":"Association not found","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Disconnect wallet

> Disconnects a wallet from a specific user by setting their walletAddress to null.\
> The user must be associated with the authenticated partner and must have a wallet connected.<br>

```json
{"openapi":"3.0.0","info":{"title":"PayID REST API  - Users","version":"1.0.0"},"servers":[{"url":"https://api.reveel.id/v1","description":"Production API Server"},{"url":"https://staging-api.reveel.id/v1","description":"Staging API Server"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"API keys are provided when a partner account is created and can be regenerated if needed.\nTo authenticate requests, include your API key in the request headers using the Bearer token format:\n`Authorization: Bearer your-api-key`\n\n## Required Permissions\n\nThe following permissions are required for the User endpoints:\n\n- **user:create** - Create new users and associate them with your partner account\n- **user:read** - View users associated with your partner account\n- **user:update** - Modify user information for users associated with your partner account\n- **user:delete** - Disassociate users from your partner account\n"}},"schemas":{"DisconnectWalletResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was successful"},"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the user"},"email":{"type":"string","format":"email","description":"User's email address"},"twitterUsername":{"type":"string","nullable":true,"description":"User's twitter username"},"walletAddress":{"type":"string","nullable":true,"description":"User's wallet address (now null after disconnection)"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the user was created"},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp when the wallet was disconnected"}}},"meta":{"type":"object","properties":{"message":{"type":"string","description":"Success message"}}}}},"Error":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was unsuccessful"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Error code identifying the type of error"},"message":{"type":"string","description":"Human-readable error message"},"details":{"type":"object","nullable":true,"description":"Additional details about the error (when available)"}}}}}}},"paths":{"/users/{id}/disconnect-wallet":{"post":{"summary":"Disconnect wallet","description":"Disconnects a wallet from a specific user by setting their walletAddress to null.\nThe user must be associated with the authenticated partner and must have a wallet connected.\n","tags":["Users"],"responses":{"200":{"description":"Wallet disconnected successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisconnectWalletResponse"}}}},"400":{"description":"No wallet connected","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"401":{"description":"Authentication failed","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Get a user by email

> Retrieves a specific user by their email address.\
> The user must exist and be associated with the authenticated partner.<br>

```json
{"openapi":"3.0.0","info":{"title":"PayID REST API  - Users","version":"1.0.0"},"servers":[{"url":"https://api.reveel.id/v1","description":"Production API Server"},{"url":"https://staging-api.reveel.id/v1","description":"Staging API Server"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"API keys are provided when a partner account is created and can be regenerated if needed.\nTo authenticate requests, include your API key in the request headers using the Bearer token format:\n`Authorization: Bearer your-api-key`\n\n## Required Permissions\n\nThe following permissions are required for the User endpoints:\n\n- **user:create** - Create new users and associate them with your partner account\n- **user:read** - View users associated with your partner account\n- **user:update** - Modify user information for users associated with your partner account\n- **user:delete** - Disassociate users from your partner account\n"}},"schemas":{"GetUserResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was successful"},"data":{"$ref":"#/components/schemas/User"},"meta":{"type":"object","properties":{"message":{"type":"string","description":"Success message"}}}}},"User":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the user"},"email":{"type":"string","format":"email","description":"User's email address"},"twitterUsername":{"type":"string","nullable":true,"description":"User's twitter username (optional)"},"walletAddress":{"type":"string","nullable":true,"description":"User's blockchain wallet address (optional)"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the user was created"},"updatedAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when the user was last updated"},"payId":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the payId"},"name":{"type":"string","description":"The payId name"}},"description":"User's associated PayID (if any)"}}},"Error":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was unsuccessful"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Error code identifying the type of error"},"message":{"type":"string","description":"Human-readable error message"},"details":{"type":"object","nullable":true,"description":"Additional details about the error (when available)"}}}}}}},"paths":{"/users/email/{email}":{"get":{"summary":"Get a user by email","description":"Retrieves a specific user by their email address.\nThe user must exist and be associated with the authenticated partner.\n","tags":["Users"],"responses":{"200":{"description":"User retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetUserResponse"}}}},"401":{"description":"Authentication failed","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}]}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## The User object

```json
{"openapi":"3.0.0","info":{"title":"PayID REST API  - Users","version":"1.0.0"},"components":{"schemas":{"User":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the user"},"email":{"type":"string","format":"email","description":"User's email address"},"twitterUsername":{"type":"string","nullable":true,"description":"User's twitter username (optional)"},"walletAddress":{"type":"string","nullable":true,"description":"User's blockchain wallet address (optional)"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the user was created"},"updatedAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when the user was last updated"},"payId":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the payId"},"name":{"type":"string","description":"The payId name"}},"description":"User's associated PayID (if any)"}}}}}}
```

## The Error object

```json
{"openapi":"3.0.0","info":{"title":"PayID REST API  - Users","version":"1.0.0"},"components":{"schemas":{"Error":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was unsuccessful"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Error code identifying the type of error"},"message":{"type":"string","description":"Human-readable error message"},"details":{"type":"object","nullable":true,"description":"Additional details about the error (when available)"}}}}}}}}
```

## The ValidationError object

```json
{"openapi":"3.0.0","info":{"title":"PayID REST API  - Users","version":"1.0.0"},"components":{"schemas":{"ValidationError":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was unsuccessful"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Indicates a validation error"},"message":{"type":"string","description":"Comma-separated list of validation errors"},"details":{"type":"array","items":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}}}}}}}}}}}
```

## The CreateUserRequest object

```json
{"openapi":"3.0.0","info":{"title":"PayID REST API  - Users","version":"1.0.0"},"components":{"schemas":{"CreateUserRequest":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email","description":"User's email address (required)"},"twitterUsername":{"type":"string","description":"User's twitter username (optional)"},"walletAddress":{"type":"string","description":"User's blockchain wallet address (optional)"}}}}}}
```

## The UpdateUserRequest object

```json
{"openapi":"3.0.0","info":{"title":"PayID REST API  - Users","version":"1.0.0"},"components":{"schemas":{"UpdateUserRequest":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"User's updated email address"},"twitterUsername":{"type":"string","description":"User's updated twitter username"},"walletAddress":{"type":"string","description":"User's updated blockchain wallet address"}}}}}}
```

## The CreateUserResponse object

```json
{"openapi":"3.0.0","info":{"title":"PayID REST API  - Users","version":"1.0.0"},"components":{"schemas":{"CreateUserResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was successful"},"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the created user"},"email":{"type":"string","format":"email","description":"User's email address"},"twitterUsername":{"type":"string","nullable":true,"description":"User's twitter username (if provided)"},"walletAddress":{"type":"string","nullable":true,"description":"User's blockchain wallet address (if provided)"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the user was created"}}},"meta":{"type":"object","description":"Additional metadata (empty for user creation)"}}}}}}
```

## The GetUsersResponse object

```json
{"openapi":"3.0.0","info":{"title":"PayID REST API  - Users","version":"1.0.0"},"components":{"schemas":{"GetUsersResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was successful"},"data":{"type":"array","items":{"$ref":"#/components/schemas/User"},"description":"List of users associated with the partner"},"meta":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of users in the response"}}}}},"User":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the user"},"email":{"type":"string","format":"email","description":"User's email address"},"twitterUsername":{"type":"string","nullable":true,"description":"User's twitter username (optional)"},"walletAddress":{"type":"string","nullable":true,"description":"User's blockchain wallet address (optional)"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the user was created"},"updatedAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when the user was last updated"},"payId":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the payId"},"name":{"type":"string","description":"The payId name"}},"description":"User's associated PayID (if any)"}}}}}}
```

## The GetUserResponse object

```json
{"openapi":"3.0.0","info":{"title":"PayID REST API  - Users","version":"1.0.0"},"components":{"schemas":{"GetUserResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was successful"},"data":{"$ref":"#/components/schemas/User"},"meta":{"type":"object","properties":{"message":{"type":"string","description":"Success message"}}}}},"User":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the user"},"email":{"type":"string","format":"email","description":"User's email address"},"twitterUsername":{"type":"string","nullable":true,"description":"User's twitter username (optional)"},"walletAddress":{"type":"string","nullable":true,"description":"User's blockchain wallet address (optional)"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the user was created"},"updatedAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when the user was last updated"},"payId":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the payId"},"name":{"type":"string","description":"The payId name"}},"description":"User's associated PayID (if any)"}}}}}}
```

## The UpdateUserResponse object

```json
{"openapi":"3.0.0","info":{"title":"PayID REST API  - Users","version":"1.0.0"},"components":{"schemas":{"UpdateUserResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was successful"},"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the user"},"email":{"type":"string","format":"email","description":"User's updated email address"},"twitterUsername":{"type":"string","nullable":true,"description":"User's updated twitter username"},"walletAddress":{"type":"string","nullable":true,"description":"User's updated blockchain wallet address"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the user was created"},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp when the user was updated"}}},"meta":{"type":"object","properties":{"message":{"type":"string","description":"Success message"}}}}}}}}
```

## The DisconnectWalletResponse object

```json
{"openapi":"3.0.0","info":{"title":"PayID REST API  - Users","version":"1.0.0"},"components":{"schemas":{"DisconnectWalletResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was successful"},"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the user"},"email":{"type":"string","format":"email","description":"User's email address"},"twitterUsername":{"type":"string","nullable":true,"description":"User's twitter username"},"walletAddress":{"type":"string","nullable":true,"description":"User's wallet address (now null after disconnection)"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the user was created"},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp when the wallet was disconnected"}}},"meta":{"type":"object","properties":{"message":{"type":"string","description":"Success message"}}}}}}}}
```

## The DeleteUserResponse object

```json
{"openapi":"3.0.0","info":{"title":"PayID REST API  - Users","version":"1.0.0"},"components":{"schemas":{"DeleteUserResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates that the request was successful"},"meta":{"type":"object","properties":{"message":{"type":"string","description":"Success message indicating the user was disassociated"}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.reveel.id/api-references/users.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
