Pular para o conteúdo principal

Propostas (Quotes)

Gerencie propostas comerciais e seus itens vinculados a negocios.

Listar Propostas

GET /external/v1/quotes

Retorna uma lista paginada de propostas.

Query Parameters:

ParametroTipoObrigatorioDescricao
pagenumberNaoPagina atual (default: 1)
limitnumberNaoItens por pagina (default: 20, max: 100)
dealIdstringNaoFiltro por negocio
statusstringNaoFiltro: DRAFT, SENT, ACCEPTED, REJECTED, EXPIRED
orderBystringNaoCampo: createdAt, totalAmount (default: createdAt)
orderstringNaoASC ou DESC (default: DESC)

Exemplo de requisicao:

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

Resposta (200):

{
"data": [
{
"id": "clx7q8r9s0t1u2v3w4x5y6z7",
"code": "COT-1018",
"dealId": "clx3c4d5e6f7g8h9i0j1k2l3",
"title": "Proposta Implantacao Tesselys - Tech Solutions",
"status": "SENT",
"totalAmount": 85000.00,
"discount": 5000.00,
"validUntil": "2026-04-30T23:59:59.000Z",
"notes": "Condicoes especiais para contratacao ate fim de abril.",
"isActive": true,
"createdAt": "2026-03-10T09:00:00.000Z",
"updatedAt": "2026-03-12T14:20:00.000Z"
}
],
"meta": {
"total": 23,
"page": 1,
"limit": 10,
"totalPages": 3
}
}

Buscar Proposta por ID

GET /external/v1/quotes/:id

Exemplo de requisicao:

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

Resposta (200):

{
"id": "clx7q8r9s0t1u2v3w4x5y6z7",
"code": "COT-1018",
"dealId": "clx3c4d5e6f7g8h9i0j1k2l3",
"title": "Proposta Implantacao Tesselys - Tech Solutions",
"status": "SENT",
"totalAmount": 85000.00,
"discount": 5000.00,
"validUntil": "2026-04-30T23:59:59.000Z",
"notes": "Condicoes especiais para contratacao ate fim de abril.",
"isActive": true,
"createdAt": "2026-03-10T09:00:00.000Z",
"updatedAt": "2026-03-12T14:20:00.000Z"
}

Criar Proposta

POST /external/v1/quotes

Body:

CampoTipoObrigatorioDescricao
dealIdstringSimID do negocio vinculado
titlestringSimTitulo da proposta (max: 255)
validUntilstringNaoData de validade (ISO 8601)
notesstringNaoObservacoes da proposta
discountnumberNaoValor de desconto global

Exemplo de requisicao:

curl -X POST "https://api.tesselys.com.br/external/v1/quotes" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}" \
-H "Content-Type: application/json" \
-d '{
"dealId": "clx3c4d5e6f7g8h9i0j1k2l3",
"title": "Proposta Consultoria Fiscal Q2 2026",
"validUntil": "2026-05-15",
"notes": "Inclui revisao tributaria completa e adequacao de obrigacoes acessorias.",
"discount": 1500.00
}'

Resposta (201):

{
"id": "clx8r9s0t1u2v3w4x5y6z7a8",
"code": "COT-1019",
"dealId": "clx3c4d5e6f7g8h9i0j1k2l3",
"title": "Proposta Consultoria Fiscal Q2 2026",
"status": "DRAFT",
"totalAmount": 0.00,
"discount": 1500.00,
"validUntil": "2026-05-15T23:59:59.000Z",
"notes": "Inclui revisao tributaria completa e adequacao de obrigacoes acessorias.",
"isActive": true,
"createdAt": "2026-03-25T10:30:00.000Z",
"updatedAt": "2026-03-25T10:30:00.000Z"
}
Nota

A proposta e criada automaticamente com status DRAFT. O campo code e gerado automaticamente pelo sistema. O totalAmount e recalculado conforme itens sao adicionados.

Atualizar Proposta

PUT /external/v1/quotes/:id

Atualiza os dados de uma proposta existente. Envie apenas os campos que deseja alterar.

Body (campos opcionais):

CampoTipoDescricao
titlestringNovo titulo
statusstringNovo status (DRAFT, SENT, ACCEPTED, REJECTED, EXPIRED)
validUntilstringNova data de validade (ISO 8601)
notesstringNovas observacoes

Exemplo de requisicao:

curl -X PUT "https://api.tesselys.com.br/external/v1/quotes/clx8r9s0t1u2v3w4x5y6z7a8" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}" \
-H "Content-Type: application/json" \
-d '{
"status": "SENT",
"validUntil": "2026-06-01"
}'

Resposta (200):

{
"id": "clx8r9s0t1u2v3w4x5y6z7a8",
"code": "COT-1019",
"dealId": "clx3c4d5e6f7g8h9i0j1k2l3",
"title": "Proposta Consultoria Fiscal Q2 2026",
"status": "SENT",
"totalAmount": 13500.00,
"discount": 1500.00,
"validUntil": "2026-06-01T23:59:59.000Z",
"notes": "Inclui revisao tributaria completa e adequacao de obrigacoes acessorias.",
"isActive": true,
"createdAt": "2026-03-25T10:30:00.000Z",
"updatedAt": "2026-03-25T11:45:00.000Z"
}

