Pular para o conteúdo principal

Projetos

Gerencie projetos, waves (sprints), epicos, tarefas e membros de equipe.

Listar Projetos

GET /external/v1/projects

Retorna uma lista paginada de projetos.

Query Parameters:

ParametroTipoObrigatorioDescricao
pagenumberNaoPagina atual (default: 1)
limitnumberNaoItens por pagina (default: 20, max: 100)
searchstringNaoBusca por titulo
responsibleIdstringNaoFiltro por responsavel (companyUserId)
businessUnitIdstringNaoFiltro por unidade de negocio
statusstringNaoFiltro: PLANNING, IN_PROGRESS, ON_HOLD, COMPLETED, CANCELLED
orderBystringNaoCampo: title, startDate, createdAt (default: createdAt)
orderstringNaoASC ou DESC (default: DESC)

Exemplo de requisicao:

curl -X GET "https://api.tesselys.com.br/external/v1/projects?status=IN_PROGRESS&limit=10" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}"

Resposta (200):

{
"data": [
{
"id": "clxa0j1k2l3m4n5o6p7q8r9s0",
"code": "PRP-1015",
"title": "Implantacao Tesselys - Fase 2",
"description": "Segunda fase da implantacao com modulos financeiro e estoque.",
"responsibleId": "clxuser001",
"responsibleName": "Carlos Silva",
"businessUnitId": "clxbu001",
"businessUnitName": "Tecnologia",
"status": "IN_PROGRESS",
"startDate": "2026-02-01T00:00:00.000Z",
"expectedEndDate": "2026-06-30T00:00:00.000Z",
"endDate": null,
"progress": 35,
"isActive": true,
"createdAt": "2026-01-28T14:00:00.000Z",
"updatedAt": "2026-03-20T09:30:00.000Z"
}
],
"meta": {
"total": 12,
"page": 1,
"limit": 10,
"totalPages": 2
}
}

Buscar Projeto por ID

GET /external/v1/projects/:id

Exemplo de requisicao:

curl -X GET "https://api.tesselys.com.br/external/v1/projects/clxa0j1k2l3m4n5o6p7q8r9s0" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}"

Resposta (200):

{
"id": "clxa0j1k2l3m4n5o6p7q8r9s0",
"code": "PRP-1015",
"title": "Implantacao Tesselys - Fase 2",
"description": "Segunda fase da implantacao com modulos financeiro e estoque. Inclui migracoes de dados e treinamentos.",
"responsibleId": "clxuser001",
"responsibleName": "Carlos Silva",
"businessUnitId": "clxbu001",
"businessUnitName": "Tecnologia",
"status": "IN_PROGRESS",
"startDate": "2026-02-01T00:00:00.000Z",
"expectedEndDate": "2026-06-30T00:00:00.000Z",
"endDate": null,
"progress": 35,
"budget": 120000.00,
"isActive": true,
"createdAt": "2026-01-28T14:00:00.000Z",
"updatedAt": "2026-03-20T09:30:00.000Z"
}

Criar Projeto

POST /external/v1/projects

Body:

CampoTipoObrigatorioDescricao
titlestringSimTitulo do projeto (max: 255)
responsibleIdstringSimID do responsavel (companyUserId)
businessUnitIdstringNaoID da unidade de negocio
descriptionstringNaoDescricao detalhada
startDatestringNaoData de inicio (ISO 8601: YYYY-MM-DD)
expectedEndDatestringNaoData prevista de conclusao (ISO 8601: YYYY-MM-DD)
budgetnumberNaoOrcamento previsto

Exemplo de requisicao:

curl -X POST "https://api.tesselys.com.br/external/v1/projects" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}" \
-H "Content-Type: application/json" \
-d '{
"title": "Migracao de Infraestrutura Cloud",
"responsibleId": "clxuser002",
"businessUnitId": "clxbu001",
"description": "Migracao completa da infraestrutura on-premise para AWS. Inclui banco de dados, aplicacoes e armazenamento.",
"startDate": "2026-04-01",
"expectedEndDate": "2026-09-30",
"budget": 250000.00
}'

Resposta (201):

