Skip to content

Referência da API ​

API REST v1. Erros em application/problem+json (RFC 9457). Paginação por cursor. Webhooks assinados com HMAC-SHA256.

Versão 0.1.0. Gerado de openapi.json — não edite à mão.

Sessão do painel web ​

Entrar (painel web) ​

http
POST /api/v1/auth/login

Corpo: LoginInput

Respostas: 200 Me — Define o cookie de sessão · 401 · 429

Sair ​

http
POST /api/v1/auth/logout

Respostas: 204

Usuário logado ​

http
GET /api/v1/auth/me

Autenticação: session

Respostas: 200 Me · 401

Clientes ​

Listar clientes ​

http
GET /api/v1/customers

Autenticação: api_key (customers:read) ou session

ParâmetroOndeTipoDescrição
limitqueryinteger1 a 100 (padrão 50).
cursorquerystring
qquerystringBusca por parte do nome, telefone ou CPF/CNPJ.

Respostas: 200 CustomerPage · 400 · 401

Criar cliente ​

http
POST /api/v1/customers

Aceita Idempotency-Key.

Autenticação: api_key (customers:write) ou session

ParâmetroOndeTipoDescrição
Idempotency-Keyheaderstring (opcional)

Corpo: NewCustomer

Respostas: 201 Customer · 400 · 403

Buscar cliente ​

http
GET /api/v1/customers/{id}

Autenticação: api_key (customers:read) ou session

ParâmetroOndeTipoDescrição
idpathinteger

Respostas: 200 Customer · 404

Alterar cliente ​

http
PATCH /api/v1/customers/{id}

Autenticação: api_key (customers:write) ou session

ParâmetroOndeTipoDescrição
idpathinteger

Corpo: CustomerPatch

Respostas: 200 Customer · 400 · 404

Veículos e histórico por placa ​

Listar veículos ​

http
GET /api/v1/vehicles

Filtre por plate para achar o veículo pela placa (check-in).

Autenticação: api_key (customers:read) ou session

ParâmetroOndeTipoDescrição
limitqueryinteger
cursorquerystring
platequerystringPlaca exata (com ou sem hífen).
customer_idqueryinteger

Respostas: 200 VehiclePage · 400 · 401

Cadastrar veículo ​

http
POST /api/v1/vehicles

Aceita Idempotency-Key. Placa repetida na mesma empresa → 409.

Autenticação: api_key (customers:write) ou session

ParâmetroOndeTipoDescrição
Idempotency-Keyheaderstring (opcional)

Corpo: NewVehicle

Respostas: 201 Vehicle · 400 · 409

Buscar veículo ​

http
GET /api/v1/vehicles/{id}

Autenticação: api_key (customers:read) ou session

ParâmetroOndeTipoDescrição
idpathinteger

Respostas: 200 Vehicle · 404

Alterar veículo ​

http
PATCH /api/v1/vehicles/{id}

Autenticação: api_key (customers:write) ou session

ParâmetroOndeTipoDescrição
idpathinteger

Corpo: VehiclePatch

Respostas: 200 Vehicle · 400 · 404 · 409

Ordens de serviço, orçamento, etapas e quadro do pátio ​

Quadro do pátio ​

http
GET /api/v1/board

Etapas e OS abertas. Técnico vê só as OS em que tem serviço.

Autenticação: api_key (service_orders:read) ou session

Respostas: 200 Board

Regiões, assuntos e condições aceitos em fotos e itens ​

http
GET /api/v1/inspection/catalog

Autenticação: api_key (service_orders:read) ou session

Respostas: 200 Catalog

Listar OS ​

http
GET /api/v1/service-orders

Autenticação: api_key (service_orders:read) ou session

ParâmetroOndeTipoDescrição
limitqueryinteger
cursorquerystring
stage_idqueryinteger
vehicle_idqueryinteger
customer_idqueryintegerTodas as OS de um cliente (histórico na ficha do cliente).
openquerybooleantrue: só as que não foram entregues nem canceladas.

Respostas: 200 ServiceOrderPage · 400

Abrir OS (check-in) ​

http
POST /api/v1/service-orders

Aceita Idempotency-Key. O cliente vem do veículo.

Autenticação: api_key (service_orders:write) ou session

ParâmetroOndeTipoDescrição
Idempotency-Keyheaderstring (opcional)

Corpo: NewServiceOrder

Respostas: 201 ServiceOrder · 400

Buscar OS com itens e serviços ​

http
GET /api/v1/service-orders/{id}

Autenticação: api_key (service_orders:read) ou session

ParâmetroOndeTipoDescrição
idpathinteger

