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 Authorization header.

Base URL

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://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

FieldTypeRequiredDescription
user_typestringRequiredadmin, assign_brand, or basic.
first_namestringRequired≤255 chars; no angle brackets.
last_namestringOptional≤255 chars.
titlestringOptional≤50 chars.
emailstringRequiredValid email; unique in users.
passwordstringRequired8–100 chars, mixed case + number + special char, no spaces/quotes.
accountinteger[]Required if user_type=assign_brand, or basic with assign_all_accounts=0Account company ids under the caller (validated by an ownership check).
assign_all_accountsintegerRequired if user_type=basic0 or 1.
send_default_reportsintegerOptional0/1; when 1 subscribes default activity + review-response reports.
inactive_atstringOptionalY-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). 200 on success.
  • 422 on validation failure.
  • 500 on save failure (transaction rolled back).

Response

200 OK · 200

{
  "data": {
    "status": "success",
    "response": "User has been created successfully"
  }
}

422 Validation error · 422

{
  "message": "The email has already been taken.",
  "errors": {
    "email": [
      "The email has already been taken."
    ]
  }
}

Errors

StatusMeaning
401The bearer token is missing, expired or invalid
422Validation error
500Returned 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_CREATED audit event.

Did this page help you?