Itens de Proposta (Quote Items)

Listar Itens de Proposta

GET /external/v1/quote-items

Retorna uma lista paginada de itens de proposta.

Query Parameters:

ParametroTipoObrigatorioDescricao
pagenumberNaoPagina atual (default: 1)
limitnumberNaoItens por pagina (default: 20, max: 100)
quoteIdstringNaoFiltro por proposta

Exemplo de requisicao:

curl -X GET "https://api.tesselys.com.br/external/v1/quote-items?quoteId=clx8r9s0t1u2v3w4x5y6z7a8&page=1&limit=20" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}"

Resposta (200):

{
"data": [
{
"id": "clx9s0t1u2v3w4x5y6z7a8b9",
"quoteId": "clx8r9s0t1u2v3w4x5y6z7a8",
"description": "Diagnostico tributario completo",
"quantity": 1,
"unitPrice": 5000.00,
"discount": 0.00,
"totalPrice": 5000.00,
"isActive": true,
"createdAt": "2026-03-25T10:35:00.000Z",
"updatedAt": "2026-03-25T10:35:00.000Z"
},
{
"id": "clx0t1u2v3w4x5y6z7a8b9c0",
"quoteId": "clx8r9s0t1u2v3w4x5y6z7a8",
"description": "Adequacao de obrigacoes acessorias (mensal)",
"quantity": 4,
"unitPrice": 2500.00,
"discount": 500.00,
"totalPrice": 9500.00,
"isActive": true,
"createdAt": "2026-03-25T10:40:00.000Z",
"updatedAt": "2026-03-25T10:40:00.000Z"
}
],
"meta": {
"total": 2,
"page": 1,
"limit": 20,
"totalPages": 1
}
}

Buscar Item de Proposta por ID

GET /external/v1/quote-items/:id

Exemplo de requisicao:

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

Resposta (200):

{
"id": "clx9s0t1u2v3w4x5y6z7a8b9",
"quoteId": "clx8r9s0t1u2v3w4x5y6z7a8",
"description": "Diagnostico tributario completo",
"quantity": 1,
"unitPrice": 5000.00,
"discount": 0.00,
"totalPrice": 5000.00,
"isActive": true,
"createdAt": "2026-03-25T10:35:00.000Z",
"updatedAt": "2026-03-25T10:35:00.000Z"
}

Criar Item de Proposta

POST /external/v1/quote-items

Body:

CampoTipoObrigatorioDescricao
quoteIdstringSimID da proposta vinculada
descriptionstringSimDescricao do item
quantitynumberSimQuantidade
unitPricenumberSimPreco unitario
discountnumberNaoValor de desconto do item

Exemplo de requisicao:

curl -X POST "https://api.tesselys.com.br/external/v1/quote-items" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}" \
-H "Content-Type: application/json" \
-d '{
"quoteId": "clx8r9s0t1u2v3w4x5y6z7a8",
"description": "Treinamento equipe fiscal (8h)",
"quantity": 2,
"unitPrice": 3000.00,
"discount": 500.00
}'

Resposta (201):

{
"id": "clx1u2v3w4x5y6z7a8b9c0d1",
"quoteId": "clx8r9s0t1u2v3w4x5y6z7a8",
"description": "Treinamento equipe fiscal (8h)",
"quantity": 2,
"unitPrice": 3000.00,
"discount": 500.00,
"totalPrice": 5500.00,
"isActive": true,
"createdAt": "2026-03-25T11:00:00.000Z",
"updatedAt": "2026-03-25T11:00:00.000Z"
}
Nota

O totalAmount da proposta vinculada e recalculado automaticamente ao adicionar, atualizar ou remover itens.

Atualizar Item de Proposta

PUT /external/v1/quote-items/:id

Atualiza os dados de um item de proposta existente. Envie apenas os campos que deseja alterar.

Body (campos opcionais):

CampoTipoDescricao
descriptionstringNova descricao
quantitynumberNova quantidade
unitPricenumberNovo preco unitario
discountnumberNovo valor de desconto

Exemplo de requisicao:

curl -X PUT "https://api.tesselys.com.br/external/v1/quote-items/clx1u2v3w4x5y6z7a8b9c0d1" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}" \
-H "Content-Type: application/json" \
-d '{
"quantity": 3,
"unitPrice": 2800.00
}'

Resposta (200):

{
"id": "clx1u2v3w4x5y6z7a8b9c0d1",
"quoteId": "clx8r9s0t1u2v3w4x5y6z7a8",
"description": "Treinamento equipe fiscal (8h)",
"quantity": 3,
"unitPrice": 2800.00,
"discount": 500.00,
"totalPrice": 7900.00,
"isActive": true,
"createdAt": "2026-03-25T11:00:00.000Z",
"updatedAt": "2026-03-25T11:15:00.000Z"
}

Valores de Enum

status (Proposta)

ValorDescricao
DRAFTRascunho
SENTEnviada ao cliente
ACCEPTEDAceita pelo cliente
REJECTEDRejeitada pelo cliente
EXPIREDExpirada (passou da data de validade)