Empresas


Listar

Endpoint que lista todos as empresas cadastradas.

Method URI Headers Authorization
GET /api/v4/companies Content-Type:application/json Authorization: Bearer {token}

Parameters

_q: empresa x (string) - "Busca as empresas pelo nome ou id."
_sort: id (string) ("id", "nome") - "Define o campo de ordenação da lista."
_order: desc (string) ("asc", "desc") - "Define a ordem da lista com base no campo definido."
_limit: 10 (integer) - "Quantidade de itens por página."
_page: 1 (integer) - "Página a ser carregada."
external_id: "123456" (array, string) - "Filtra empresas pelo ID externo."
parent_id: 1 (integer) - "Filtra empresas pelo ID da empresa pai."
account_id: 2 (integer) - "Filtra empresas de um grupo econômico."
type: 'company' (string) - "Filtra empresas de um tipo específico (company, unit, sector)."
crm_id: '132kjl3lk1' (string) - "Filtra empresas pelo ID do CRM."

{info} Apenas persona Super admin consegue filtrar empresas pelo parâmetro account_id. As demais personas só terão acesso as empresas vinculadas a sua conta.

Response

{success} Response 200 (application/json)

{
  "items": [
    {
        "id": 1,
        "crm_id": "0014100000QLVQZAA5",
        "name": "Empresa 1",
        "type": "Empresa",
        "unit_code": "123456",
        "cnpj": null,
        "corporate_name": "Empresa 1",
        "address": "Rua teste",
        "number": "4",
        "complement": null,
        "district": "Centro",
        "zip_code": "00000-000",
        "cnae": "123456",
        "parent":{
            "id": 2,
            "name": "Empresa Pai"
        },
        "city": {
            "id": 2,
            "name": "São Bernardo do Campo"
        },
        "state": {
            "id": 1,
            "name": "São Paulo"
        },
        "energy_demands_off_peak":[],
        "energy_demands_peak":[],
        "account":{
            "id": 2,
            "name": "Conta Cliente"
        },
        "code_ibge": 123456789,
        "timezone": -3
    }, 
    {
        "id": 1,
        "crm_id": null,
        "name": "Empresa 2",
        "type": "Empresa",
        "unit_code": null,
        "cnpj": null,
        "corporate_name": null,
        "address": null,
        "number": null,
        "complement": null,
        "district": null,
        "zip_code": null,
        "cnae": null,
        "parent":null,
        "city": {
            "id": 2,
            "name": "São Bernardo do Campo"
        },
        "state": {
            "id": 1,
            "name": "São Paulo"
        },
        "energy_demands_off_peak":[],
        "energy_demands_peak":[],
        "account":{
            "id": 2,
            "name": "Conta Cliente"
        },
        "code_ibge": null,
        "timezone": -3
    }
  ],
  "total": 2,
  "per_page": 10,
  "current_page": 1
}

{primary} Response 204 (application/json)

Quando os critérios de parâmetros não contiver registros a serem retornados.

{warning} Response 422 (application/json)

{
    "parent_id": [
        "Permissões insuficientes para esse grupo econômico"
    ],
    "account_id": [
        "O campo account id selecionado é inválido."
    ],
    "type": [
        "O campo tipo selecionado é inválido."
    ]
}

{warning} Response 400 (application/json)

Quando ocorre algum erro ou usuário não tem permissão.

Pegar

Endpoint que pega os dados de uma empresa específica.

Method URI Headers Authorization
GET /api/v4/companies/{companyId} Content-Type:application/json Authorization: Bearer {token}

Parameters

companyId: 2 - (integer, required) - "Id da empresa"

Response

{success} Response 200 (application/json)

{
    "id": 1,
    "crm_id": "0014100000QLVQZAA5",
    "name": "Empresa 1",
    "type": "Empresa",
    "unit_code": "123456",
    "cnpj": null,
    "corporate_name": "Empresa 1",
    "address": "Rua teste",
    "number": "4",
    "complement": null,
    "district": "Centro",
    "zip_code": "00000-000",
    "cnae": "123456",
    "parent":{
        "id": 2,
        "name": "Empresa Pai"
    },
    "city": {
        "id": 2,
        "name": "São Bernardo do Campo"
    },
    "state": {
       "id": 1,
       "name": "São Paulo"
    },
    "energy_demands_off_peak":[],
    "energy_demands_peak":[],
    "account":{
        "id": 2,
        "name": "Conta Cliente"
    },
    "code_ibge": 123456789,
    "timezone": -3
}

