gigstack API
  1. Teams
gigstack API
  • Welcome to gigstack API
  • gigstack Connect API Guide
  • Migrar de API v1 a v2 de gigstack
  • Clients
    • Clients API Guide
    • List clients
      GET
    • Get client
      GET
    • Update client
      PUT
    • Create client
      POST
    • Validate client fiscal information
      POST
    • Get client customer portal access token
      POST
    • Stamp pending receipts
      POST
    • Delete client
      DELETE
    • Search clients
      GET
    • Upload CSF PDF to create or update client
      POST
    • Upload support document
      POST
    • List support documents
      GET
  • Services
    • Services API Guide
    • List services
    • Get service
    • Update service
    • Create service
    • Delete service
  • Invoices
    • Invoices API Guide
    • Income
      • List income invoices
      • Create income invoice
      • Get income invoice
    • Egress
      • List egress invoices
      • Create egress invoice
      • Get egress invoice
    • Drafts
      • Create draft invoice (pre-factura)
      • Stamp draft invoice (finalize)
      • Generate draft preview PDF (pre-factura)
      • Delete draft invoice
      • Update draft invoice
      • Get draft invoice
      • List draft invoices
    • List CFDI errors
    • List payment complement invoices
    • Get payment complement invoice
    • Get invoice files
    • Upload support document
    • List support documents
    • Cancel invoice
    • Search invoices
  • Payments
    • Payments API Guide
    • List payments
    • Get payment
    • Request payment
    • Register payment
    • Mark payment as paid
    • Refund payment
    • Cancel payment
    • Search payments
    • Upload support document
    • List support documents
  • Receipts
    • Receipts API Guide
    • List receipts
    • Get receipt
    • Create receipt
    • Stamp receipt
    • Cancel receipt
    • Search receipts
  • Teams
    • Teams API Guide
    • List teams
      GET
    • Get team
      GET
    • Get team integrations
      GET
    • Get team series
      GET
    • Get team onboarding URL
      GET
    • Update team
      PUT
    • Update team series
      PUT
    • Update team settings
      PUT
    • Create team
      POST
    • Add team member
      POST
    • Remove team member
      POST
    • Create team series
      POST
    • Upload SAT CSD certificates
      POST
    • Sign manifest document
      POST
  • Users
    • Users API Guide
    • List users
    • Get user
    • Update user
    • Create user
    • Reset user password
    • Generate login link
  • Catalogs
    • Tax Regimes Catalog (Régimen Fiscal)
    • Payment Forms | Formas de pago
    • CFDI Usage Catalog (Uso CFDI)
    • Payment Methods Catalog (Método de Pago)
    • Months and Bimesters Catalog (Meses y Bimestres)
    • Invoice Relationships Catalog (Relación entre Facturas)
  • Webhooks
    • Webhooks
    • List webhooks
    • Create webhook
    • Get webhook
    • Update webhook
    • Delete webhook
  • Retentions
    • Retentions
    • List retentions
    • Create retention
    • Get retention
    • Cancel retention
    • Get retention files
  • Schemas
    • Schemas
      • ApiResponse
      • Category
      • Pet
      • Tag
      • Order
      • StandardizedSuccessResponse
      • StandardizedErrorResponse
      • ApiErrorCode
    • RequestBodies
      • UserArray
    • OrderDirection
    • ApiPublicClient
    • Client
    • DateRangeFilter
    • Service
    • ListQueryParams
    • ClientInput
    • ApiPublicService
    • ServiceInput
    • PaginationMeta
    • Invoice
    • InvoiceIncomeInput
    • Payment
    • PaymentInput
    • PaymentItem
    • InvoiceInput
    • InvoiceEgressInput
    • Team
    • PaymentAllowedMethod
    • TeamInput
    • TeamSettingsInput
    • CfdiError
    • ApiPublicPaymentProcessorDetails
    • User
    • DraftInvoiceInput
    • ApiPublicPayment
    • UserInput
    • ClientAddress
    • DraftInvoiceUpdateInput
    • DraftInvoiceOutput
    • TaxSchema
    • RequestPaymentInput
    • StandardSuccessResponse
    • RegisterPaymentInput
    • ListResponse
    • ErrorResponse
    • ApiPublicIncomeInvoice
    • ValidationErrorResponse
    • RefundPaymentInput
    • ApiPublicTeam
    • MarkPaymentAsPaidInput
    • UnauthorizedError
    • ApiPublicUser
    • ApiPublicSearch
    • NotFoundError
    • ApiPublicThirdParty
    • InternalServerError
    • ApiPublicInvoiceConfig
    • ApiPublicRefund
    • ApiPublicAutomations
    • TeamSettings
    • TaxElement
    • SeriesInput
    • Series
    • ApiPublicWebhook
    • WebhookInput
    • ReceiptInput
    • WebhookUpdateInput
    • PaymentMethodEnum
    • PaymentFormEnum
    • AutomationTypeEnum
    • ItemSchema
    • SATDocument
    • UploadSupportDocumentInput
  1. Teams

