Add account user
Overview
Create a new user under the authenticated account with a role (admin / location_assign / basic), optional per-store assignments and default reports (activity, review-response, insight). Emails first-login credentials via the white-label welcome email.
Prerequisites
- A bearer token in the
Authorizationheader.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
POST /api/v1/user/add
Authentication
-
Requires a bearer token in the
Authorization: Bearer <bearer-token>header. -
Account admin — collection bearer token.
-
authorizerequires the caller's companybundle_id(the company type —1= partner,2= location,3= account) to be ACCOUNT. Otherwise it returns403(This action is unauthorized.).
Rate limit
- No rate limit.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
first_name | string | Required | ≤255 chars; no angle brackets. |
last_name | string | Optional | ≤255 chars. |
title | string | Optional | ≤50 chars. |
email | string | Required | Valid email; unique in users. |
password | string | Required | 8–100 chars, mixed case + number + special char, no spaces/quotes. |
user_type | string | Required | admin, location_assign, or basic. |
store_ids | integer[] | Required if user_type=location_assign, or basic with assign_all_accounts=0 | Store ids under the caller's account (an ownership check). |
assign_all_accounts | integer | Required if user_type=basic | 0/1. |
send_default_reports | integer | Optional | 0/1; 1 enables default reports (account companies only). |
inactive_at | string | Optional | Y-m-d H:i:s deactivation date. |
{
"first_name": "Jane",
"last_name": "Smith",
"title": "Manager",
"email": "[email protected]",
"password": "<your-password>",
"user_type": "location_assign",
"store_ids": [
12
],
"assign_all_accounts": 1,
"send_default_reports": 1,
"inactive_at": null
}How it works
- Synchronous (DB transaction).
200returns per-reporterror/info/successarrays alongside the success message. 403when the caller is not an account company (authorize fails).422on validation failure;500on save failure (rolled back).
Response
200 OK · 200
200{
"data": {
"status": "success",
"response": "User has been created successfully",
"error": [],
"info": [],
"success": [
"Activity Report has been enabled.",
"Review Response Report has been enabled.",
"Insight Report has been enabled."
]
}
}403 Unauthorized (not an account) · 403
403{
"message": "This action is unauthorized."
}422 Validation error · 422
422{
"message": "The email has already been taken.",
"errors": {
"email": [
"The email has already been taken."
],
"store_ids": [
"The store ids field is required."
]
}
}Errors
| Status | Meaning |
|---|---|
401 | The bearer token is missing, expired or invalid |
403 | Unauthorized (not an account) |
422 | Validation error |
500 | Returned on save failure (rolled back) |
Example request
curl --request POST \
--url "https://production-api.shoutaboutus.com/api/v1/user/add" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"first_name": "Jane", "last_name": "Smith", "title": "Manager", "email": "[email protected]", "password": "<your-password>", "user_type": "location_assign", "store_ids": [12], "assign_all_accounts": 1, "send_default_reports": 1, "inactive_at": null}'Notes
- Creates User + Person + Email + UserStore (+ Report) rows, sends a welcome email, writes a
USER_CREATEDaudit event.
Updated 10 days ago
Did this page help you?
