> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.hydrahub.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Informações da Empresa

> O endpoint de informações da empresa permite obter dados detalhados sobre a empresa integrada ao HYDRA HUB. Útil para verificar a configuração atual da sua conta, limites operacionais e status de integração.B

## Endpoint

```bash
GET /api/v1/company
```

## Autenticação

Este endpoint requer autenticação usando Basic Auth. Concatene sua chave secreta e pública no formato `sk_xxxx:pk_yyyy` e codifique em Base64.

```bash
Authorization: Basic c2tfeHh4eDpwa195eXl5
```

## Response

```json
{
  "success": true,
  "data": {
    "id": 123,
    "name": "Empresa Exemplo S/A",
    "tradingName": "Empresa Exemplo",
    "document": {
      "type": "cnpj",
      "number": "12345678000199"
    },
    "status": "active",
    "createdAt": "2022-05-10T14:30:45Z",
    "paymentMethods": {
      "credit_card": true,
      "pix": true,
      "boleto": false
    },
    "limits": {
      "transactionMaxAmount": 5000000,
      "transactionMinAmount": 100
    },
    "configuration": {
      "webhook": {
        "url": "https://seusite.com.br/webhook",
        "events": ["transaction.approved", "transaction.refused"]
      },
      "notificationEmail": "financeiro@empresa.com.br",
      "autoCapture": true,
      "antifraudEnabled": true
    },
    "settlement": {
      "bank": {
        "code": "341",
        "branch": "3244",
        "account": "12345-6"
      },
      "schedule": "D+1",
      "automaticTransfer": true
    }
  }
}
```

### Campos da Resposta

| Campo           | Tipo    | Descrição                              |
| --------------- | ------- | -------------------------------------- |
| id              | integer | ID único da empresa no HYDRA HUB       |
| name            | string  | Razão social da empresa                |
| tradingName     | string  | Nome fantasia da empresa               |
| document.type   | string  | Tipo de documento (cnpj ou cpf)        |
| document.number | string  | Número do documento                    |
| status          | string  | Status da empresa no sistema           |
| createdAt       | string  | Data de criação da conta               |
| paymentMethods  | object  | Métodos de pagamento habilitados       |
| limits          | object  | Limites operacionais para transações   |
| configuration   | object  | Configurações gerais da conta          |
| settlement      | object  | Configurações de liquidação financeira |

## Detalhes dos Campos

### Status da Empresa

O campo `status` pode ter os seguintes valores:

* **active**: Empresa ativa e operacional
* **pending**: Processo de integração em andamento
* **suspended**: Operações temporariamente suspensas
* **inactive**: Conta inativa

### Métodos de Pagamento

O objeto `paymentMethods` indica quais métodos de pagamento estão habilitados para sua empresa:

```json
"paymentMethods": {
  "credit_card": true,
  "pix": true,
  "boleto": false
}
```

Para solicitar a ativação de novos métodos de pagamento, entre em contato com nosso suporte.

### Limites Operacionais

O objeto `limits` contém informações sobre os limites de transação:

```json
"limits": {
  "transactionMaxAmount": 5000000,  // R$ 50.000,00
  "transactionMinAmount": 100       // R$ 1,00
}
```

Os valores são expressos em centavos. Transações com valores fora desses limites serão recusadas automaticamente.

### Configuração de Webhooks

O objeto `configuration.webhook` contém a URL para notificações e os eventos configurados:

```json
"webhook": {
  "url": "https://seusite.com.br/webhook",
  "events": ["transaction.approved", "transaction.refused"]
}
```

Os eventos possíveis são:

* **transaction.approved**: Transação aprovada
* **transaction.refused**: Transação recusada
* **transaction.refunded**: Transação estornada
* **transaction.chargedback**: Transação com chargeback
* **transaction.canceled**: Transação cancelada

### Configuração de Liquidação

O objeto `settlement` contém informações sobre como os valores são liquidados para sua empresa:

```json
"settlement": {
  "bank": {
    "code": "341",
    "branch": "3244",
    "account": "12345-6"
  },
  "schedule": "D+1",
  "automaticTransfer": true
}
```

* **schedule**: Prazo de liquidação (D+1, D+2, D+30, etc.)
* **automaticTransfer**: Se a transferência é automática ou manual

## Casos de Uso

### Verificar Configuração

É recomendável verificar periodicamente as configurações da sua empresa para garantir que tudo está correto:

```javascript
async function checkCompanySettings() {
  try {
    const response = await fetch('https://api.hydrahub.com.br/api/v1/company', {
      headers: {
        'Authorization': 'Basic ' + btoa('sk_xxxx:pk_yyyy')
      }
    });
    
    const data = await response.json();
    
    if (!data.success) {
      console.error('Erro ao obter informações da empresa');
      return null;
    }
    
    // Verificar se webhook está configurado corretamente
    if (!data.data.configuration.webhook.url) {
      console.warn('Webhook não configurado. Notificações não serão recebidas.');
    }
    
    // Verificar se PIX está habilitado
    if (!data.data.paymentMethods.pix) {
      console.warn('Método PIX não habilitado para esta empresa.');
    }
    
    return data.data;
  } catch (error) {
    console.error('Erro na requisição:', error);
    return null;
  }
}
```

### Verificar Limites de Transação

Consulte os limites antes de processar transações de alto valor:

```javascript
async function checkTransactionLimits(amount) {
  const companyInfo = await checkCompanySettings();
  
  if (!companyInfo) return false;
  
  if (amount < companyInfo.limits.transactionMinAmount) {
    console.error(`Valor mínimo permitido: R$ ${companyInfo.limits.transactionMinAmount / 100}`);
    return false;
  }
  
  if (amount > companyInfo.limits.transactionMaxAmount) {
    console.error(`Valor máximo permitido: R$ ${companyInfo.limits.transactionMaxAmount / 100}`);
    return false;
  }
  
  return true;
}
```

## Boas Práticas

1. **Verifique periodicamente** as configurações da sua empresa
2. **Configure um webhook global** para receber notificações de transações
3. **Mantenha os dados bancários atualizados** para evitar problemas na liquidação
4. **Fique atento aos limites** de valor mínimo e máximo por transação
5. **Verifique regularmente** quais métodos de pagamento estão habilitados

<Warning>
  Alterações em dados bancários, razão social ou documentos podem exigir verificação adicional e podem levar até 2 dias úteis para serem processadas.
</Warning>