Teams API Guide

Teams API Guide#

Manage teams, configure settings, and control member access. The Teams API handles team creation, configuration, member management, and system-wide settings for invoicing and payments.

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#

Retrieve a paginated list of teams.
Query Parameters:
limit (integer, 1-100) - Number of results per page (default: 10)
next (string) - Pagination cursor for next page
team (string) - gigstack Connect: Target team ID
Example Request:
Example Response:
{
    "success": true,
    "message": "Clients retrieved successfully",
    "timestamp": 1768240724433,
    "data": [
        {
            "id": "team_1234567890",
            "legal_name": "Empresa de Tecnología S.A. de C.V.",
            "address": {
                "country": "MEX",
                "street": "Av. Insurgentes Sur 456",
                "zip": "03100",
                "city": "Ciudad de México",
                "state": "CDMX",
                "exterior": "96",
                "interior": "10",
                "neighborhood": "Polanco"
            },
            "brand": {
                "alias": "Mi Empresa",
                "primary_color": "#007bff",
                "secondary_color": "#6c757d",
                "logo": "https://example.com/logo.png"
            },
            "settings": {
                "avoid_automations_on_currencies": ["USD", "EUR"],
                "default_description": "Default invoice description",
                "taxes": [],
                "taxes_usd": [],
                "emails": {
                    "invoices_bcc": ["accounting@example.com"],
                    "avoid_invoice_emails": false,
                    "avoid_test_invoice_emails": true,
                    "avoid_receipts_emails": false
                },
                "override_item_description": "Custom item description",
                "global_invoice_disabled": false,
                "complements": [],
                "uses_on_self_invoice_portal": ["G03", "S01"],
                "invoice_pdf_notes": "Additional notes for PDF",
                "product_key": "81112209",
                "unit_key": "E48",
                "use": "G03",
                "automate_complement_for_ppd_invoices": true,
                "withholding_taxes": [],
                "customer_portal_id": "portal_1234567890",
                "periodicity": {
                    "label": "Mes",
                    "value": "month"
                },
                "default_series": {
                    "income": {
                        "serie": "A"
                    },
                    "complements": {
                        "serie": "P"
                    },
                    "credit_note": {
                        "serie": "NC"
                    }
                }
            },
            "tax_id": "EMP800101ABC",
            "tax_system": "601",
            "support_email": "support@empresa.com",
            "support_phone": "+52 55 1234 5678",
            "owner": "user_1234567890",
            "created_at": 1677651234,
            "credit_limit": 1000,
            "used_credits": 250,
            "credit_period_start": 1677651234000,
            "sat": {
                "completed": true,
                "connected_at": 1677651234,
                "csd_expires_at": 1924991999
            },
            "members": [
                {
                    "id": "user_1234567890",
                    "email": "member@empresa.com",
                    "role": "admin"
                }
            ],
            "integrations": {
                "stripe": {
                    "completed": false,
                    "category": "payments"
                },
                "mercadopago": {
                    "completed": false,
                    "category": "payments"
                },
                "clip": {
                    "completed": false,
                    "category": "payments"
                },
                "whmcs": {
                    "completed": false,
                    "category": "payments"
                },
                "paypal": {
                    "completed": false,
                    "category": "payments"
                },
                "openpay": {
                    "completed": false,
                    "category": "payments"
                },
                "conekta": {
                    "completed": false,
                    "category": "payments"
                },
                "bank": {
                    "completed": false,
                    "category": "payments"
                },
                "shopify": {
                    "completed": false,
                    "category": "payments"
                },
                "zapier": {
                    "completed": false,
                    "category": "payments"
                },
                "airtable": {
                    "completed": false,
                    "category": "payments"
                },
                "google_sheets": {
                    "completed": false,
                    "category": "payments"
                },
                "hilos": {
                    "completed": false,
                    "category": "messaging"
                }
            },
            "metadata": {
                "custom_field": "value"
            }
        }
    ],
    "next": "team_dmU311Ajzj",
    "total_results": 105,
    "has_more": true
}

