Overview
Teams are organizational units that contain settings, members, and resources. Each team has its own configuration for invoicing, taxes, series, and automation preferences.Key Features
- Team Management - Create and configure teams with initial member setup
- Member Administration - Add/remove team members, bulk import from master team
- Settings Configuration - Invoice, tax, and email settings
- SAT Connection - Upload CSD certificates for CFDI invoicing
- Series Management - Configure invoice series and folios
- Integration Support - Connect with external services
- gigstack Connect - Enable multi-team access
Endpoints
List Teams
limit(integer, 1-100) - Number of results per page (default: 10)next(string) - Pagination cursor for next pageteam(string) - gigstack Connect: Target team ID
Create Team
Requires theRequest Body:multipleIssuerAccountsfeature on your plan. Without it this endpoint returns403, as doesDELETE /teams/{id}.
legal_name(string, optional) - Legal name of the team/companytax_id(string, optional) - Tax identification number (RFC)tax_system(string, optional) - SAT tax system code (regimen fiscal)brand(object, optional) - Branding configurationalias(string, required within object) - Team display nameprimary_color(string, optional) - Primary brand colorsecondary_color(string, optional) - Secondary brand colorlogo(string, optional) - Logo URL
support_email(string, optional) - Support contact emailsupport_phone(string, optional) - Support contact phonegenerate_onboarding_url(boolean, optional) - When true, includes a secure onboarding URL in the responseaddress(object, optional) - Team address informationcountry(string, required within object) - Country code (e.g., “MEX”)street(string, optional) - Street addressexterior(string, optional) - Exterior numberinterior(string, optional) - Interior numberneighborhood(string, optional) - Neighborhood/colonymunicipality(string, optional) - Municipalitycity(string, optional) - Citystate(string, optional) - State/provincezip(string, optional) - Postal code
metadata(object, optional) - Arbitrary key-value pairs to store with the teamadd_members(array, optional) - Array of members to add to the team on creationid(string, required) - User ID to add as a team memberrole(string, optional, defaults to “viewer”) - Member role. Options: “admin”, “editor”, “viewer”
add_master_team_members(boolean, optional) - When true, copies all members from the master team to the newly created team with their existing permissions. Only applicable for gigstack Connect accounts
onboarding_url is only populated when generate_onboarding_url: true is sent in the request. Otherwise it is an empty string.
Get Team
Team Response Structure
Core Fields
Address Object
Brand Object
Settings Object
The settings object contains comprehensive configuration for team operations:Email Settings
Periodicity Object
Default Series Object
Each series object contains:
serie(string): Series identifier
SAT Object
Members Array
Each member object contains:Integrations Object
The integrations object contains status for all available integrations. Each integration has:
Available Integrations:
- Payment providers:
stripe,mercadopago,clip,whmcs,paypal,openpay,conekta,bank,shopify - Data integrations:
zapier,airtable,google_sheets - Messaging:
hilos
Update Team
Update Team Settings
Request Body:⚠️ Here
periodicityistwo_months— pluralPUT /teams/{id}/settingsaccepts exactly:sent as a plain string, not an object. Anything else fails validation with400. The receipts endpoints usetwo_month— singular (POST /v2/receipts, fieldperiodicity). The two endpoints genuinely disagree and neither accepts the other’s spelling. This is the current state of the API, deliberately left alone because normalizing it would break live integrations. Never copy a periodicity value between the two — look it up. See Receipts → Periodicity Options. Note the asymmetry between write and read: you sendperiodicityas a string here, butGET /teams/{id}returns whatever is stored under the team’sdefaults.periodicity, which for teams configured through the dashboard is a{ label, value }object. Readperiodicity.valuedefensively.
Get Team Integrations
🚧 Not yet available. The route is registered and reachable, but the handler is still a stub. Every call returns:Do not build against it. UseGET /teams/{id}instead — the team response already carries the Integrations Object with acompletedflag per provider, which is the information this endpoint is eventually meant to serve. (Historical note: this path used to be unreachable altogether — it was registered afterGET /teams/{id}, so Express matchedintegrationsas a team id and you got a 404 for a team that does not exist. The ordering is fixed; only the handler remains.)
Add Team Member
id(string, required) - User ID of the member to addrole(string, optional) - Member role. If not specified, defaults to “viewer”- Options:
"admin","editor","viewer" - Default:
"viewer"
- Options:
id, not
user_id, in this body.
Example Request (with specified role):
Remove Team Member
id(string, required) - User ID of the member to remove
id, not
user_id, in this body.
Example Request:
Get Team Series
Create Team Series
series(string, required) - Series identifier (alphanumeric, max 10 characters)live(number, optional) - Initial folio number for live mode (default: 0)test(number, optional) - Initial folio number for test mode (default: 0)
Update Team Series
live(number, optional) - Update folio number for live modetest(number, optional) - Update folio number for test mode
live or test must be provided.
Example Request:
Get Team Onboarding URL
- Generate onboarding links for new teams
- Allow secure team configuration setup
- Enable embedded team management flows
id(path, required) - Team ID to generate onboarding URL for
- 401 Unauthorized - Only available for master teams
- 404 Not Found - Team not found
Upload SAT CSD Certificates
- cert: Certificate file (.cer) - The public certificate
- key: Private key file (.key) - The encrypted private key
- keyPass: Password for the private key
team query parameter.
Parameters:
id(path, required) - Team ID to upload SAT certificates forteam(query, optional) - Target team ID for gigstack Connect
cert(binary, required) - Certificate file (.cer)key(binary, required) - Private key file (.key)keyPass(string, required) - Password for the private key
isValid(boolean) - Whether the certificate is validdetails.serialNumber(string) - Certificate serial numberdetails.validTo(number) - Unix timestamp in milliseconds when certificate expires
Sign Manifest Document
- Your SAT configuration must be completed before signing the manifest
- The FIEL certificate must be valid and issued by SAT
- The certificate must match your team’s RFC
- The team ID is specified in the URL path parameter
- JSON format (application/json): Send Base64 encoded certificate files
- Form Data format (multipart/form-data): Upload certificate files directly
id(path, required) - Team ID to sign manifest for
key(file) - FIEL .key file uploadcert(file) - FIEL .cer file uploadpassword(string) - FIEL password (private key password)
xmlBase64(string) - Base64 encoded signed manifest XMLpdfBase64(string) - Base64 encoded manifest PDFfechaFirma(string) - Signature date and time in ISO 8601 formatmensajeResultado(string) - Result message from signing service
Team Settings Structure
Core Settings
Tax Configuration
Email Settings
Series Configuration
Configuration Examples
Basic Team Setup
Professional Services Configuration
E-commerce Configuration
International Business Configuration
Best Practices
- Configure defaults early - Set up team settings before creating invoices
- Use appropriate tax settings - Configure taxes based on business type
- Set up email BCCs - Ensure accounting gets copies
- Manage series carefully - Don’t duplicate series across invoice types
- Test in staging - Verify settings with test folios first
- Enable automations wisely - Understand impact on workflows
- Keep member roles updated - Regular access reviews
Member Roles
Team Workflows
Initial Setup
Member Management
Related Resources
- Users API - Manage team members
- gigstack Connect - Multi-team access
- Invoices API - Uses team settings
- Payments API - Uses team configuration
Error Handling
Team Not Found
Invalid Tax Configuration
Member Already Exists
Invalid Series
Permission Denied
For additional assistance, contact support@gigstack.io