Respostas: 200 ServiceOrderDetail · 404

Alterar OS ​

http
PATCH /api/v1/service-orders/{id}

Autenticação: api_key (service_orders:write) ou session

ParâmetroOndeTipoDescrição
idpathinteger

Corpo: ServiceOrderPatch

Respostas: 200 ServiceOrder · 400 · 404

Pedir aprovação do orçamento ao cliente ​

http
POST /api/v1/service-orders/{id}/approval-request

Gera um link expirável (revoga o anterior) e envia pelo WhatsApp da oficina (Falia) ou devolve o wa.me pronto. O cliente abre com os 4 últimos dígitos do telefone.

Autenticação: api_key (service_orders:write) ou session

ParâmetroOndeTipoDescrição
idpathinteger

Corpo: ApprovalRequest

Respostas: 201 ApprovalSent · 400 · 409 · 502

http
DELETE /api/v1/service-orders/{id}/approval-request

Autenticação: api_key (service_orders:write) ou session

ParâmetroOndeTipoDescrição
idpathinteger

Respostas: 204 · 404

http
GET /api/v1/service-orders/{id}/approvals

Autenticação: api_key (service_orders:write) ou session

ParâmetroOndeTipoDescrição
idpathinteger

Respostas: 200 ApprovalHistory · 404

Enviar foto da OS ​

http
POST /api/v1/service-orders/{id}/attachments

JSON com a imagem em base64 (JPEG ou PNG, até 8 MB). Os metadados (GPS etc.) são removidos.

Autenticação: api_key (service_orders:write) ou session

ParâmetroOndeTipoDescrição
idpathinteger

Corpo: NewAttachment

Respostas: 201 Attachment · 400 · 404

Baixar foto ​

http
GET /api/v1/service-orders/{id}/attachments/{attachment_id}

Autenticação: api_key (service_orders:read) ou session

ParâmetroOndeTipoDescrição
idpathinteger
attachment_idpathinteger

Respostas: 200 — A imagem · 404

Apagar foto ​

http
DELETE /api/v1/service-orders/{id}/attachments/{attachment_id}

Autenticação: api_key (service_orders:write) ou session

ParâmetroOndeTipoDescrição
idpathinteger
attachment_idpathinteger

Respostas: 204 · 404

Legenda ou visibilidade da foto ​

http
PATCH /api/v1/service-orders/{id}/attachments/{attachment_id}

Autenticação: api_key (service_orders:write) ou session

ParâmetroOndeTipoDescrição
idpathinteger
attachment_idpathinteger

Corpo: AttachmentPatch

Respostas: 200 Attachment · 404

Acrescentar ao histórico da OS ​

http
POST /api/v1/service-orders/{id}/entries

Relato, diagnóstico ou anotação. O histórico não se edita nem se apaga: para corrigir, acrescente uma nova entrada.

Autenticação: api_key (service_orders:write) ou session

ParâmetroOndeTipoDescrição
idpathinteger

Corpo: NewEntry

Respostas: 201 Entry · 400 · 404

Adicionar item ao orçamento ​

http
POST /api/v1/service-orders/{id}/items

Autenticação: api_key (service_orders:write) ou session

ParâmetroOndeTipoDescrição
idpathinteger

Corpo: NewItem

Respostas: 201 ServiceOrderDetail · 400 · 404

Remover item ​

http
DELETE /api/v1/service-orders/{id}/items/{item_id}

Autenticação: api_key (service_orders:write) ou session

ParâmetroOndeTipoDescrição
idpathinteger
item_idpathinteger

Respostas: 204 · 404 · 409

Alterar ou aprovar item ​

http
PATCH /api/v1/service-orders/{id}/items/{item_id}

Autenticação: api_key (service_orders:write) ou session

ParâmetroOndeTipoDescrição
idpathinteger
item_idpathinteger

Corpo: ItemPatch

Respostas: 200 ServiceOrderDetail · 400 · 404

Mover OS de etapa ​

http
POST /api/v1/service-orders/{id}/stage

Gera service_order.stage_changed; etapas ready e delivered também geram service_order.ready / service_order.delivered.

Autenticação: api_key (service_orders:write) ou session

ParâmetroOndeTipoDescrição
idpathinteger

Corpo: MoveStage

Respostas: 200 ServiceOrder · 400 · 404

Etapas do quadro ​

http
GET /api/v1/stages

Autenticação: api_key (service_orders:read) ou session

Respostas: 200 Stage[]

Criar etapa (dono) ​

http
POST /api/v1/stages

Autenticação: session

Corpo: NewStage

Respostas: 201 Stage · 400 · 403

