Pular para o conteúdo

Prévia de uma mudança da Calibração

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

O antes e o depois da mudança, os grupos ou limites que mudariam e o efeito de cada um como a tela mostra (por exemplo quantos negócios abertos passariam a pedir a declaração, ou quantos commits ficariam em dúvida). Não grava nada. Com reset=true, a prévia da volta da seção ao padrão. Devolve também uma confirmação, que o MCP exige para aplicar; pelo REST, o PUT aplica direto. 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)

reset

True para a prévia da volta ao padrão; o corpo é ignorado e pode ir vazio

string
Allowed values: true false

True para a prévia da volta ao padrão; o corpo é ignorado e pode ir vazio

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 prévia

Media typeapplication/json
object
section
required

Seção da prévia

string
reset
required

True quando a prévia é da volta ao padrão

boolean
changed
required

Grupos ou limites que mudariam; vazio quando a mudança não muda nada

Array<string>
before
required

Valores em vigor agora

object
key
additional properties
after
required

Valores depois da mudança

object
key
additional properties
effects
required

O efeito de cada grupo ou limite que muda, como a tela mostra

Array<object>
object
field
required

Grupo ou limite de onde vem o efeito

string
summary
required

O que muda para a empresa, como a tela explica

string
detail

Os números por trás do resumo, quando baratos de calcular

confirmation
required

Null quando não há nada a mudar

object
token
required

Passe este token na chamada que aplica; ele só vale para esta mudança, desta pessoa

string
expiresAt
required

Até quando o token vale (10 minutos)

string format: date-time

Example generated

{
"section": "example",
"reset": true,
"changed": [
"example"
],
"before": {
"additionalProperty": "example"
},
"after": {
"additionalProperty": "example"
},
"effects": [
{
"field": "example",
"summary": "example",
"detail": "example"
}
],
"confirmation": {
"token": "example",
"expiresAt": "2026-04-15T12:00:00Z"
}
}

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
}
}