curl --request GET \
--url https://api.gigstack.io/v2/teams/{id}/onboarding \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gigstack.io/v2/teams/{id}/onboarding', 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}/onboarding"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"team_id": "team_1234567890",
"stage": "test",
"pricing_version": "v3",
"live_since": null,
"sandbox": null,
"checklist": {
"fiscal_data": {
"done": true,
"rfc": "GOMA800101AB1",
"test_rfc": false,
"legal_name": "ANA GOMEZ",
"tax_system": "612",
"zip": "06600",
"missing": []
},
"csd": {
"done": false,
"state": "missing",
"expires_at": null
},
"manifest": {
"done": false
},
"payment_method": {
"done": false
}
},
"test_invoices": {
"count": 1,
"last_id": "inv_test_123"
},
"live_invoices": {
"count": 0
},
"credits": null,
"next_step": "upload_csd",
"go_live_url": "https://app.gigstack.pro/home",
"app_url": "https://app.gigstack.pro"
},
"message": "Onboarding status retrieved successfully"
}Get team onboarding status
Where a team stands between test mode and production, in one read. Built for agents (MCP, CLI) that guide a person from a first test invoice to going live.
stage:sandbox_unclaimed(agent sandbox not claimed yet),test(Pricing v3, not live yet) orlive. Accounts on legacy plans are alwayslive.checklist: what going live needs: own RFC and fiscal data, a valid CSD that is not a SAT test certificate, the signed SAT manifest, and the payment method added at go-live (nothing is charged then).next_step:issue_test_invoice,claim_sandbox,complete_fiscal_data,upload_csd,sign_manifest,go_liveorlive.go_live_url: the app page where the person goes live; null once live.
Read-only and free of credential material, so the test key of an unclaimed sandbox can
read it. Prices are in the public GET /v2/pricing.
curl --request GET \
--url https://api.gigstack.io/v2/teams/{id}/onboarding \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gigstack.io/v2/teams/{id}/onboarding', 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}/onboarding"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"team_id": "team_1234567890",
"stage": "test",
"pricing_version": "v3",
"live_since": null,
"sandbox": null,
"checklist": {
"fiscal_data": {
"done": true,
"rfc": "GOMA800101AB1",
"test_rfc": false,
"legal_name": "ANA GOMEZ",
"tax_system": "612",
"zip": "06600",
"missing": []
},
"csd": {
"done": false,
"state": "missing",
"expires_at": null
},
"manifest": {
"done": false
},
"payment_method": {
"done": false
}
},
"test_invoices": {
"count": 1,
"last_id": "inv_test_123"
},
"live_invoices": {
"count": 0
},
"credits": null,
"next_step": "upload_csd",
"go_live_url": "https://app.gigstack.pro/home",
"app_url": "https://app.gigstack.pro"
},
"message": "Onboarding status retrieved successfully"
}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