Renomear ou mover etapa (dono) ​

http
PATCH /api/v1/stages/{id}

Autenticação: session

ParâmetroOndeTipoDescrição
idpathinteger

Corpo: StagePatch

Respostas: 200 Stage · 400 · 404

Serviços dos técnicos e quadro por técnico ​

Atribuir técnico ou renomear serviço ​

http
PATCH /api/v1/jobs/{id}

Autenticação: api_key (service_orders:write) ou session

ParâmetroOndeTipoDescrição
idpathinteger

Corpo: JobPatch

Respostas: 200 Job · 400 · 404

Marcar serviço como travado (com motivo) ​

http
POST /api/v1/jobs/{id}/block

Autenticação: session

ParâmetroOndeTipoDescrição
idpathinteger

Corpo: BlockInput

Respostas: 200 Job · 400 · 403 · 404

Concluir serviço ​

http
POST /api/v1/jobs/{id}/finish

Autenticação: session

ParâmetroOndeTipoDescrição
idpathinteger

Respostas: 200 Job · 403 · 404

Pausar serviço ​

http
POST /api/v1/jobs/{id}/pause

Autenticação: session

ParâmetroOndeTipoDescrição
idpathinteger

Respostas: 200 Job · 403 · 404

Iniciar serviço (pausa o que o técnico estava fazendo) ​

http
POST /api/v1/jobs/{id}/start

Autenticação: session

ParâmetroOndeTipoDescrição
idpathinteger

Respostas: 200 Job · 403 · 404 · 409

Criar serviço avulso na OS ​

http
POST /api/v1/service-orders/{id}/jobs

Autenticação: api_key (service_orders:write) ou session

ParâmetroOndeTipoDescrição
idpathinteger

Corpo: NewJob

Respostas: 201 Job · 400 · 404

Quadro por técnico ​

http
GET /api/v1/technicians/board

Uma raia por técnico com o serviço em andamento (current: em qual carro está agora) e os demais. Técnico vê só a própria raia.

Autenticação: api_key (service_orders:read) ou session

Respostas: 200 TechnicianBoard

Equipe ​

Equipe ​

http
GET /api/v1/team

Nomes e papéis (para atribuir técnicos). E-mail só para o dono.

Autenticação: api_key (service_orders:read) ou session

Respostas: 200 Member[]

Cadastrar pessoa na equipe (dono) ​

http
POST /api/v1/team

Autenticação: session

Corpo: NewMember

Respostas: 201 Member · 400 · 403 · 409

Alterar papel, ativar/desativar ou trocar senha (dono) ​

http
PATCH /api/v1/team/{id}

Autenticação: session

ParâmetroOndeTipoDescrição
idpathinteger

Corpo: MemberPatch

Respostas: 200 Member · 400 · 404 · 409

Nome e logo da unidade ​

Nome e logo da oficina ​

http
GET /api/v1/tenant

Autenticação: api_key ou session

Respostas: 200 Brand

Trocar o nome de exibição (dono) ​

http
PATCH /api/v1/tenant

Autenticação: session

Corpo: BrandPatch

Respostas: 200 Brand · 400 · 403

http
GET /api/v1/tenant/logo

Autenticação: api_key ou session

Respostas: 200 — A imagem · 404

Enviar ou trocar a logo (dono) ​

http
PUT /api/v1/tenant/logo

JSON com a imagem em base64 (JPEG ou PNG, até 512 KB). Os metadados são removidos.

Autenticação: session

Corpo: LogoInput

Respostas: 200 Brand · 400 · 403

Remover a logo (dono) ​

http
DELETE /api/v1/tenant/logo

Autenticação: session

Respostas: 204 · 403

Unidades da empresa e troca de unidade ​

Abrir outra unidade ​

http
POST /api/v1/auth/unit

Autenticação: session

Corpo: SwitchUnit

Respostas: 200 Me · 404

Minhas unidades ​

http
GET /api/v1/units

Unidades da empresa em que a pessoa tem papel, com o resumo do pátio de cada uma.

Autenticação: session

Respostas: 200 Unit[]

Criar unidade (dono da empresa) ​

http
POST /api/v1/units

Autenticação: session

Corpo: NewUnit

Respostas: 201 Unit · 400 · 403

Lembretes de retorno (troca de óleo, revisão…) ​

Regras de retorno ​

http
GET /api/v1/reminder-rules

Autenticação: api_key (service_orders:read) ou session

Respostas: 200 Rule[]

Criar regra (dono) ​

http
POST /api/v1/reminder-rules

Autenticação: session

Corpo: NewRule

Respostas: 201 Rule · 400

