Webhooks e eventos · Callback síncrono
Callback de cálculo de impostos
Quando dispara
Quando o cálculo de impostos pelo ERP está ativo na loja, a CWS Platform chama o seu endpoint de tributos antes de fechar o pedido, com o cliente, a empresa, a UF e os itens, e usa os valores devolvidos no pedido.
O cálculo de impostos pela API do cliente depende de ativação. Sem ele, este callback não é chamado.
Payload de exemplo
Exemplo da coleção pública. A URL é a do seu sistema: o endereço abaixo é só ilustrativo.
POST https://api.exemplo-cliente.com.br/wscwstax/calcular
tenantId: 01,04160001
Content-Type: application/json
{
"cliente": "03.558.351/0001-00",
"empresa": "12.377.080/0001-88",
"finalidade": 4,
"itens": [
{
"item": "123456",
"partner_part_code": "FO0002248281",
"pre_unit": "451.99",
"qtde": "45"
},
{
"item": "7891011",
"partner_part_code": "FO0002248279",
"pre_unit": "654.99",
"qtde": "5"
}
],
"num_pedido": "0",
"uf": "ES",
"valor_frete": 0,
"valor_pedido": 23664.05
} Como responder
É uma comunicação síncrona: a plataforma faz a chamada e aguarda a resposta imediata para continuar o processo. O seu endpoint responde 200 OK com os tributos de cada item, na estrutura mostrada abaixo.
Como a jornada de compra espera esta resposta, o tempo do seu endpoint entra no tempo do carrinho. Em carrinhos com muitos itens o cálculo pode atrasar a jornada, e a plataforma tem um limitador configurável de itens distintos para esse cenário.
A coleção não publica tempo limite para esta chamada. Confirme o valor com o time de integração ao dimensionar o seu serviço.
O que a coleção documenta
Descrição
Este é um exemplo completo da requisição que a CWS enviará para o seu endpoint de Cálculo de Impostos.
Estrutura da Resposta Esperada
Seu sistema deve retornar uma resposta 200 OK com o seguinte corpo:
{
"empresa": "12.377.080/0001-88",
"num_pedido": "0",
"cliente": "03.558.351/0001-00",
"mensagem": "sucesso",
"status": "ok",
"itens": [
{
"item": "123456",
"st": "0.000000",
"ipi": "11.120000",
"icms": 0,
"pis": 0,
"cofins": 0
},
{
"item": "7891011",
"st": "0.000000",
"ipi": "0.000000",
"icms": 0,
"pis": 0,
"cofins": 0
}
]
}
Autenticação do seu endpoint
Visão Geral da Autenticação
Para proteger seu endpoint de cálculo de impostos, a CWS utilizará um token de acesso obtido do seu sistema. Antes de chamar seu endpoint de impostos, faremos uma requisição ao seu endpoint de autenticação para obter um access_token.
Você deve fornecer à equipe CWS as informações necessárias para que possamos nos autenticar no seu sistema (URL do endpoint de token, credenciais, etc.).
A resposta do seu endpoint de token deve seguir o padrão OAuth2:
{
"access_token": "SEU_TOKEN_GERADO",
"expires_in": 3600
}
Abaixo estão três exemplos reais de como seu endpoint de token pode ser configurado.
Exemplo 1: Fluxo client_credentials com Basic Auth
Como funciona: Suas credenciais (clientId e clientSecret) são combinadas, codificadas em Base64 e enviadas no Header Authorization.
Requisição que a CWS fará para seu endpoint de token:
curl --location 'https://api.exemplo-cliente.com/oauth/access-token' \
--header 'Authorization: Basic [SUAS_CREDENCIAS_EM_BASE64]' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials'
Exemplo 2: Fluxo com clientId e clientSecret no Body
Como funciona: Suas credenciais são enviadas diretamente no corpo (body) da requisição em formato JSON.
Requisição que a CWS fará para seu endpoint de token:
curl --location 'https://api.exemplo-cliente.com/v1/token' \
--header 'User-Agent: CWS Digital' \
--header 'Content-Type: application/json' \
--data '{
"clientId": "SEU_CLIENT_ID",
"clientSecret": "SEU_CLIENT_SECRET"
}'
Exemplo 3: Autenticação com Token Estático no Corpo
Este método mais simples não requer um endpoint de token. Um token fixo (API Key) pré-combinado é enviado diretamente no corpo de cada requisição principal.
Requisição que a CWS fará para seu endpoint de Cálculo de Impostos:
curl --location 'https://api.exemplo-cliente.com/wscwstax/calcular' \
--header 'Content-Type: application/json' \
--data '{
"cliente": "03.558.351/0001-00",
"itens": [...],
"token": "SEU_TOKEN_ESTATICO_PRE_ACORDADO",
...
}'
Webhooks e eventos
- Webhook de pedidos: Aviso curto de pedido, com id e status.
- Webhook de pedidos, payload completo: O pedido inteiro no corpo da notificação.
- Webhook de clientes: Cadastro criado ou atualizado na plataforma.
Gerado a partir da coleção pública da API, publicada em 04/09/2026: api-docs.cws.digital.