DocsREST API Reference
Technical Endpoint Specification

Agency Sub-Accounts API

The Sub-Accounts API enables programmatic tenant provisioning, initial star gatekeeper configuration, and automated queueing of complimentary physical smart NFC countertop stand shipments.

POST/api/v1/agency/subaccounts

Creates an isolated SMB sub-account tenant under your parent Agency organization, assigns a slug, initializes review redirection settings (minimum score threshold 4), and registers an initial fulfillment record in hardwareOrders.

Authentication
Authorization: Bearer aev_live_...
Rate Limit / Quota
Up to 100 sub-accounts per Agency plan

Request Body Attributes

The request body must be serialized as a JSON object with Content-Type: application/json.

FieldTypeRequiredDescription
namestringYesBusiness name of the client organization (e.g. "Beacon Dental Care").
adminEmailstringYesPrimary notification email address for the business owner.
shippingNamestringYesAttention / recipient name printed on the physical stand parcel.
shippingAddressstringYesStreet address and suite number for physical courier delivery.
shippingCitystringYesDestination city for physical shipment.
shippingStatestringYes2-letter state or province abbreviation (e.g. "CA", "TX").
shippingZipstringYesPostal or ZIP code for shipment courier routing.
googleReviewUrlstringOptionalDirect URL to the business's Google Review prompt (for ratings ≥ 4).
placeIdstringOptionalGoogle Place ID. If provided, automatically generates the official Google review write URL.
websiteUrlstringOptionalClient's primary company website destination.

Code Implementation Samples

Provision Sub-Account Example
curl -X POST https://aevloc.com/api/v1/agency/subaccounts \
  -H "Authorization: Bearer aev_live_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Beacon Dental Care",
    "adminEmail": "[email protected]",
    "shippingName": "Beacon Dental (Attn: Reception)",
    "shippingAddress": "450 Sutter Street, Suite 800",
    "shippingCity": "San Francisco",
    "shippingState": "CA",
    "shippingZip": "94108",
    "googleReviewUrl": "https://search.google.com/local/writereview?placeid=ChIJN1t_tDeuEmsRUsoyG83frY4",
    "websiteUrl": "https://beacondental.com"
  }'

Response Specifications

201 CreatedSuccessful Provisioning
{
  "success": true,
  "data": {
    "organizationId": "0191f6a2-8b4e-7210-9831-e6e8c1a892b1",
    "name": "Beacon Dental Care",
    "slug": "beacon-dental-care",
    "funnelUrl": "https://aevloc.com/review?org=0191f6a2-8b4e-7210-9831-e6e8c1a892b1",
    "hardwareOrder": {
      "id": "0191f6a2-8b51-789a-bc32-11449900aabb",
      "type": "initial",
      "status": "pending",
      "recipient": "Beacon Dental (Attn: Reception)"
    }
  }
}
Status Code Matrix
401 Unauthorized

Missing, malformed, or revoked Agency Bearer API Key.

403 Forbidden

Sub-account quota reached (maximum 100 client organizations).

422 Unprocessable

Missing required fields or invalid shipping address parameters.

400 Bad Request

Malformed or unparseable JSON request body.