Alterar regra (dono) ​

http
PATCH /api/v1/reminder-rules/{id}

Autenticação: session

ParâmetroOndeTipoDescrição
idpathinteger

Corpo: RulePatch

Respostas: 200 Rule · 400 · 404

Clientes para avisar (retorno) ​

http
GET /api/v1/reminders

Recurso contratado (403 sem ele). Quem passou do intervalo da regra desde o último serviço (ou vence em 14 dias) e ainda não foi avisado.

Autenticação: api_key (customers:read, service_orders:read) ou session

Respostas: 200 DueReminder[]

Avisar um cliente pelo Falia (ou marcar para não avisar) ​

http
POST /api/v1/reminders/send

Autenticação: api_key (customers:write) ou session

Corpo: SendReminder

Respostas: 200 ReminderResult · 409 · 502

WhatsApp da oficina pelo Falia ​

Situação da conexão com o Falia ​

http
GET /api/v1/integrations/falia

Autenticação: api_key (service_orders:read) ou session

Respostas: 200 FaliaStatus

Conectar o Falia (dono) ​

http
POST /api/v1/integrations/falia

Valida a chave no Falia (GET /api/v1/status) e guarda cifrada.

Autenticação: session

Corpo: ConnectInput

Respostas: 200 FaliaStatus · 400 · 502

Desconectar o Falia (dono) ​

http
DELETE /api/v1/integrations/falia

Autenticação: session

Respostas: 204

Cliente: aprovar ou recusar itens ​

http
POST /api/public/approval/decide

Corpo: PublicDecision

Respostas: 200 PublicView · 400 · 403 · 409 · 410

Cliente: logo da oficina ​

http
POST /api/public/approval/logo

Corpo: PublicAccess

Respostas: 200 — A imagem · 403 · 404 · 410

Cliente: foto do orçamento ​

http
POST /api/public/approval/photo

Corpo: PublicPhoto

Respostas: 200 — A imagem · 403 · 404 · 410

Cliente: ver o orçamento ​

http
POST /api/public/approval/view

Corpo: PublicAccess

Respostas: 200 PublicView · 403 · 410 · 429

Chaves para integrações ​

Listar API keys ativas ​

http
GET /api/v1/api-keys

Autenticação: session

Respostas: 200 ApiKey[]

Criar API key ​

http
POST /api/v1/api-keys

Autenticação: session

Corpo: NewApiKey

Respostas: 201 CreatedApiKey · 400

Revogar API key ​

http
DELETE /api/v1/api-keys/{id}

Autenticação: session

ParâmetroOndeTipoDescrição
idpathinteger

Respostas: 204 · 404

Notificações de eventos para sistemas externos ​

Reenviar uma entrega ​

http
POST /api/v1/webhook-deliveries/{id}/retry

Autenticação: api_key (webhooks:manage) ou session

ParâmetroOndeTipoDescrição
idpathinteger

Respostas: 202 · 404

Listar endpoints de webhook ​

http
GET /api/v1/webhooks

Autenticação: api_key (webhooks:manage) ou session

Respostas: 200 Endpoint[]

Cadastrar endpoint de webhook ​

http
POST /api/v1/webhooks

Autenticação: api_key (webhooks:manage) ou session

Corpo: NewEndpoint

Respostas: 201 CreatedEndpoint · 400

Remover endpoint de webhook ​

http
DELETE /api/v1/webhooks/{id}

Autenticação: api_key (webhooks:manage) ou session

ParâmetroOndeTipoDescrição
idpathinteger

Respostas: 204 · 404

Últimas 100 entregas de um endpoint ​

http
GET /api/v1/webhooks/{id}/deliveries

Autenticação: api_key (webhooks:manage) ou session

ParâmetroOndeTipoDescrição
idpathinteger

Respostas: 200 Delivery[] · 404

Modelos ​

ApiKey ​

CampoTipoObrigatórioDescrição
idintegersim
namestringsim
prefixstringsimInício da chave, para identificá-la (ex.: pk_live_a1b2).
scopesstring[]sim
created_atintegersim
last_used_atinteger (opcional)não

ApprovalHistory ​

CampoTipoObrigatórioDescrição
linksLinkInfo[]sim
approvalsApprovalRecord[]sim

ApprovalRecord ​

CampoTipoObrigatórioDescrição
signer_namestringsim
decisionsobjeto[]sim
ipstringsim
created_atintegersim

ApprovalRequest ​

