| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
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.
AuthorizationOnly parent accounts can create sub-accounts. The caller needs both the
get-subaccountandput-subaccountpermissions, the calling organization must beactive, and its subscription must beactiveorpast_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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Authorization | header | string | Yes | Panda API token (without Bearer prefix) |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
action | string | Yes | Must be create-sub-account |
Request Body
Content-Type: application/json
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the sub-account/organization (1–255 chars) |
currency | string | Yes | Sub-account currency. Enum: brl, usd |
phone | string | Yes | Contact phone number |
tax_id | string | Yes | CPF or CNPJ (no punctuation) |
user | object | Yes | Administrator user data |
user.name | string | Yes | Administrator name (1–255 chars) |
user.email | string | Yes | Administrator email (valid email, ≤255 chars) |
Do not sendstatus. The request body is validated withadditionalProperties: false, so any field outside the list above (includingstatus) is rejected with400. New sub-accounts always start increatingstatus.
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"
}| Field | Type | Description |
|---|---|---|
status | string | Always creating for a newly provisioned sub-account |
organization_id | string (uuid) | ID of the newly created sub-account |
name | string | Name of the sub-account |
Provisioning is asynchronous. The sub-account starts increatingand 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."
- Validation error (missing/invalid field, or an unexpected field such as
- 401 Unauthorized — Invalid or missing API token.
- 403 Forbidden —
"Verify permissions for the action"(missingget-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]" }
}'