{
"id": "clxb1k2l3m4n5o6p7q8r9s0t1",
"code": "PRP-1016",
"title": "Migracao de Infraestrutura Cloud",
"description": "Migracao completa da infraestrutura on-premise para AWS. Inclui banco de dados, aplicacoes e armazenamento.",
"responsibleId": "clxuser002",
"responsibleName": "Ana Rodrigues",
"businessUnitId": "clxbu001",
"businessUnitName": "Tecnologia",
"status": "PLANNING",
"startDate": "2026-04-01T00:00:00.000Z",
"expectedEndDate": "2026-09-30T00:00:00.000Z",
"endDate": null,
"progress": 0,
"budget": 250000.00,
"isActive": true,
"createdAt": "2026-03-25T12:00:00.000Z",
"updatedAt": "2026-03-25T12:00:00.000Z"
}
Nota

Projetos sao criados automaticamente com status PLANNING. O campo code e gerado automaticamente pelo sistema.


Waves de Projeto

Listar Waves

GET /external/v1/project-waves

Retorna uma lista paginada de waves do projeto.

Query Parameters:

ParametroTipoObrigatorioDescricao
pagenumberNaoPagina atual (default: 1)
limitnumberNaoItens por pagina (default: 20, max: 100)
projectIdstringNaoFiltro por projeto

Exemplo de requisicao:

curl -X GET "https://api.tesselys.com.br/external/v1/project-waves?projectId=clxa0j1k2l3m4n5o6p7q8r9s0&limit=10" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}"

Resposta (200):

{
"data": [
{
"id": "clxw0a1b2c3d4e5f6g7h8i9j0",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"title": "Sprint 1 - Fundacoes",
"description": "Configuracao inicial do ambiente e estrutura base do projeto.",
"startDate": "2026-02-01T00:00:00.000Z",
"endDate": "2026-02-14T00:00:00.000Z",
"status": "COMPLETED",
"createdAt": "2026-01-28T14:00:00.000Z"
},
{
"id": "clxw1b2c3d4e5f6g7h8i9j0k1",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"title": "Sprint 2 - Modulo Financeiro",
"description": "Implementacao dos fluxos de contas a pagar e receber.",
"startDate": "2026-02-15T00:00:00.000Z",
"endDate": "2026-02-28T00:00:00.000Z",
"status": "ACTIVE",
"createdAt": "2026-02-10T10:00:00.000Z"
}
],
"meta": {
"total": 6,
"page": 1,
"limit": 10,
"totalPages": 1
}
}

Buscar Wave por ID

GET /external/v1/project-waves/:id

Exemplo de requisicao:

curl -X GET "https://api.tesselys.com.br/external/v1/project-waves/clxw0a1b2c3d4e5f6g7h8i9j0" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}"

Resposta (200):

{
"id": "clxw0a1b2c3d4e5f6g7h8i9j0",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"title": "Sprint 1 - Fundacoes",
"description": "Configuracao inicial do ambiente e estrutura base do projeto.",
"startDate": "2026-02-01T00:00:00.000Z",
"endDate": "2026-02-14T00:00:00.000Z",
"status": "COMPLETED",
"createdAt": "2026-01-28T14:00:00.000Z"
}

Criar Wave

POST /external/v1/project-waves

Body:

CampoTipoObrigatorioDescricao
projectIdstringSimID do projeto
titlestringSimTitulo da wave (max: 255)
startDatestringNaoData de inicio (ISO 8601: YYYY-MM-DD)
endDatestringNaoData de termino (ISO 8601: YYYY-MM-DD)
descriptionstringNaoDescricao da wave

Exemplo de requisicao:

curl -X POST "https://api.tesselys.com.br/external/v1/project-waves" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}" \
-H "Content-Type: application/json" \
-d '{
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"title": "Sprint 3 - Modulo Estoque",
"description": "Implementacao do controle de estoque e movimentacoes.",
"startDate": "2026-03-01",
"endDate": "2026-03-14"
}'

Resposta (201):

{
"id": "clxw2c3d4e5f6g7h8i9j0k1l2",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"title": "Sprint 3 - Modulo Estoque",
"description": "Implementacao do controle de estoque e movimentacoes.",
"startDate": "2026-03-01T00:00:00.000Z",
"endDate": "2026-03-14T00:00:00.000Z",
"status": "PLANNING",
"createdAt": "2026-03-25T12:00:00.000Z"
}

Atualizar Wave

PUT /external/v1/project-waves/:id

Body: Mesmos campos do POST (exceto projectId). Envie apenas os campos que deseja atualizar.

Exemplo de requisicao:

curl -X PUT "https://api.tesselys.com.br/external/v1/project-waves/clxw2c3d4e5f6g7h8i9j0k1l2" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}" \
-H "Content-Type: application/json" \
-d '{
"title": "Sprint 3 - Estoque e Inventario",
"endDate": "2026-03-21"
}'