Create Team#

Create a new team with initial configuration.
Request Body:
{
    "legal_name": "Empresa de Tecnología S.A. de C.V.",
    "tax_id": "EMP800101ABC",
    "tax_system": "601",
    "brand": {
        "alias": "My Company",
        "primary_color": "#FF0000",
        "secondary_color": "#00FF00",
        "logo": "https://example.com/logo.png"
    },
    "support_email": "support@company.com",
    "support_phone": "+52 55 1234 5678",
    "generate_onboarding_url": true,
    "address": {
        "country": "MEX",
        "street": "Av. Insurgentes Sur",
        "exterior": "123",
        "interior": "4B",
        "neighborhood": "Del Valle",
        "municipality": "Benito Juárez",
        "city": "Ciudad de México",
        "state": "CDMX",
        "zip": "03100"
    },
    "metadata": {
        "external_id": "erp-1234",
        "segment": "enterprise"
    },
    "add_members": [
        {
            "id": "user123abc",
            "role": "editor"
        },
        {
            "id": "user456def",
            "role": "viewer"
        }
    ],
    "add_master_team_members": false
}
Body Parameters:
legal_name (string, optional) - Legal name of the team/company
tax_id (string, optional) - Tax identification number (RFC)
tax_system (string, optional) - SAT tax system code (regimen fiscal)
brand (object, optional) - Branding configuration
alias (string, required within object) - Team display name
primary_color (string, optional) - Primary brand color
secondary_color (string, optional) - Secondary brand color
logo (string, optional) - Logo URL
support_email (string, optional) - Support contact email
support_phone (string, optional) - Support contact phone
generate_onboarding_url (boolean, optional) - When true, includes a secure onboarding URL in the response
address (object, optional) - Team address information
country (string, required within object) - Country code (e.g., "MEX")
street (string, optional) - Street address
exterior (string, optional) - Exterior number
interior (string, optional) - Interior number
neighborhood (string, optional) - Neighborhood/colony
municipality (string, optional) - Municipality
city (string, optional) - City
state (string, optional) - State/province
zip (string, optional) - Postal code
metadata (object, optional) - Arbitrary key-value pairs to store with the team
add_members (array, optional) - Array of members to add to the team on creation
id (string, required) - User ID to add as a team member
role (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
Example Request (basic team creation):
Example Request (with members):
Example Request (with master team members):
Example Response (201 Created):
{
    "success": true,
    "message": "Team created successfully",
    "timestamp": 1768240724433,
    "data": {
        "id": "team_1234567890",
        "legal_name": "Tech Solutions S.A. de C.V.",
        "tax_id": "TSO123456789",
        "tax_system": "601",
        "brand": {
            "alias": "Tech Solutions SA",
            "primary_color": null,
            "secondary_color": null,
            "logo": null
        },
        "address": {
            "country": "MEX",
            "street": null,
            "zip": null,
            "city": null,
            "state": null,
            "exterior": null,
            "interior": null,
            "neighborhood": null
        },
        "support_email": null,
        "support_phone": null,
        "owner": "user_owner123",
        "members": [
            {
                "id": "user_owner123",
                "email": "owner@techsolutions.com",
                "role": "admin"
            }
        ],
        "settings": {},
        "sat": {
            "completed": false,
            "connected_at": null,
            "csd_expires_at": null
        },
        "integrations": {
            "stripe": { "completed": false, "category": "payments" },
            "mercadopago": { "completed": false, "category": "payments" }
        },
        "metadata": null,
        "created_at": 1768240724433,
        "onboarding_url": ""
    }
}
Note: onboarding_url is only populated when generate_onboarding_url: true is sent in the request. Otherwise it is an empty string.

Get Team#

Retrieve a specific team by ID.
Example Request:
Example Response:
{
    "success": true,
    "message": "Team retrieved successfully",
    "timestamp": "2026-01-12T18:00:01.845Z",
    "data": {
        "id": "team_1234567890",
        "legal_name": "Empresa de Tecnología S.A. de C.V.",
        "address": {
            "country": "MEX",
            "street": "Av. Insurgentes Sur 456",
            "zip": "03100",
            "city": "Ciudad de México",
            "state": "CDMX",
            "exterior": "96",
            "interior": "10",
            "neighborhood": "Polanco"
        },
        "brand": {
            "alias": "Mi Empresa",
            "primary_color": "#007bff",
            "secondary_color": "#6c757d",
            "logo": "https://example.com/logo.png"
        },
        "settings": {
            "avoid_automations_on_currencies": ["USD", "EUR"],
            "default_description": "Default invoice description",
            "taxes": [],
            "taxes_usd": [],
            "emails": {
                "invoices_bcc": ["accounting@example.com"],
                "avoid_invoice_emails": false,
                "avoid_test_invoice_emails": true,
                "avoid_receipts_emails": false
            },
            "override_item_description": "Custom item description",
            "global_invoice_disabled": false,
            "complements": [],
            "uses_on_self_invoice_portal": ["G03", "S01"],
            "invoice_pdf_notes": "Additional notes for PDF",
            "product_key": "81112209",
            "unit_key": "E48",
            "use": "G03",
            "automate_complement_for_ppd_invoices": true,
            "withholding_taxes": [],
            "customer_portal_id": "portal_1234567890",
            "periodicity": {
                "label": "Mes",
                "value": "month"
            },
            "default_series": {
                "income": {
                    "serie": "A"
                },
                "complements": {
                    "serie": "P"
                },
                "credit_note": {
                    "serie": "NC"
                }
            }
        },
        "tax_id": "EMP800101ABC",
        "tax_system": "601",
        "support_email": "support@empresa.com",
        "support_phone": "+52 55 1234 5678",
        "owner": "user_1234567890",
        "created_at": 1677651234,
        "sat": {
            "completed": true,
            "connected_at": 1677651234,
            "csd_expires_at": 1924991999
        },
        "members": [
            {
                "id": "user_1234567890",
                "email": "member@empresa.com",
                "role": "admin"
            }
        ],
        "integrations": {
            "stripe": {
                "completed": false,
                "category": "payments"
            },
            "mercadopago": {
                "completed": false,
                "category": "payments"
            },
            "clip": {
                "completed": false,
                "category": "payments"
            },
            "whmcs": {
                "completed": false,
                "category": "payments"
            },
            "paypal": {
                "completed": false,
                "category": "payments"
            },
            "openpay": {
                "completed": false,
                "category": "payments"
            },
            "conekta": {
                "completed": false,
                "category": "payments"
            },
            "bank": {
                "completed": false,
                "category": "payments"
            },
            "shopify": {
                "completed": false,
                "category": "payments"
            },
            "zapier": {
                "completed": false,
                "category": "payments"
            },
            "airtable": {
                "completed": false,
                "category": "payments"
            },
            "google_sheets": {
                "completed": false,
                "category": "payments"
            },
            "hilos": {
                "completed": false,
                "category": "messaging"
            }
        },
        "metadata": {
            "custom_field": "value"
        }
    }
}

Team Response Structure#

Core Fields#

FieldTypeDescription
idstringUnique team identifier
legal_namestringOfficial registered legal name of the company/team
tax_idstringTax identification number (RFC)
tax_systemstringSAT tax system code
support_emailstringTeam support contact email
support_phonestringTeam support contact phone
ownerstringUser ID of the team owner
created_atnumberUnix timestamp of team creation
credit_limitnumber | nullMaximum documents (credits) the team can create per billing period. Null means no per-team limit.
used_creditsnumberNumber of credits used by this team in the current billing period
credit_period_startnumber | nullUnix timestamp (ms) when the current credit period started
metadataobjectCustom metadata key-value pairs

Address Object#

FieldTypeDescription
countrystringCountry code (e.g., "MEX")
streetstringStreet address
zipstringPostal code
citystringCity name
statestringState or province
exteriorstringExterior number
interiorstringInterior number/apartment
neighborhoodstringNeighborhood or colony

Brand Object#

FieldTypeDescription
aliasstringTeam display name
primary_colorstringPrimary brand color (hex)
secondary_colorstringSecondary brand color (hex)
logostringURL to brand logo image

Settings Object#

The settings object contains comprehensive configuration for team operations:
FieldTypeDescription
avoid_automations_on_currenciesarrayList of currency codes to skip automation
default_descriptionstringDefault invoice item description
taxesarrayDefault tax configuration for MXN
taxes_usdarray/booleanTax configuration for USD transactions
emailsobjectEmail notification settings
override_item_descriptionstringOverride for all item descriptions
global_invoice_disabledbooleanWhether global invoicing is disabled
complementsarrayCFDI complements configuration
uses_on_self_invoice_portalarrayAllowed CFDI uses on self-invoice portal
invoice_pdf_notesstringAdditional notes for PDF invoices
product_keystringDefault SAT product key
unit_keystringDefault SAT unit key
usestringDefault CFDI use code
automate_complement_for_ppd_invoicesbooleanAuto-create payment complements for PPD invoices
withholding_taxesarrayWithholding tax configuration
customer_portal_idstringAssociated customer portal ID
periodicityobjectDefault billing periodicity
default_seriesobjectDefault invoice series configuration

Email Settings#

FieldTypeDescription
invoices_bccarrayBCC email addresses for invoices
avoid_invoice_emailsbooleanSkip invoice email notifications
avoid_test_invoice_emailsbooleanSkip test invoice emails
avoid_receipts_emailsbooleanSkip receipt email notifications

Periodicity Object#

FieldTypeDescription
labelstringDisplay label (e.g., "Mes")
valuestringValue code (e.g., "month")

Default Series Object#

FieldTypeDescription
incomeobjectIncome invoice series configuration
complementsobjectComplement invoice series configuration
credit_noteobjectCredit note series configuration
Each series object contains:
serie (string): Series identifier

SAT Object#

FieldTypeDescription
completedbooleanWhether SAT configuration is complete
connected_atnumberUnix timestamp of SAT connection
csd_expires_atnumberUnix timestamp when CSD certificate expires

Members Array#

Each member object contains:
FieldTypeDescription
idstringUser ID
emailstringUser email address
rolestringMember role (admin, editor, viewer)

Integrations Object#

The integrations object contains status for all available integrations. Each integration has:
FieldTypeDescription
completedbooleanWhether integration is configured
categorystringIntegration category (payments, messaging)
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 information. Uses the same schema as Create Team but all fields are optional for updates.
Request Body (same as Create Team, all fields optional):
{
    "brand": {
        "alias": "Tech Solutions International"
    },
    "support_email": "help@techsolutions.com",
    "tax_system": "601"
}
Example Request:

Update Team Settings#

Update comprehensive team settings including defaults, taxes, and automation.
Request Body:
{
    "avoid_legal_name_replacer": false,
    "default_description": "Professional services",
    "invoice_pdf_notes": "Thank you for your business",
    "product_key": "80141503",
    "unit_key": "E48",
    "use": "P01",
    "periodicity": "month",
    "taxes": [
        {
            "type": "IVA",
            "rate": 0.16,
            "factor": "Tasa",
            "withholding": false
        }
    ],
    "taxes_usd": [
        {
            "type": "IVA",
            "rate": 0.0,
            "factor": "Exento"
        }
    ],
    "emails": {
        "invoices_bcc": ["accounting@company.com"],
        "avoid_invoice_emails": false,
        "avoid_test_invoice_emails": true,
        "avoid_receipts_emails": false
    },
    "default_series": {
        "income": {
            "serie": "A",
            "folio_number_live": 1001,
            "folio_number_test": 1
        },
        "complements": {
            "serie": "C",
            "folio_number_live": 1001,
            "folio_number_test": 1
        },
        "credit_note": {
            "serie": "N",
            "folio_number_live": 1001,
            "folio_number_test": 1
        }
    },
    "automate_complement_for_ppd_invoices": true,
    "global_invoice_disabled": false,
    "uses_on_self_invoice_portal": ["P01", "G03", "G01"]
}
Example Request:

Get Team Integrations#

Get available integrations for teams.
Example Request:

Add Team Member#

Add a member to a team with a specified role.
Request Body:
{
    "id": "user_9876543210",
    "role": "editor"
}
Body Parameters:
id (string, required) - User ID of the member to add
role (string, optional) - Member role. If not specified, defaults to "viewer"
Options: "admin", "editor", "viewer"
Default: "viewer"
Note: Body parameters are validated in the handler using withBaseSchema() with inline validation.
Example Request (with specified role):
Example Request (default role - viewer):

Remove Team Member#

Remove a member from a team.
Request Body:
{
    "id": "user_9876543210"
}
Body Parameters:
id (string, required) - User ID of the member to remove
Note: Body parameters are validated in the handler using withBaseSchema() with inline validation.
Example Request:

Get Team Series#

Get invoice series configuration for a team.
Example Request:

Create Team Series#

Create a new invoice series for a team.
Request Body:
{
    "series": "B",
    "live": 1000,
    "test": 1
}
Body Parameters:
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)
Example Request:

