Update User
curl --request PUT \
--url https://staging-api.puppetvendors.com/users/{userId} \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"email": "<string>",
"password": "<string>",
"approved": true,
"notifications": true,
"profile": {
"profile.firstName": "<string>",
"profile.lastName": "<string>",
"profile.phone": "<string>"
},
"permission": {}
}
'import requests
url = "https://staging-api.puppetvendors.com/users/{userId}"
payload = {
"email": "<string>",
"password": "<string>",
"approved": True,
"notifications": True,
"profile": {
"profile.firstName": "<string>",
"profile.lastName": "<string>",
"profile.phone": "<string>"
},
"permission": {}
}
headers = {
"x-access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
email: '<string>',
password: '<string>',
approved: true,
notifications: true,
profile: {
'profile.firstName': '<string>',
'profile.lastName': '<string>',
'profile.phone': '<string>'
},
permission: {}
})
};
fetch('https://staging-api.puppetvendors.com/users/{userId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://staging-api.puppetvendors.com/users/{userId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'email' => '<string>',
'password' => '<string>',
'approved' => true,
'notifications' => true,
'profile' => [
'profile.firstName' => '<string>',
'profile.lastName' => '<string>',
'profile.phone' => '<string>'
],
'permission' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://staging-api.puppetvendors.com/users/{userId}"
payload := strings.NewReader("{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"approved\": true,\n \"notifications\": true,\n \"profile\": {\n \"profile.firstName\": \"<string>\",\n \"profile.lastName\": \"<string>\",\n \"profile.phone\": \"<string>\"\n },\n \"permission\": {}\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://staging-api.puppetvendors.com/users/{userId}")
.header("x-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"approved\": true,\n \"notifications\": true,\n \"profile\": {\n \"profile.firstName\": \"<string>\",\n \"profile.lastName\": \"<string>\",\n \"profile.phone\": \"<string>\"\n },\n \"permission\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging-api.puppetvendors.com/users/{userId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"approved\": true,\n \"notifications\": true,\n \"profile\": {\n \"profile.firstName\": \"<string>\",\n \"profile.lastName\": \"<string>\",\n \"profile.phone\": \"<string>\"\n },\n \"permission\": {}\n}"
response = http.request(request)
puts response.read_bodyUsers
Update User
Update an existing user account belonging to the vendor
PUT
/
users
/
{userId}
Update User
curl --request PUT \
--url https://staging-api.puppetvendors.com/users/{userId} \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"email": "<string>",
"password": "<string>",
"approved": true,
"notifications": true,
"profile": {
"profile.firstName": "<string>",
"profile.lastName": "<string>",
"profile.phone": "<string>"
},
"permission": {}
}
'import requests
url = "https://staging-api.puppetvendors.com/users/{userId}"
payload = {
"email": "<string>",
"password": "<string>",
"approved": True,
"notifications": True,
"profile": {
"profile.firstName": "<string>",
"profile.lastName": "<string>",
"profile.phone": "<string>"
},
"permission": {}
}
headers = {
"x-access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
email: '<string>',
password: '<string>',
approved: true,
notifications: true,
profile: {
'profile.firstName': '<string>',
'profile.lastName': '<string>',
'profile.phone': '<string>'
},
permission: {}
})
};
fetch('https://staging-api.puppetvendors.com/users/{userId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://staging-api.puppetvendors.com/users/{userId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'email' => '<string>',
'password' => '<string>',
'approved' => true,
'notifications' => true,
'profile' => [
'profile.firstName' => '<string>',
'profile.lastName' => '<string>',
'profile.phone' => '<string>'
],
'permission' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://staging-api.puppetvendors.com/users/{userId}"
payload := strings.NewReader("{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"approved\": true,\n \"notifications\": true,\n \"profile\": {\n \"profile.firstName\": \"<string>\",\n \"profile.lastName\": \"<string>\",\n \"profile.phone\": \"<string>\"\n },\n \"permission\": {}\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://staging-api.puppetvendors.com/users/{userId}")
.header("x-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"approved\": true,\n \"notifications\": true,\n \"profile\": {\n \"profile.firstName\": \"<string>\",\n \"profile.lastName\": \"<string>\",\n \"profile.phone\": \"<string>\"\n },\n \"permission\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging-api.puppetvendors.com/users/{userId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"approved\": true,\n \"notifications\": true,\n \"profile\": {\n \"profile.firstName\": \"<string>\",\n \"profile.lastName\": \"<string>\",\n \"profile.phone\": \"<string>\"\n },\n \"permission\": {}\n}"
response = http.request(request)
puts response.read_bodyV2 Alpha — This endpoint is part of the V2 API preview. Breaking changes may occur.
Overview
Update an existing user account belonging to the authenticated vendor. Only fields included in the request body are updated. Returns 404 if the user does not belong to the vendor.Vendor Token Required — This endpoint requires a vendor-scoped JWT token. Merchant tokens will receive a 403 error.
Use Cases
- Update team member permissions or approval status
- Reset a user’s password from the vendor portal
Path Parameters
The user ObjectId to update.
Request Body
Updated email address. Must be a valid email format.
Updated password (minimum 6 characters).
Whether the account is active.
Enable or disable email notifications.
Updated permission configuration object.
Response
200
{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439022",
"email": "updated@vendor.com",
"type": "vendor",
"approved": true,
"profile": {
"firstName": "Updated",
"lastName": "User"
},
"notifications": true,
"permission": {},
"createdAt": "2024-06-15T12:00:00.000Z",
"updatedAt": "2024-06-16T10:00:00.000Z"
}
}
Error Responses
404
{
"success": false,
"error": "User not found"
}
409
{
"success": false,
"error": "A user with this email already exists"
}
Example
curl -X PUT "https://staging-api.puppetvendors.com/users/507f1f77bcf86cd799439022" \
-H "Content-Type: application/json" \
-H "x-access-token: YOUR_VENDOR_JWT_TOKEN" \
-d '{
"approved": true,
"profile": {
"firstName": "Updated",
"lastName": "User"
}
}'
Was this page helpful?
⌘I