{warning} Response 400 (application/json)

Quando ocorre algum erro ou usuário não tem permissão.

Criar

Endpoint que cria uma empresa.

Method URI Headers Authorization
POST /api/v4/companies Content-Type:application/json Authorization: Bearer {token}

Attributes

name: "Empresa 1" (string, required) - "Nome da empresa."
type: 'company' (string, required) - "Tipo da empresa (company, unit, sector)."
account_id: 1 (integer) - "ID do grupo econômico que a empresa pertence."
external_id: "1" (string) - "ID externo da empresa."
parent_id: 1 (integer) - "ID da empresa pai."
cnpj: "9999999999" (string) - "CNPJ da empresa."
corporate_name: "Empresa 1" (string) - "Razão social da empresa."
address: "Rua X" (string) - "Endereço."
zip_code: "00000-000" (string) - "CEP."
number: "88" (string) - "Número."
complement: "X" (string) - "Complemento."
district: "X" (string) - "Bairro."
city_id: 1 (integer, required) - "Id da cidade."
state_id: 1 (integer, required) - "Id do estado."
cnae: 1 (string) - "CNAE."
contact_name: "Nino" (string) - "Nome do contato."
contact_telephone: "99999-9999" (string) - "Telefone fixo."
contact_cellphone: "999999-9999" (string) - "Telefone celular."
contact_email: "teste@teste.com" (string) - "E-mail de contato."
unit_code: "123456" (string) - "Código da unidade consumidora."
code_ibge: 123456789 (integer) - "Código IBGE."
timezone: -3 (integer) - "Fuso horário"

{info} O parâmetro account_id é obrigatório para persona Super Admin e para usuários de Contas do tipo Gestão.

O parâmetro timestamp não é obrigatório pois é preenchido automaticamente de acordo com o estado selecionado.

O parâmetro cnpj é obrigatório para empresas do tipo unit.

O parâmetro city_id é obrigatório para empresas do tipo company e unit.

O parâmetro state_id é obrigatório para empresas do tipo company e unit.

O parâmetro type:

  > Caso for company o campo parenti_id deve ser vazio.

  > Caso for unit o campo parent_id deve ser preenchido com uma empresa do tipo company.

  > Caso for sector o campo parent_id deve ser preenchido com uma empresa do tipo unit.

Response

{success} Response 201 (application/json)

{
    "id": 1,
    "crm_id": "0014100000QLVQZAA5",
    "name": "Empresa 1",
    "type": "Empresa",
    "unit_code": "123456",
    "cnpj": null,
    "corporate_name": "Empresa 1",
    "address": "Rua teste",
    "number": "4",
    "complement": null,
    "district": "Centro",
    "zip_code": "00000-000",
    "cnae": "123456",
    "parent":{
        "id": 2,
        "name": "Empresa Pai"
    },
    "city": {
        "id": 2,
        "name": "São Bernardo do Campo"
    },
    "state": {
       "id": 1,
       "name": "São Paulo"
    },
    "energy_demands_off_peak":[],
    "energy_demands_peak":[],
    "account":{
        "id": 2,
        "name": "Conta Cliente"
    },
    "code_ibge": 123456789,
    "timezone": -3
}

{warning} Response 422 (application/json)

{
    "name": [
        "O campo name é obrigatório."
    ],
    "parent_id": [
        "Permissões insuficientes para esse grupo econômico",
        "Não é permitido vincular como filial o próprio registro.",
        "É necessário que a empresa {Nome da Empresa} seja do tipo Empresa.",
        "É necessário que a empresa {Nome da Empresa} seja do tipo Unidade."
    ],
    "cnpj": [
      "Quando o tipo for Unidade o campo cnpj é obrigatório."
    ]
}