CampoTipoObrigatórioDescrição
channelstring (opcional)nãofalia envia pelo WhatsApp da oficina; link só gera (o atendente envia pelo wa.me). Padrão: falia se conectado.
daysinteger (opcional)nãoValidade do link em dias (1 a 30, padrão 7).
messagestring (opcional)nãoTexto da mensagem; {link} é trocado pelo endereço. Padrão: mensagem pronta com total e validade.

ApprovalSent ​

CampoTipoObrigatórioDescrição
urlstringsim
expires_atintegersim
messagestringsimTexto que foi (ou será) enviado.
channelstringsimfalia (já enviado) ou link (abra whatsapp_url para enviar).
whatsapp_urlstringsimwa.me com o texto pronto.

Attachment ​

CampoTipoObrigatórioDescrição
idintegersim
categorystringsimentrada | diagnostico | antes | depois | outro
captionstringsim
regionstring (opcional)nãoRegião do carro (GET /api/v1/inspection/catalog); null = geral.
systemstring (opcional)nãoAssunto (sistema do carro); null = não informado.
conditionstring (opcional)nãook | atencao | problema; null = sem avaliação.
mimestringsim
sizeintegersim
visible_to_customerbooleansim
created_atintegersim

AttachmentPatch ​

CampoTipoObrigatórioDescrição
captionstring (opcional)não
visible_to_customerboolean (opcional)não
regionstring (opcional)nãonull limpa.
systemstring (opcional)não
conditionstring (opcional)não

BlockInput ​

CampoTipoObrigatórioDescrição
reasonstringsimMotivo (ex.: "aguardando peça").

Board ​

CampoTipoObrigatórioDescrição
stagesStage[]sim
cardsServiceOrder[]simOS abertas (sem entregues/canceladas), mais antigas na etapa primeiro.

Brand ​

CampoTipoObrigatórioDescrição
namestringsim
logo_urlstring (opcional)nãoURL da logo (muda quando a logo é trocada); null = sem logo.

BrandPatch ​

CampoTipoObrigatórioDescrição
namestringsim

Catalog ​

CampoTipoObrigatórioDescrição
regionsCatalogOption[]sim
systemsCatalogOption[]sim
conditionsCatalogOption[]sim

CatalogOption ​

CampoTipoObrigatórioDescrição
keystringsim
labelstringsim

ConnectInput ​

CampoTipoObrigatórioDescrição
api_keystringsimAPI key do Falia com o escopo messages:send.

CreatedApiKey ​

CreatedEndpoint ​

Customer ​

CampoTipoObrigatórioDescrição
idintegersim
namestringsim
phonestringsimE.164 (+5521999998888) ou vazio.
emailstringsim
documentstringsimCPF/CNPJ (só dígitos, dígitos verificadores conferidos) ou vazio.
birth_datestringsimAAAA-MM-DD ou vazio.
zipstringsimCEP com 8 dígitos ou vazio.
streetstringsim
numberstringsim
complementstringsim
districtstringsim
citystringsim
statestringsimUF (RJ) ou vazio.
notesstringsim
created_atintegersim
updated_atintegersim

CustomerPage ​

CampoTipoObrigatórioDescrição
dataCustomer[]sim
next_cursorstring (opcional)não

CustomerPatch ​

CampoTipoObrigatórioDescrição
namestring (opcional)não
phonestring (opcional)não
emailstring (opcional)não
documentstring (opcional)não
birth_datestring (opcional)não
zipstring (opcional)não
streetstring (opcional)não
numberstring (opcional)não
complementstring (opcional)não
districtstring (opcional)não
citystring (opcional)não
statestring (opcional)não
notesstring (opcional)não

CustomerRef ​

CampoTipoObrigatórioDescrição
idintegersim
namestringsim
phonestring (opcional)nãoOculto para técnicos.

Delivery ​

CampoTipoObrigatórioDescrição
idintegersim
event_idstringsim
event_typestringsim
statusstringsimpending, delivered ou failed.
attemptsintegersim
last_statusinteger (opcional)não
last_errorstring (opcional)não
created_atintegersim
delivered_atinteger (opcional)não

DueReminder ​

CampoTipoObrigatórioDescrição
rule_idintegersim
rule_namestringsim
vehicle_idintegersim
platestringsim
vehiclestringsim
customer_idintegersim
customer_namestringsim
has_phonebooleansimSem telefone não dá para avisar pelo WhatsApp.
last_servicestringsimDescrição do último serviço que casou com a regra.
last_service_atintegersim
due_atintegersim
monthsintegersimMeses desde o último serviço (arredondado para baixo).
overduebooleansim
messagestringsimMensagem pronta (o atendente pode editar antes de enviar).

Endpoint ​

CampoTipoObrigatórioDescrição
idintegersim
urlstringsim
eventsstring[]sim
activebooleansim
created_atintegersim