Update Team Series#

Update an existing team series.
Request Body:
{
    "live": 2000,
    "test": 50
}
Body Parameters:
live (number, optional) - Update folio number for live mode
test (number, optional) - Update folio number for test mode
Note: At least one of live or test must be provided.
Example Request:

Get Team Onboarding URL#

Generate a secure onboarding URL for team setup and configuration. This endpoint is only available for gigstack Connect accounts (master teams).
Important: This endpoint is only available for gigstack Connect accounts.
Use Cases:
Generate onboarding links for new teams
Allow secure team configuration setup
Enable embedded team management flows
Parameters:
id (path, required) - Team ID to generate onboarding URL for
Example Request:
Example Response:
{
    "data": "https://embeded.gigstack.pro/?sessionId=otpOnboarding_abc123&c=secure_token",
    "message": "Onboarding URL generated successfully"
}
Error Responses:
401 Unauthorized - Only available for master teams
404 Not Found - Team not found
The generated URL provides secure access to the team onboarding interface with a temporary session and secure code.

Upload SAT CSD Certificates#

Upload SAT CSD (Certificado de Sello Digital) certificates to establish SAT connection for CFDI invoicing. This endpoint accepts multipart form data with the certificate files and password.
Required Files:
cert: Certificate file (.cer) - The public certificate
key: Private key file (.key) - The encrypted private key
keyPass: Password for the private key
First-Time Connection:
When this is the first SAT connection for a team (no previous SAT setup), the system will automatically initialize default invoice series (G, NC, P, T).
gigstack Connect: Upload SAT certificates for other teams using the team query parameter.
Parameters:
id (path, required) - Team ID to upload SAT certificates for
team (query, optional) - Target team ID for gigstack Connect
Request Body (multipart/form-data):
cert (binary, required) - Certificate file (.cer)
key (binary, required) - Private key file (.key)
keyPass (string, required) - Password for the private key
Example Request:
Example Response:
{
    "message": "SAT connection established successfully",
    "data": {
        "isValid": true,
        "details": {
            "serialNumber": "30001000000500003416",
            "validTo": 1735689600000
        }
    }
}
Response Fields:
isValid (boolean) - Whether the certificate is valid
details.serialNumber (string) - Certificate serial number
details.validTo (number) - Unix timestamp in milliseconds when certificate expires
Error Responses:
400 - Bad Request:
{
    "message": "Invalid certificate",
    "error": "Missing required files or invalid certificate format"
}
401 - Unauthorized:
{
    "message": "Unauthorized",
    "error": "Invalid or missing authentication token"
}
403 - Forbidden:
{
    "message": "Access denied",
    "error": "Team not in same billing account"
}