{warning} Response 400 (application/json)

Quando ocorre algum erro ou usuário não tem permissão.

Atualizar

Endpoint que atualiza uma empresa.

Method URI Headers Authorization
PUT /api/v4/companies/1 Content-Type:application/json Authorization: Bearer {token}

Attributes

name: "Empresa 1" (string) - "Nome da empresa."
type: 'company' (string) - "Tipo da empresa (company, unit, sector)."
account_id: 1 (integer) - "ID do grupo econômico que a empresa pertence."
external_id: "1" (string) - "ID externo da empresa."
parent_id: 1 (integer) - "ID da empresa pai."
cnpj: "9999999999" (string) - "CNPJ da empresa."
corporate_name: "Empresa 1" (string) - "Razão social da empresa."
address: "Rua X" (string) - "Endereço."
zip_code: "00000-000" (string) - "CEP."
number: "88" (string) - "Número."
complement: "X" (string) - "Complemento."
district: "X" (string) - "Bairro."
city_id: 1 (integer) - "Id da cidade."
state_id: 1 (integer) - "Id do estado."
cnae: 1 (string) - "CNAE."
contact_name: "Nino" (string) - "Nome do contato."
contact_telephone: "99999-9999" (string) - "Telefone fixo."
contact_cellphone: "999999-9999" (string) - "Telefone celular."
contact_email: "teste@teste.com" (string) - "E-mail de contato."
unit_code: "123456" (string) - "Código da unidade consumidora."
code_ibge: 123456789 (integer) - "Código IBGE."
timezone: -3 (integer) - "Fuso horário"

{info} O parâmetro account_id é obrigatório para persona Super Admin e para usuários de Contas do tipo Gestão.

O parâmetro timestamp não é obrigatório pois é preenchido automaticamente de acordo com o estado selecionado.

O parâmetro cnpj é obrigatório para empresas do tipo unit.

O parâmetro type:

  > Caso for company o campo parenti_id deve ser vazio.

  > Caso for unit o campo parent_id deve ser preenchido com uma empresa do tipo company.

  > Caso for sector o campo parent_id deve ser preenchido com uma empresa do tipo unit.

Response

{success} Response 200 (application/json)

{
    "id": 1,
    "crm_id": "0014100000QLVQZAA5",
    "name": "Empresa 1",
    "type": "Empresa",
    "unit_code": "123456",
    "cnpj": null,
    "corporate_name": "Empresa 1",
    "address": "Rua teste",
    "number": "4",
    "complement": null,
    "district": "Centro",
    "zip_code": "00000-000",
    "cnae": "123456",
    "parent":{
        "id": 2,
        "name": "Empresa Pai"
    },
    "city": {
        "id": 2,
        "name": "São Bernardo do Campo"
    },
    "state": {
       "id": 1,
       "name": "São Paulo"
    },
    "energy_demands_off_peak":[],
    "energy_demands_peak":[],
    "account":{
        "id": 2,
        "name": "Conta Cliente"
    },
    "code_ibge": 123456789,
    "timezone": -3
}

{warning} Response 422 (application/json)

{
    "name": [
        "O campo name é obrigatório."
    ],
    "parent_id": [
        "Permissões insuficientes para esse grupo econômico",
        "Não é permitido vincular como filial o próprio registro.",
        "É necessário que a empresa {Nome da Empresa} seja do tipo Empresa.",
        "É necessário que a empresa {Nome da Empresa} seja do tipo Unidade."
    ],
    "cnpj": [
        "Quando o tipo for Unidade o campo cnpj é obrigatório."
    ]
}

{warning} Response 403 (application/json)

[
    "Não é permitido trocar o grupo econômico."
]

{warning} Response 400 (application/json)

Quando ocorre algum erro ou usuário não tem permissão.

Deletar

Endpoint que deleta uma empresa.

Method URI Headers Authorization
DELETE /api/v3/companies/1 Content-Type:application/json Authorization: Bearer {token}

Response

{primary} Response 204 (application/json)

Quando o registro for excluido com sucesso.

{warning} Response 400 (application/json)

Quando ocorre algum erro ou usuário não tem permissão.