Skip to main content
Este guia cobre o fluxo completo de abrir um atendimento pela API pública: verificar elegibilidade, criar o atendimento, e acompanhar seu andamento. Todos os exemplos assumem um token já obtido — veja Primeiros passos se ainda não tiver um.

1. Consulte a elegibilidade

Antes de abrir um atendimento, verifique se o cliente e o veículo têm cobertura ativa para o serviço desejado. Este passo é só leitura e nunca consome cota de uso — consultar elegibilidade antes evita metade dos erros de criação.
Resposta quando há cobertura (200):
Quando não há cobertura, covered vem false e plan/limits vêm null — não é um erro, é uma resposta 200 normal. Trate covered: false na sua aplicação antes de tentar abrir o atendimento: uma tentativa de criação sem cobertura devolve 422 NOT_COVERED (ver Erros e limites). O documento nunca é registrado em log pela Koolisys — ele só existe na sua requisição.

2. Abra o atendimento

POST /v1/attendances abre o atendimento aguardando a central escolher o prestador — esta chamada nunca aciona um prestador automaticamente. Ela exige o cabeçalho Idempotency-Key (veja Idempotência):
Resposta (201 numa criação nova, 200 numa repetição idempotente — o corpo é o mesmo atendimento nos dois casos):
customerDocument vem em claro na resposta. attendanceTypeId identifica o tipo de atendimento e serviceId o serviço do catálogo — os dois são obrigatórios, e o serviço precisa pertencer ao tipo escolhido. Consulte GET /v1/attendance-types para a lista de tipos ativos com a categoria e os serviços que cada um agrupa (um mesmo serviço pode aparecer em mais de um tipo — ex.: Reboque leve em “Colisão” e em “Pane mecânica”); os ids em services são os mesmos de GET /v1/services. attendanceTypeDetail só é obrigatório quando o tipo exige justificativa. amountCents (valor do acionamento mais recente, em centavos) e distanceKm (distância percorrida) vêm nulos enquanto nenhum prestador foi acionado. Depois de acionado, refletem o acionamento mais recente e nunca são recalculados — inclusive depois de COMPLETED, quando já representam o valor final apurado. distanceKm também fica nulo quando o prestador é avulso (sem rota calculada).
Enviar um serviceId que não pertence ao tipo devolve 400 VALIDATION_ERROR com field: "attendanceTypeId".

Serviços que exigem destino

Alguns serviços (ex.: reboque) exigem um destination, no mesmo formato de origin. Se o serviço escolhido em serviceId exigir destino, envie o campo:
Quem decide se destination é obrigatório é o serviço, nunca o integrador: enviar destination para um serviço que não exige destino, ou deixar de enviá-lo para um que exige, devolve 400 VALIDATION_ERROR com field: "destination":

3. Acompanhe o atendimento

Consultar um atendimento específico

A resposta traz o mesmo formato do passo anterior, sempre com o estado mais atual — status, provider (quando já há um prestador acionado) e history, a linha do tempo do atendimento. Um atendimento de outra contratante devolve 404 NOT_FOUND, exatamente como um atendimento inexistente — nunca 403, para não revelar que o id pertence a outra empresa.

Listar atendimentos

Resposta (200):
A listagem é paginada por cursor: quando meta.nextCursor não é null, use-o no parâmetro cursor da próxima chamada para seguir para a página seguinte. Ela nunca inclui atendimentos em rascunho — só os que já foram efetivamente abertos. Filtre por status, e por período de abertura com openedFrom/openedTo (datas ISO 8601). amountCents e distanceKm seguem a mesma regra da consulta individual (veja acima): refletem o acionamento mais recente de cada atendimento da página, nulos enquanto nenhum prestador foi acionado.

Resumo do fluxo

  1. GET /v1/attendance-types — resolva o par tipo de atendimento + serviço.
  2. GET /v1/eligibility — confirme cobertura antes de criar.
  3. POST /v1/attendances com Idempotency-Key — abra o atendimento.
  4. GET /v1/attendances/:id ou GET /v1/attendances — acompanhe o andamento.
Nenhum desses passos aciona um prestador diretamente — a escolha do prestador continua manual, do lado da central Koolisys.