Entry ​

CampoTipoObrigatórioDescrição
idintegersim
kindstringsimcomplaint (relato do cliente) | diagnosis | note (anotação interna)
textstringsim
authorstringsimQuem escreveu (nome da pessoa ou da chave de API).
created_atintegersim

FaliaStatus ​

CampoTipoObrigatórioDescrição
availablebooleansimA instalação tem SECRETS_KEY (sem ela não dá para guardar a chave).
connectedbooleansim
key_prefixstring (opcional)nãoInício da chave (fal_live_…), para conferência.
providerstring (opcional)nãoevolution (QR code) ou cloud (API oficial).
whatsapp_statestring (opcional)nãoEstado do número no Falia agora (open = conectado).
connected_atinteger (opcional)não

Item ​

CampoTipoObrigatórioDescrição
idintegersim
kindstringsimservice | part
descriptionstringsim
qtynumbersim
unit_price_centsinteger (opcional)nãoOculto para técnicos.
total_centsinteger (opcional)não
statusstringsimproposed | approved | rejected
regionstring (opcional)nãoRegião do carro (GET /api/v1/inspection/catalog); null = geral.
systemstring (opcional)nãoAssunto (sistema do carro).

ItemPatch ​

CampoTipoObrigatórioDescrição
descriptionstring (opcional)não
qtynumber (opcional)não
unit_price_centsinteger (opcional)não
statusstring (opcional)nãoproposed | approved | rejected
regionstring (opcional)nãonull limpa.
systemstring (opcional)não

Job ​

CampoTipoObrigatórioDescrição
idintegersim
service_order_idintegersim
service_order_numberintegersim
item_idinteger (opcional)não
titlestringsim
technician_idinteger (opcional)não
technician_namestring (opcional)não
statusstringsimpending | in_progress | paused | blocked | done
blocked_reasonstringsim
platestringsim
vehiclestringsim
started_atinteger (opcional)não
done_atinteger (opcional)não
worked_msintegersimTempo trabalhado somado (inclui o trecho em andamento), em ms.
running_sinceinteger (opcional)nãoInício do trecho em andamento (para o cronômetro na tela).

JobPatch ​

CampoTipoObrigatórioDescrição
titlestring (opcional)não
technician_idinteger (opcional)nãoTécnico responsável; null tira do técnico.

LinkInfo ​

CampoTipoObrigatórioDescrição
idintegersim
created_atintegersim
expires_atintegersim
opened_atinteger (opcional)não
decided_atinteger (opcional)não
statestringsimactive | expired | revoked | decided

LoginInput ​

CampoTipoObrigatórioDescrição
emailstringsim
passwordstringsim

LogoInput ​

CampoTipoObrigatórioDescrição
data_base64stringsimImagem JPEG ou PNG em base64 (até 512 KB depois de decodificada).

Me ​

CampoTipoObrigatórioDescrição
idintegersim
namestringsim
emailstringsim
rolestringsimowner, manager ou technician.
is_technicianbooleansimAparece no quadro dos técnicos.
business_typestringsimoficina | estetica | funilaria | lava_rapido | outro
featuresstring[]simRecursos contratados ligados (ex.: reminders).
tenant_idintegersimUnidade aberta nesta sessão.
tenant_namestringsim
group_idintegersimA empresa (grupo) da unidade.
group_namestringsim
group_ownerbooleansimDono do grupo: cria unidades e vê todas.
unit_countintegersimQuantas unidades a pessoa pode abrir (mostra o seletor quando > 1).
tenant_logo_urlstring (opcional)nãoURL da logo da oficina; null = sem logo (o painel mostra as iniciais).
scopesstring[]sim

Member ​

CampoTipoObrigatórioDescrição
idintegersim
namestringsim
emailstring (opcional)nãoSó aparece para o dono.
rolestringsimowner (dono) | unit_manager (gerente) | manager (recepção) | technician | finance (financeiro)
group_ownerbooleansimDono do grupo (todas as unidades): só outro dono do grupo altera.
is_technicianbooleansim
activebooleansim

MemberPatch ​

CampoTipoObrigatórioDescrição
namestring (opcional)não
rolestring (opcional)não
is_technicianboolean (opcional)não
activeboolean (opcional)nãofalse desativa e derruba as sessões.
passwordstring (opcional)nãoNova senha (derruba as sessões).

MoveStage ​

CampoTipoObrigatórioDescrição
stage_idintegersim

NewApiKey ​

CampoTipoObrigatórioDescrição
namestringsim
scopesstring[]sim

NewAttachment ​

