curl --request DELETE \
--url https://api.gigstack.io/v2/teams/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gigstack.io/v2/teams/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.gigstack.io/v2/teams/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text){
"success": true,
"data": {
"id": "team_1234567890",
"status": "pending_deletion",
"scheduled_deletion": {
"date": 1769817600000,
"flagged_at": 1767225600000,
"flagged_by": "user_1234567890"
}
},
"message": "Team scheduled for deletion",
"timestamp": 1767225600000
}Delete team
Schedule a team for deletion (soft delete).
The team’s status is set to pending_deletion and a hard deletion is scheduled 30 days from now.
During this grace period the team is retained for recovery purposes. All members are removed from the team,
and each member’s teams array is updated accordingly. A member’s billingAccount is cleared when no
other team of theirs shares it.
Requires the multipleIssuerAccounts feature on your plan → 403 insufficient_permissions without it.
Preconditions
The team cannot be deleted when any of the following are true:
- The team already has
status = pending_deletion→409 resource_conflict. - The team has existing
invoices,payments, orreceipts→400 business_rule_violation. - The team has any active integration (
completed = true) among:stripe,mercadopago,paypal,openpay,conekta,clip,bank,shopify,whmcs,hilos→400 business_rule_violation.
gigstack Connect: Delete other teams using the team parameter.
curl --request DELETE \
--url https://api.gigstack.io/v2/teams/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gigstack.io/v2/teams/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.gigstack.io/v2/teams/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text){
"success": true,
"data": {
"id": "team_1234567890",
"status": "pending_deletion",
"scheduled_deletion": {
"date": 1769817600000,
"flagged_at": 1767225600000,
"flagged_by": "user_1234567890"
}
},
"message": "Team scheduled for deletion",
"timestamp": 1767225600000
}Authorizations
Authentication Method: HTTP Bearer token.
The runtime requires the literal Bearer prefix — a bare token in the
Authorization header is rejected with 401 unauthorized.
Header Format: Authorization: Bearer YOUR_API_KEY
Your API key is a JWT. Live keys operate on live data (livemode: true);
test keys operate on isolated test data (livemode: false).
Get your key at: app.gigstack.pro/settings?tab=api
Errors: credential failures are answered by the authentication layer with a raw
{ "message": … } body, not the standardized envelope — 401 for a missing, malformed or
expired token, 403 for a revoked key or a plan without API access. See the Unauthorized
and AuthForbidden responses.
Path Parameters
Team ID
Query Parameters
gigstack Connect: Target team ID for multi-team access.
Requires gigstack Connect enabled on your team and shared billing account.
Also requires the multipleIssuerAccounts feature on your plan. Requests targeting a
team other than the one your API key belongs to return 403 without it.
Only API keys can use it: an OAuth access token sent with another team's id is rejected with
403 Team mismatch with OAuth token.
Optional — omit it entirely unless you are acting on another team. It deliberately
carries no example value so generated snippets do not emit ?team=undefined; when the
parameter is absent, the team is derived from your API key.
Example: ?team=team_xyz789
Response
Team scheduled for deletion
Standardized success envelope emitted by sendSuccessResponse.
true true
The operation payload.
Show child attributes
Show child attributes
Server time in epoch milliseconds (Luxon.now().toMillis()).
1767225600000
Human-readable summary. Present only when the handler supplies one.
"Team scheduled for deletion"