Resposta (200):

{
"id": "clxw2c3d4e5f6g7h8i9j0k1l2",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"title": "Sprint 3 - Estoque e Inventario",
"description": "Implementacao do controle de estoque e movimentacoes.",
"startDate": "2026-03-01T00:00:00.000Z",
"endDate": "2026-03-21T00:00:00.000Z",
"status": "PLANNING",
"createdAt": "2026-03-25T12:00:00.000Z"
}

Epicos de Projeto

Listar Epicos

GET /external/v1/project-epics

Retorna uma lista paginada de epicos do projeto.

Query Parameters:

ParametroTipoObrigatorioDescricao
pagenumberNaoPagina atual (default: 1)
limitnumberNaoItens por pagina (default: 20, max: 100)
projectIdstringNaoFiltro por projeto

Exemplo de requisicao:

curl -X GET "https://api.tesselys.com.br/external/v1/project-epics?projectId=clxa0j1k2l3m4n5o6p7q8r9s0" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}"

Resposta (200):

{
"data": [
{
"id": "clxe0a1b2c3d4e5f6g7h8i9j0",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"title": "Modulo Financeiro",
"description": "Todas as funcionalidades relacionadas a contas a pagar, receber e fluxo de caixa.",
"color": "#4CAF50",
"createdAt": "2026-01-28T14:30:00.000Z"
},
{
"id": "clxe1b2c3d4e5f6g7h8i9j0k1",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"title": "Modulo Estoque",
"description": "Controle de estoque, movimentacoes e inventario.",
"color": "#2196F3",
"createdAt": "2026-01-28T14:35:00.000Z"
}
],
"meta": {
"total": 4,
"page": 1,
"limit": 20,
"totalPages": 1
}
}

Buscar Epico por ID

GET /external/v1/project-epics/:id

Exemplo de requisicao:

curl -X GET "https://api.tesselys.com.br/external/v1/project-epics/clxe0a1b2c3d4e5f6g7h8i9j0" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}"

Resposta (200):

{
"id": "clxe0a1b2c3d4e5f6g7h8i9j0",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"title": "Modulo Financeiro",
"description": "Todas as funcionalidades relacionadas a contas a pagar, receber e fluxo de caixa.",
"color": "#4CAF50",
"createdAt": "2026-01-28T14:30:00.000Z"
}

Criar Epico

POST /external/v1/project-epics

Body:

CampoTipoObrigatorioDescricao
projectIdstringSimID do projeto
titlestringSimTitulo do epico (max: 255)
descriptionstringNaoDescricao do epico
colorstringNaoCor em hexadecimal (ex: #FF5722)

Exemplo de requisicao:

curl -X POST "https://api.tesselys.com.br/external/v1/project-epics" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}" \
-H "Content-Type: application/json" \
-d '{
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"title": "Integracoes Externas",
"description": "Integracoes com gateways de pagamento, ERPs legados e APIs de terceiros.",
"color": "#FF5722"
}'

Resposta (201):

{
"id": "clxe2c3d4e5f6g7h8i9j0k1l2",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"title": "Integracoes Externas",
"description": "Integracoes com gateways de pagamento, ERPs legados e APIs de terceiros.",
"color": "#FF5722",
"createdAt": "2026-03-25T12:00:00.000Z"
}

Atualizar Epico

PUT /external/v1/project-epics/:id

Body: Mesmos campos do POST (exceto projectId). Envie apenas os campos que deseja atualizar.

Exemplo de requisicao:

curl -X PUT "https://api.tesselys.com.br/external/v1/project-epics/clxe2c3d4e5f6g7h8i9j0k1l2" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}" \
-H "Content-Type: application/json" \
-d '{
"title": "Integracoes Externas e Webhooks",
"color": "#E91E63"
}'

Resposta (200):

{
"id": "clxe2c3d4e5f6g7h8i9j0k1l2",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"title": "Integracoes Externas e Webhooks",
"description": "Integracoes com gateways de pagamento, ERPs legados e APIs de terceiros.",
"color": "#E91E63",
"createdAt": "2026-03-25T12:00:00.000Z"
}

Tarefas de Projeto

Listar Tarefas

GET /external/v1/project-tasks

Retorna uma lista paginada de tarefas do projeto.

Query Parameters:

ParametroTipoObrigatorioDescricao
pagenumberNaoPagina atual (default: 1)
limitnumberNaoItens por pagina (default: 20, max: 100)
projectIdstringNaoFiltro por projeto
waveIdstringNaoFiltro por wave
epicIdstringNaoFiltro por epico
assigneeIdstringNaoFiltro por responsavel (companyUserId)
statusstringNaoFiltro: TO_DO, IN_PROGRESS, REVIEW, DONE
prioritystringNaoFiltro: LOW, MEDIUM, HIGH, URGENT

Exemplo de requisicao:

curl -X GET "https://api.tesselys.com.br/external/v1/project-tasks?projectId=clxa0j1k2l3m4n5o6p7q8r9s0&status=IN_PROGRESS&limit=10" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}"

Resposta (200):

{
"data": [
{
"id": "clxt0a1b2c3d4e5f6g7h8i9j0",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"waveId": "clxw1b2c3d4e5f6g7h8i9j0k1",
"epicId": "clxe0a1b2c3d4e5f6g7h8i9j0",
"title": "Implementar fluxo de contas a pagar",
"description": "Criar tela de lancamento, aprovacao e baixa de contas a pagar.",
"assigneeId": "clxuser001",
"assigneeName": "Carlos Silva",
"priority": "HIGH",
"status": "IN_PROGRESS",
"percentComplete": 60,
"estimatedHours": 24,
"dueDate": "2026-02-25T00:00:00.000Z",
"createdAt": "2026-02-15T09:00:00.000Z"
},
{
"id": "clxt1b2c3d4e5f6g7h8i9j0k1",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"waveId": "clxw1b2c3d4e5f6g7h8i9j0k1",
"epicId": "clxe0a1b2c3d4e5f6g7h8i9j0",
"title": "Integrar gateway de pagamento Asaas",
"description": "Configurar integracao com API Asaas para boleto e PIX.",
"assigneeId": "clxuser002",
"assigneeName": "Ana Rodrigues",
"priority": "MEDIUM",
"status": "IN_PROGRESS",
"percentComplete": 30,
"estimatedHours": 16,
"dueDate": "2026-02-28T00:00:00.000Z",
"createdAt": "2026-02-16T10:00:00.000Z"
}
],
"meta": {
"total": 18,
"page": 1,
"limit": 10,
"totalPages": 2
}
}

Buscar Tarefa por ID

GET /external/v1/project-tasks/:id

Exemplo de requisicao:

curl -X GET "https://api.tesselys.com.br/external/v1/project-tasks/clxt0a1b2c3d4e5f6g7h8i9j0" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}"

Resposta (200):

{
"id": "clxt0a1b2c3d4e5f6g7h8i9j0",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"waveId": "clxw1b2c3d4e5f6g7h8i9j0k1",
"epicId": "clxe0a1b2c3d4e5f6g7h8i9j0",
"title": "Implementar fluxo de contas a pagar",
"description": "Criar tela de lancamento, aprovacao e baixa de contas a pagar.",
"assigneeId": "clxuser001",
"assigneeName": "Carlos Silva",
"priority": "HIGH",
"status": "IN_PROGRESS",
"percentComplete": 60,
"estimatedHours": 24,
"dueDate": "2026-02-25T00:00:00.000Z",
"createdAt": "2026-02-15T09:00:00.000Z"
}

Criar Tarefa

POST /external/v1/project-tasks

Body:

CampoTipoObrigatorioDescricao
projectIdstringSimID do projeto
titlestringSimTitulo da tarefa (max: 255)
waveIdstringNaoID da wave
epicIdstringNaoID do epico
assigneeIdstringNaoID do responsavel (companyUserId)
prioritystringNaoPrioridade: LOW, MEDIUM, HIGH, URGENT (default: MEDIUM)
descriptionstringNaoDescricao detalhada
dueDatestringNaoData limite (ISO 8601: YYYY-MM-DD)
estimatedHoursnumberNaoHoras estimadas

Exemplo de requisicao:

curl -X POST "https://api.tesselys.com.br/external/v1/project-tasks" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}" \
-H "Content-Type: application/json" \
-d '{
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"title": "Criar relatorio de fluxo de caixa",
"waveId": "clxw1b2c3d4e5f6g7h8i9j0k1",
"epicId": "clxe0a1b2c3d4e5f6g7h8i9j0",
"assigneeId": "clxuser001",
"priority": "HIGH",
"description": "Relatorio mensal de fluxo de caixa com filtros por periodo, centro de custo e categoria.",
"dueDate": "2026-03-10",
"estimatedHours": 12
}'

Resposta (201):

