Configuração de Envio

Endpoints da WebApiAlcance para gerenciar configurações de envio - os canais de comunicação (por exemplo e-mail e WhatsApp) usados para disparar mensagens a clientes. Cada configuração associa um canal (tipo) a um cliente e/ou usuário, com um nome identificador e uma flag de ativação. Cobrem listagem geral, detalhamento por ID, criação, atualização e exclusão.

Todos os endpoints exigem autenticação. Veja Autenticação para o fluxo de API Key. O Swagger oficial está em api.contabilidadealcance.com.br/docs.

Base path

/api/v1/config-envio

Escopos necessários

  • config_envio:read - listagem e detalhamento
  • config_envio:write - criação, atualização e exclusão

O escopo é derivado da rota: o prefixo /config-envio vira o recurso config_envio (hífen → underscore), e o método HTTP define a ação (read para GET, write para POST/PUT/DELETE).

Endpoints

GET /config-envio/

Lista todas as configurações de envio cadastradas. Lista vazia é um estado válido - sempre retorna 200 OK, inclusive com data: [] e a mensagem "Nenhuma configuração encontrada.".

Parâmetros

Este endpoint não recebe parâmetros de rota ou query. A resposta traz data como um array de ConfigEnvioRead.

Request

Sem corpo de requisição.

Response 200 OK

{
  "success": true,
  "message": "Configurações recuperadas com sucesso",
  "data": [
    {
      "id": 1,
      "cliente_id": 42,
      "usuario_id": 7,
      "nome": "E-mail cobrança",
      "tipo": "email",
      "ativo": true
    }
  ]
}

Escopo: config_envio:read

GET /config-envio/{id}

Detalha uma configuração de envio pelo ID inteiro. Quando não encontrada, retorna o envelope de erro com success: false.

Parâmetros

ParâmetroTipoLocalObrigatórioDescrição
idintpathsimID interno da configuração

Request

Sem corpo de requisição.

Response 200 OK

{
  "success": true,
  "message": "Configuração recuperada com sucesso",
  "data": {
    "id": 1,
    "cliente_id": 42,
    "usuario_id": 7,
    "nome": "E-mail cobrança",
    "tipo": "email",
    "ativo": true
  }
}

Quando o ID não existe, retorna { success: false, message: "Configuração não encontrada.", details: { id } }. Escopo: config_envio:read

POST /config-envio/

Cria uma nova configuração de envio.

Parâmetros

Este endpoint não recebe parâmetros de rota ou query - os dados vão no corpo da requisição (ConfigEnvioCreate): cliente_id, usuario_id, nome, tipo e ativo, todos opcionais (ativo tem default true).

Request

{
  "cliente_id": 42,
  "usuario_id": 7,
  "nome": "WhatsApp avisos",
  "tipo": "whatsapp",
  "ativo": true
}

Response 200 OK

{
  "success": true,
  "message": "Configuração criada com sucesso",
  "data": {
    "id": 8,
    "cliente_id": 42,
    "usuario_id": 7,
    "nome": "WhatsApp avisos",
    "tipo": "whatsapp",
    "ativo": true
  }
}

Erros de validação de negócio retornam o envelope de erro { success: false, message: "<motivo>" }. Escopo: config_envio:write

PUT /config-envio/{id}

Atualiza uma configuração existente. O body é um ConfigEnvioUpdate com campos parciais - somente o que vier preenchido é considerado.

Parâmetros

ParâmetroTipoLocalObrigatórioDescrição
idintpathsimID da configuração

Request (ConfigEnvioUpdate - todos os campos opcionais)

{
  "nome": "WhatsApp avisos",
  "ativo": false
}

Response 200 OK

{
  "success": true,
  "message": "Configuração atualizada com sucesso",
  "data": {
    "id": 8,
    "cliente_id": 42,
    "usuario_id": 7,
    "nome": "WhatsApp avisos",
    "tipo": "whatsapp",
    "ativo": false
  }
}

Quando o ID não existe, retorna { success: false, message: "Configuração não encontrada.", details: { id } }. Escopo: config_envio:write

DELETE /config-envio/{config_id}

Remove uma configuração de envio pelo ID.

Parâmetros

ParâmetroTipoLocalObrigatórioDescrição
config_idintpathsimID da configuração

Request

Sem corpo de requisição.

Response 200 OK

{
  "success": true,
  "message": "Configuração deletada com sucesso",
  "data": null
}

Escopo: config_envio:write

Schemas

ConfigEnvioCreate

Herdado de ConfigEnvioBase - todos os campos são opcionais.

CampoTipoObrigatórioObservações
cliente_idintnãoID do cliente ao qual a configuração pertence.
usuario_idintnãoID do usuário associado à configuração.
nomestrnãoNome identificador da configuração.
tipostrnãoCanal de envio (ex.: email, whatsapp).
ativoboolnãoSituação da configuração. Default true.

ConfigEnvioUpdate

Mesma estrutura de ConfigEnvioBase; todos os campos são opcionais e apenas os enviados são considerados na atualização.

CampoTipoObservações
cliente_idintReassocia a configuração a outro cliente.
usuario_idintReassocia a configuração a outro usuário.
nomestrNovo nome identificador.
tipostrNovo canal de envio.
ativoboolNova situação de ativação.

ConfigEnvioRead

CampoTipoNotas
idintIdentificador da configuração.
cliente_idintCliente associado.
usuario_idintUsuário associado.
nomestrNome identificador.
tipostrCanal de envio (email, whatsapp, …).
ativoboolSituação (true = ativo).

Notas

  • Toda resposta segue o envelope { success, message, data } (ou { success: false, message, details } em erro).
  • O schema de configuração não possui campos de credenciais (senha SMTP, token de canal etc.). Os schemas expõem apenas cliente_id, usuario_id, nome, tipo e ativo - nenhum segredo é aceito na escrita nem retornado na leitura.
  • GET /config-envio/{id} usa o parâmetro id, enquanto DELETE /config-envio/{config_id} usa config_id; ambos são o mesmo identificador inteiro da configuração.
  • Relaciona-se com o cadastro de Customers, referenciado por cliente_id.