Sign Manifest Document#

Sign a manifest document (Carta Manifiesto) using the FIEL (Firma Electronica Avanzada) for SAT compliance. This endpoint is used to sign the authorization manifest that authorizes the PAC (Proveedor Autorizado de Certificacion) to issue CFDI invoices on behalf of your team's RFC.
The manifest must be signed to grant the PAC permission to stamp and process invoices under your team's tax identification. Once signed, the manifest is stored in your team's SAT configuration and includes both XML and PDF files.
Important Requirements:
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
Supported Formats:
This endpoint accepts two content types:
1.
JSON format (application/json): Send Base64 encoded certificate files
2.
Form Data format (multipart/form-data): Upload certificate files directly
Parameters:
id (path, required) - Team ID to sign manifest for
Request Body (JSON):
{
    "key": "MIIFDjBABgkqhkiG9w0BBQ0wMz...",
    "cert": "MIIFuzCCA6OgAwIBAgIUMzAwMD...",
    "password": "my_secure_password"
}
Request Body (Form Data):
key (file) - FIEL .key file upload
cert (file) - FIEL .cer file upload
password (string) - FIEL password (private key password)
Example Request (JSON):
Example Request (Form Data):
Example Response:
{
    "message": "Manifest signed successfully",
    "data": {
        "xmlBase64": "PD94bWwgdmVyc2lvbj0iMS4wIi...",
        "pdfBase64": "JVBERi0xLjQKJeLjz9MKMyAwIG...",
        "fechaFirma": "2024-01-08T15:30:00.000Z",
        "mensajeResultado": "Firma exitosa"
    }
}
Response Fields:
xmlBase64 (string) - Base64 encoded signed manifest XML
pdfBase64 (string) - Base64 encoded manifest PDF
fechaFirma (string) - Signature date and time in ISO 8601 format
mensajeResultado (string) - Result message from signing service
Error Responses:
StatusErrorDescription
400key (Base64 encoded .key file) is requiredMissing required key field
400cert (Base64 encoded .cert file) is requiredMissing required cert field
400password is requiredMissing required password field
400Certificado FIEL invalidoInvalid FIEL certificate
400El RFC del certificado no coincide con el RFC del equipoCertificate RFC does not match team RFC
400SAT configuration is incompleteSAT setup must be completed before signing manifests
400Manifest signing failed: [error message]Signing service rejected the request
401UnauthorizedInvalid or missing authentication token
404Team not foundTeam does not exist