{
"id": "clxt2c3d4e5f6g7h8i9j0k1l2",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"waveId": "clxw1b2c3d4e5f6g7h8i9j0k1",
"epicId": "clxe0a1b2c3d4e5f6g7h8i9j0",
"title": "Criar relatorio de fluxo de caixa",
"description": "Relatorio mensal de fluxo de caixa com filtros por periodo, centro de custo e categoria.",
"assigneeId": "clxuser001",
"assigneeName": "Carlos Silva",
"priority": "HIGH",
"status": "TO_DO",
"percentComplete": 0,
"estimatedHours": 12,
"dueDate": "2026-03-10T00:00:00.000Z",
"createdAt": "2026-03-25T12:00:00.000Z"
}
Nota

Tarefas sao criadas automaticamente na primeira coluna do projeto (ex: "To Do"). Use a plataforma para mover tarefas entre colunas.


Membros da Equipe do Projeto

Listar Membros

GET /external/v1/project-team-members

Retorna uma lista paginada de membros da equipe do projeto.

Query Parameters:

ParametroTipoObrigatorioDescricao
pagenumberNaoPagina atual (default: 1)
limitnumberNaoItens por pagina (default: 20, max: 100)
projectIdstringNaoFiltro por projeto

Exemplo de requisicao:

curl -X GET "https://api.tesselys.com.br/external/v1/project-team-members?projectId=clxa0j1k2l3m4n5o6p7q8r9s0" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}"

Resposta (200):

{
"data": [
{
"id": "clxm0a1b2c3d4e5f6g7h8i9j0",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"companyUserId": "clxuser001",
"userName": "Carlos Silva",
"role": "MANAGER",
"createdAt": "2026-01-28T14:00:00.000Z"
},
{
"id": "clxm1b2c3d4e5f6g7h8i9j0k1",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"companyUserId": "clxuser002",
"userName": "Ana Rodrigues",
"role": "MEMBER",
"createdAt": "2026-01-28T14:05:00.000Z"
},
{
"id": "clxm2c3d4e5f6g7h8i9j0k1l2",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"companyUserId": "clxuser003",
"userName": "Pedro Santos",
"role": "REVIEWER",
"createdAt": "2026-02-01T10:00:00.000Z"
}
],
"meta": {
"total": 3,
"page": 1,
"limit": 20,
"totalPages": 1
}
}

Buscar Membro por ID

GET /external/v1/project-team-members/:id

Exemplo de requisicao:

curl -X GET "https://api.tesselys.com.br/external/v1/project-team-members/clxm0a1b2c3d4e5f6g7h8i9j0" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}"

Resposta (200):

{
"id": "clxm0a1b2c3d4e5f6g7h8i9j0",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"companyUserId": "clxuser001",
"userName": "Carlos Silva",
"role": "MANAGER",
"createdAt": "2026-01-28T14:00:00.000Z"
}

Adicionar Membro

POST /external/v1/project-team-members

Body:

CampoTipoObrigatorioDescricao
projectIdstringSimID do projeto
companyUserIdstringSimID do usuario da empresa
rolestringNaoPapel: MEMBER, REVIEWER, MANAGER (default: MEMBER)

Exemplo de requisicao:

curl -X POST "https://api.tesselys.com.br/external/v1/project-team-members" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}" \
-H "Content-Type: application/json" \
-d '{
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"companyUserId": "clxuser004",
"role": "MEMBER"
}'

Resposta (201):

{
"id": "clxm3d4e5f6g7h8i9j0k1l2m3",
"projectId": "clxa0j1k2l3m4n5o6p7q8r9s0",
"companyUserId": "clxuser004",
"userName": "Juliana Costa",
"role": "MEMBER",
"createdAt": "2026-03-25T12:00:00.000Z"
}

Valores de Enum

status (Projetos)

ValorDescricao
PLANNINGEm planejamento
IN_PROGRESSEm andamento
ON_HOLDPausado
COMPLETEDConcluido
CANCELLEDCancelado

Wave status

ValorDescricao
PLANNINGEm planejamento
ACTIVEAtiva
COMPLETEDConcluida

Task priority

ValorDescricao
LOWBaixa
MEDIUMMedia
HIGHAlta
URGENTUrgente

Task status

ValorDescricao
TO_DOA fazer
IN_PROGRESSEm andamento
REVIEWEm revisao
DONEConcluida

Team member role

ValorDescricao
MEMBERMembro
REVIEWERRevisor
MANAGERGerente