CampoTipoObrigatórioDescrição
categorystringsim
captionstring (opcional)não
regionstring (opcional)não
systemstring (opcional)não
conditionstring (opcional)não
visible_to_customerboolean (opcional)nãoPadrão: aparece no link de aprovação.
data_base64stringsimImagem JPEG ou PNG em base64 (até 8 MB depois de decodificada).

NewCustomer ​

CampoTipoObrigatórioDescrição
namestringsim1 a 120 caracteres.
phonestring (opcional)nãoDDD + número (Brasil) ou +código do país.
emailstring (opcional)não
documentstring (opcional)nãoCPF (11) ou CNPJ (14) dígitos, com ou sem pontuação.
birth_datestring (opcional)não
zipstring (opcional)não
streetstring (opcional)não
numberstring (opcional)não
complementstring (opcional)não
districtstring (opcional)não
citystring (opcional)não
statestring (opcional)não
notesstring (opcional)não

NewEndpoint ​

CampoTipoObrigatórioDescrição
urlstringsimURL https:// pública que receberá os eventos.
eventsstring[]simEventos assinados; ["*"] para todos.

NewEntry ​

CampoTipoObrigatórioDescrição
kindstringsimcomplaint | diagnosis | note
textstringsim1 a 4000 caracteres.

NewItem ​

CampoTipoObrigatórioDescrição
kindstringsimservice | part. Serviço cria automaticamente um serviço no quadro dos técnicos.
descriptionstringsim
qtynumber (opcional)nãoAté 3 casas decimais. Padrão 1.
unit_price_centsintegersim
technician_idinteger (opcional)nãoTécnico do serviço (só para service).
regionstring (opcional)não
systemstring (opcional)não

NewJob ​

CampoTipoObrigatórioDescrição
titlestringsim
technician_idinteger (opcional)não

NewMember ​

CampoTipoObrigatórioDescrição
namestringsim
emailstringsim
passwordstringsimSenha inicial (mínimo 10 caracteres); a pessoa troca depois.
rolestringsimunit_manager (gerente), manager (recepção), technician ou finance (financeiro).
is_technicianbooleannãoRecepção que também executa serviço.

NewRule ​

CampoTipoObrigatórioDescrição
namestringsim
match_textstringsim
interval_daysintegersim7 a 1095 dias.
messagestringsim

NewServiceOrder ​

CampoTipoObrigatórioDescrição
vehicle_idintegersim
stage_idinteger (opcional)nãoEtapa inicial; padrão: a primeira de check-in (intake).
km_ininteger (opcional)não
complaintstring (opcional)não
promised_atinteger (opcional)não

NewStage ​

CampoTipoObrigatórioDescrição
namestringsim
kindstringsim
positioninteger (opcional)nãoPosição no quadro (0 = primeira). Padrão: última.

NewUnit ​

CampoTipoObrigatórioDescrição
namestringsim
business_typestring (opcional)nãooficina | estetica | funilaria | lava_rapido | outro (define as etapas iniciais).

NewVehicle ​

CampoTipoObrigatórioDescrição
customer_idintegersim
platestringsimAceita com ou sem hífen, maiúsculas ou minúsculas.
brandstring (opcional)não
modelstring (opcional)não
yearinteger (opcional)não1900 a ano atual + 1.
colorstring (opcional)não
notesstring (opcional)não

PublicAccess ​

CampoTipoObrigatórioDescrição
tokenstringsim
digitsstringsim4 últimos dígitos do telefone do cliente.

PublicDecision ​

CampoTipoObrigatórioDescrição
tokenstringsim
digitsstringsim
namestringsimNome de quem aprova (fica registrado).
decisionsPublicDecisionItem[]sim

PublicDecisionItem ​

CampoTipoObrigatórioDescrição
item_idintegersim
approvebooleansim

PublicItem ​

CampoTipoObrigatórioDescrição
idintegersim
kindstringsim
descriptionstringsim
qtynumbersim
unit_price_centsintegersim
total_centsintegersim
statusstringsim
regionstring (opcional)não
systemstring (opcional)não

PublicPhoto ​

CampoTipoObrigatórioDescrição
tokenstringsim
digitsstringsim
idintegersim

PublicView ​

CampoTipoObrigatórioDescrição
companystringsim
customer_first_namestringsimSó o primeiro nome.
order_numberintegersim
vehiclestringsim
platestringsim
complaintstringsim
diagnosisstringsim
itemsPublicItem[]sim
approved_centsintegersim
proposed_centsintegersim
photosAttachment[]sim
expires_atintegersim
decidedbooleansim
has_logobooleansimA oficina tem logo (buscar em /api/public/approval/logo).