Team Settings Structure#

Core Settings#

SettingTypeDescription
default_descriptionstringDefault item description
product_keystringDefault SAT product key
unit_keystringDefault SAT unit key
usestringDefault CFDI use code
periodicityobjectDefault billing/invoicing period with label and value
invoice_pdf_notesstringNotes added to PDF invoices
override_item_descriptionstringOverride all item descriptions
avoid_automations_on_currenciesarrayList of currency codes to skip automation
global_invoice_disabledbooleanWhether global invoicing is disabled
automate_complement_for_ppd_invoicesbooleanAuto-create payment complements for PPD invoices
customer_portal_idstringAssociated customer portal ID
uses_on_self_invoice_portalarrayAllowed CFDI uses on self-invoice portal
complementsarrayCFDI complements configuration
default_seriesobjectDefault invoice series for income, complements, and credit notes

Tax Configuration#

{
    "taxes": [
        {
            "type": "IVA",
            "rate": 0.16,
            "factor": "Tasa",
            "withholding": false
        }
    ],
    "taxes_usd": [
        {
            "type": "IVA",
            "rate": 0.0,
            "factor": "Exento"
        }
    ],
    "withholding_taxes": [
        {
            "type": "ISR",
            "rate": 0.1,
            "withholding": true
        }
    ]
}

