Create partner user
Overview
Create a new user under the authenticated partner company. It sets their role (admin / assign_brand / basic), optionally assigns account access and default reports, and emails first-login credentials via the white-label-aware 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/users/partner/add
Authentication
-
Requires a bearer token in the
Authorization: Bearer <bearer-token>header. -
Any valid bearer token (no role or bundle gate). The endpoint creates the new user under the caller's own company.
Rate limit
- No rate limit.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
user_type | string | Required | admin, assign_brand, or basic. |
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. |
account | integer[] | Required if user_type=assign_brand, or basic with assign_all_accounts=0 | Account company ids under the caller (validated by an ownership check). |
assign_all_accounts | integer | Required if user_type=basic | 0 or 1. |
send_default_reports | integer | Optional | 0/1; when 1 subscribes default activity + review-response reports. |
inactive_at | string | Optional | Y-m-d H:i:s deactivation date. |
{
"user_type": "assign_brand",
"first_name": "Jane",
"last_name": "Smith",
"title": "Manager",
"email": "[email protected]",
"password": "<your-password>",
"account": [
10
],
"assign_all_accounts": 1,
"send_default_reports": 1,
"inactive_at": null
}How it works
- Synchronous (DB transaction).
200on success. 422on validation failure.500on save failure (transaction rolled back).
Response
200 OK · 200
200{
"data": {
"status": "success",
"response": "User has been created successfully"
}
}422 Validation error · 422
422{
"message": "The email has already been taken.",
"errors": {
"email": [
"The email has already been taken."
]
}
}Errors
| Status | Meaning |
|---|---|
401 | The bearer token is missing, expired or invalid |
422 | Validation error |
500 | Returned on save failure (transaction rolled back) |
Example request
curl --request POST \
--url "https://production-api.shoutaboutus.com/api/v1/users/partner/add" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"user_type": "assign_brand", "first_name": "Jane", "last_name": "Smith", "title": "Manager", "email": "[email protected]", "password": "<your-password>", "account": [10], "assign_all_accounts": 1, "send_default_reports": 1, "inactive_at": null}'Notes
- Creates User + Person (+ UserBrand rows), sends a welcome email, writes a
USER_CREATEDaudit event.
Updated 11 days ago
Did this page help you?
