Create SubAccount

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

POST /organizations

Creates a new sub-account (child organization) under the authenticated parent account. The sub-account is provisioned with its own administrator user and a dedicated Stripe billing customer/subscription (whitelabel), starting in creating status.

📘

Interested in SubAccounts?

SubAccounts is part of a specific plan. If you'd like to join this plan or learn more about the feature, get in touch with Panda Video support through your dashboard: https://dashboard.pandavideo.com.br/#/videos.

📘

Authorization

Only parent accounts can create sub-accounts. The caller needs both the get-subaccount and put-subaccount permissions, the calling organization must be active, and its subscription must be active or past_due. Sub-accounts cannot create other sub-accounts.

HTTP Method & Path

POST /organizations?action=create-sub-account

Base URL: https://api-v2.pandavideo.com.br

Authentication Requirements

  • Security Scheme: PandaAuth (apiKey)
  • Header: Authorization: <your_api_token> (no Bearer prefix)

Parameters

NameInTypeRequiredDescription
AuthorizationheaderstringYesPanda API token (without Bearer prefix)

Query Parameters

NameTypeRequiredDescription
actionstringYesMust be create-sub-account

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
namestringYesName of the sub-account/organization (1–255 chars)
currencystringYesSub-account currency. Enum: brl, usd
phonestringYesContact phone number
tax_idstringYesCPF or CNPJ (no punctuation)
userobjectYesAdministrator user data
user.namestringYesAdministrator name (1–255 chars)
user.emailstringYesAdministrator email (valid email, ≤255 chars)
⚠️

Do not send status. The request body is validated with additionalProperties: false, so any field outside the list above (including status) is rejected with 400. New sub-accounts always start in creating status.

Example Request Body

{
  "name": "Academia XYZ",
  "currency": "brl",
  "phone": "11999999999",
  "tax_id": "12345678901234",
  "user": {
    "name": "João Silva",
    "email": "[email protected]"
  }
}

Response

Success Response (200)

{
  "status": "creating",
  "organization_id": "efcb5915-df17-46b6-bfd8-e8998bc94917",
  "name": "Academia XYZ"
}
FieldTypeDescription
statusstringAlways creating for a newly provisioned sub-account
organization_idstring (uuid)ID of the newly created sub-account
namestringName of the sub-account
📘

Provisioning is asynchronous. The sub-account starts in creating and becomes usable once provisioning finishes. Check its state via List SubAccounts Usage.

Error Responses

  • 400 Bad Request — one of:
    • Validation error (missing/invalid field, or an unexpected field such as status).
    • "Sub-accounts cannot create sub-accounts."
    • "Organization is not active to create sub-accounts."
    • "Organization in trial or inactive subscription cannot create sub-accounts."
  • 401 Unauthorized — Invalid or missing API token.
  • 403 Forbidden"Verify permissions for the action" (missing get-subaccount/put-subaccount).
  • 500 Internal Server Error — Server error.

Example Usage

cURL

curl -X POST \
  'https://api-v2.pandavideo.com.br/organizations?action=create-sub-account' \
  -H 'Authorization: your_api_token_here' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Academia XYZ",
    "currency": "brl",
    "phone": "11999999999",
    "tax_id": "12345678901234",
    "user": { "name": "João Silva", "email": "[email protected]" }
  }'
Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json