Email Settings#

{
    "emails": {
        "invoices_bcc": ["accounting@company.com", "admin@company.com"],
        "avoid_invoice_emails": false,
        "avoid_test_invoice_emails": true,
        "avoid_receipts_emails": false
    }
}

Series Configuration#

{
    "default_series": {
        "income": {
            "serie": "A",
            "folio_number_live": 1001,
            "folio_number_test": 1
        },
        "complements": {
            "serie": "C",
            "folio_number_live": 1001,
            "folio_number_test": 1
        },
        "credit_note": {
            "serie": "N",
            "folio_number_live": 1001,
            "folio_number_test": 1
        }
    }
}

Configuration Examples#

Basic Team Setup#

Professional Services Configuration#

E-commerce Configuration#

International Business Configuration#

Best Practices#

1.
Configure defaults early - Set up team settings before creating invoices
2.
Use appropriate tax settings - Configure taxes based on business type
3.
Set up email BCCs - Ensure accounting gets copies
4.
Manage series carefully - Don't duplicate series across invoice types
5.
Test in staging - Verify settings with test folios first
6.
Enable automations wisely - Understand impact on workflows
7.
Keep member roles updated - Regular access reviews

Member Roles#

RolePermissions
adminFull access
editorCreate/edit resources
viewerRead-only access

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#

{
    "message": "Team not found",
    "error": "The specified team does not exist"
}

Invalid Tax Configuration#

{
    "message": "Invalid tax settings",
    "error": "Tax rate must be between 0 and 1"
}

Member Already Exists#

{
    "message": "Member already in team",
    "error": "User is already a member of this team"
}

Invalid Series#

{
    "message": "Series conflict",
    "error": "Series 'A' already exists for income invoices"
}

Permission Denied#

{
    "message": "Insufficient permissions",
    "error": "Admin role required for this action"
}

For additional assistance, contact support@gigstack.io
Modified at 2026-03-11 10:57:43
Previous
Search receipts
Next
List teams
Built with