ReminderResult ​

CampoTipoObrigatórioDescrição
channelstringsim
messagestringsim

Rule ​

CampoTipoObrigatórioDescrição
idintegersim
namestringsim
match_textstringsimTexto procurado na descrição dos serviços (ex.: "óleo").
interval_daysintegersim
messagestringsimVariáveis: {cliente} {veiculo} {placa} {servico} {meses} {empresa}.
activebooleansim

RulePatch ​

CampoTipoObrigatórioDescrição
namestring (opcional)não
match_textstring (opcional)não
interval_daysinteger (opcional)não
messagestring (opcional)não
activeboolean (opcional)não

SendReminder ​

CampoTipoObrigatórioDescrição
rule_idintegersim
vehicle_idintegersim
channelstring (opcional)nãofalia (padrão) ou dismiss (não avisar desta vez).
messagestring (opcional)nãoTexto editado; padrão = mensagem da regra.

ServiceOrder ​

CampoTipoObrigatórioDescrição
idintegersim
numberintegersimNúmero sequencial por empresa (o que aparece para o cliente).
customerCustomerRefsim
vehicleVehicleRefsim
stage_idintegersim
stage_kindstringsim
stage_sinceintegersimDesde quando está na etapa atual (ms UTC).
km_ininteger (opcional)não
complaintstringsimRelato do cliente.
diagnosisstringsim
promised_atinteger (opcional)não
delivered_atinteger (opcional)não
totalsnull | Totalsnão
jobs_totalintegersim
jobs_doneintegersim
customer_approvalstring (opcional)nãoLink de aprovação mais recente: waiting (cliente ainda não respondeu), answered ou null.
customer_answered_atinteger (opcional)nãoQuando o cliente respondeu pelo link (ms UTC).
created_atintegersim
updated_atintegersim

ServiceOrderDetail ​

ServiceOrderPage ​

CampoTipoObrigatórioDescrição
dataServiceOrder[]sim
next_cursorstring (opcional)não

ServiceOrderPatch ​

CampoTipoObrigatórioDescrição
km_ininteger (opcional)não
promised_atinteger (opcional)não

Stage ​

CampoTipoObrigatórioDescrição
idintegersim
namestringsim
kindstringsimscheduled | intake | waiting_customer | waiting_parts | in_progress | qa | ready | delivered | cancelled
positionintegersim

StagePatch ​

CampoTipoObrigatórioDescrição
namestring (opcional)não
positioninteger (opcional)não

SwitchUnit ​

CampoTipoObrigatórioDescrição
tenant_idintegersim

TechnicianBoard ​

CampoTipoObrigatórioDescrição
techniciansTechnicianLane[]sim
unassignedJob[]simServiços abertos sem técnico (só para recepção e dono).

TechnicianLane ​

CampoTipoObrigatórioDescrição
idintegersim
namestringsim
currentnull | Jobnão
jobsJob[]simAbertos e os concluídos nas últimas 24 h.

Totals ​

CampoTipoObrigatórioDescrição
approved_centsintegersimSoma dos itens aprovados, em centavos.
proposed_centsintegersimSoma dos itens ainda em orçamento, em centavos.

Unit ​

CampoTipoObrigatórioDescrição
idintegersim
namestringsim
logo_urlstring (opcional)não
business_typestringsim
rolestringsimPapel da pessoa nesta unidade.
currentbooleansimÉ a unidade aberta agora.
open_ordersinteger (opcional)nãoOS no pátio (fora de entregue/cancelada). Só para quem vê a operação da unidade.
ready_ordersinteger (opcional)nãoOS prontas para retirada.

Vehicle ​

CampoTipoObrigatórioDescrição
idintegersim
customer_idintegersim
platestringsimMaiúsculas, sem hífen: ABC1234 ou ABC1D23.
brandstringsim
modelstringsim
yearinteger (opcional)não
colorstringsim
notesstringsim
created_atintegersim
updated_atintegersim

VehiclePage ​

CampoTipoObrigatórioDescrição
dataVehicle[]sim
next_cursorstring (opcional)não

VehiclePatch ​

CampoTipoObrigatórioDescrição
customer_idinteger (opcional)nãoTroca o dono do veículo (venda do carro).
platestring (opcional)não
brandstring (opcional)não
modelstring (opcional)não
yearinteger (opcional)não
colorstring (opcional)não
notesstring (opcional)não

VehicleRef ​

CampoTipoObrigatórioDescrição
idintegersim
platestringsim
brandstringsim
modelstringsim
colorstringsim
yearinteger (opcional)não