Pular para o conteúdo

Mudar uma seção da Calibração

PUT
/v1/calibration/{section}
curl --request PUT \
--url https://developers.nexo.winningsales.com.br/v1/calibration/example \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "additionalProperty": "example" }'

Como o salvar da tela: cada grupo ou limite enviado substitui o valor em vigor, os outros ficam. A mudança entra no histórico da seção com quem fez e por onde (api), e na atividade da API. Mudar o forecast recalcula os indicadores. Enviar os valores em vigor não grava nada. Só administradores, como a tela Calibração; o papel é relido a cada chamada, e para mudar o token precisa do escopo calibration:write.

section
required

Seção da Calibração: forecast, customer-profile, losses, risk-reading ou crm-fill (a lista completa vem de GET /v1/calibration)

Media typeapplication/json

A mudança da seção, no formato de changesSchema em GET /v1/calibration/{section}: só os grupos ou limites enviados mudam, os outros ficam como estão

object
key
additional properties

Example generated

{
"additionalProperty": "example"
}

A seção depois da mudança

Media typeapplication/json
object
recorded
required

False quando a mudança não mudava nada e nada foi gravado

boolean
changed
required

Grupos ou limites que a mudança moveu

Array<string>
section
required

A seção depois da mudança

object
section
required

Nome estável da seção, usado nas rotas e nas ferramentas

string
title
required

Nome do subitem na tela Calibração

string
description
required

O que a seção decide

string
calibrated
required

True quando algum valor difere do padrão

boolean
lastChange
required

A última mudança, ou null quando a seção nunca foi calibrada

object
changedAt
required

Quando a mudança foi salva

string format: date-time
changedByUserId
required

Quem salvou

string format: uuid
nullable
changedByName
required

Nome de quem salvou

string
nullable
surface
required

Where the change was made: app (the Calibração screen), api (public REST /v1), cli or mcp (the hosted MCP)

string
Allowed values: app api cli mcp
changed
required

Grupos ou limites que esta mudança moveu, contra os valores em vigor antes dela

Array<string>
current
required

Valores em vigor na empresa

object
key
additional properties
defaults
required

Valores que o Nexo usa quando nada foi calibrado; a volta ao padrão grava estes

object
key
additional properties
changesSchema
required

JSON Schema da mudança aceita pela seção (corpo do PUT e changes das ferramentas)

object
key
additional properties
details
required

O que a tela mostra além dos valores: no forecast, os funis com as etapas para escolher e as regras fixas; no perfil de cliente, a faixa e o passo de cada limite

object
key
additional properties
history
required

Últimas mudanças, das mais novas para as mais antigas

Array<object>
object
changedAt
required

Quando a mudança foi salva

string format: date-time
changedByUserId
required

Quem salvou

string format: uuid
nullable
changedByName
required

Nome de quem salvou

string
nullable
surface
required

Where the change was made: app (the Calibração screen), api (public REST /v1), cli or mcp (the hosted MCP)

string
Allowed values: app api cli mcp
changed
required

Grupos ou limites que esta mudança moveu, contra os valores em vigor antes dela

Array<string>

Example

{
"section": {
"lastChange": {
"surface": "app"
},
"history": [
{
"surface": "app"
}
]
}
}

Mudança fora do formato da seção (detalhes em meta.errors)

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"requestId": "example",
"meta": {
"additionalProperty": "example"
}
}

Token ausente, inválido, expirado ou revogado

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

Example

{
"type": "public_api.invalid_credential",
"title": "InvalidCredentialError",
"status": 401,
"detail": "Token de acesso inválido, expirado ou revogado. Crie um novo token de acesso no Nexo.",
"requestId": "019fcae7-3e54-755a-8458-bdb605b324bb"
}

Papel, escopo do token ou plano não permitem a operação

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

Example

{
"type": "public_api.insufficient_scope",
"title": "InsufficientScopeError",
"status": 403,
"detail": "Este token não tem o escopo conversations:read, exigido por esta operação. Gere um token com esse escopo.",
"requestId": "019fcae7-3e54-755a-8458-bdb605b324bb",
"meta": {
"operation": "conversations.reading",
"scope": "conversations:read"
}
}

Seção inexistente

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

Example

{
"type": "calibration.section_not_found",
"title": "CalibrationSectionNotFoundError",
"status": 404,
"detail": "Esta seção da Calibração não existe. Veja as seções em meta.available.",
"requestId": "019fcae7-3e54-755a-8458-bdb605b324bb",
"meta": {
"section": "perdas",
"available": [
"forecast",
"customer-profile"
]
}
}

A mudança quebra uma regra da seção

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

Example

{
"type": "calibration.profile_multipliers",
"title": "CalibrationProfileMultipliersError",
"status": 422,
"detail": "O limite do anti-ICP precisa ficar abaixo do limite do ICP.",
"requestId": "019fcae7-3e54-755a-8458-bdb605b324bb",
"meta": {
"icpMultiplier": 0.8,
"antiIcpMultiplier": 0.85
}
}

Limite de chamadas da empresa ou do token atingido

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

Example

{
"type": "public_api.rate_limited",
"title": "PublicRateLimitedError",
"status": 429,
"detail": "Muitas chamadas em pouco tempo. Tente de novo em 12 segundos.",
"requestId": "019fcae7-3e54-755a-8458-bdb605b324bb",
"meta": {
"class": "content",
"limitedBy": "company",
"limit": 120,
"windowSeconds": 60,
"retryAfterSeconds": 12
}
}