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

# CompanyPaymentSettings

> Configuração de billing da empresa no provider externo

## Campos

| Campo                      | Tipo                           | Descrição                                                        |
| -------------------------- | ------------------------------ | ---------------------------------------------------------------- |
| `companyPaymentSettingsId` | `UUID`                         | Identificador único                                              |
| `organizationId`           | `UUID`                         | Referência à organização da empresa                              |
| `companyId`                | `UUID`                         | Referência à empresa dona da configuração                        |
| `externalProvider`         | `String`                       | Identificador lógico do provider usado pela interface de billing |
| `externalAccountId`        | `String`                       | Identificador da conta externa da empresa no provider            |
| `externalWalletId`         | `String?`                      | Identificador auxiliar da carteira externa, quando existir       |
| `externalApiKey`           | `String`                       | API key externa armazenada de forma criptografada                |
| `status`                   | `CompanyPaymentSettingsStatus` | Status da configuração de billing                                |
| `createdBy`                | `UUID?`                        | Usuário que criou o registro, quando aplicável                   |
| `createdAt`                | `DateTime`                     | Data de criação                                                  |
| `updatedBy`                | `UUID?`                        | Usuário que fez a última atualização, quando aplicável           |
| `updatedAt`                | `DateTime`                     | Data da última atualização                                       |
| `deletedBy`                | `UUID?`                        | Usuário que removeu o registro, quando aplicável                 |
| `deletedAt`                | `DateTime?`                    | Data de remoção                                                  |

## Relacionamentos

* Relaciona-se com [Organization](/data-modelling/tenant/organization)
* Relaciona-se com [Company](/data-modelling/tenant/company) (1:1)

## Regras de Negócio

* Cada empresa possui no máximo uma configuração de billing ativa.
* A configuração pertence sempre a uma Company; Cooperative não participa do fluxo de billing.
* `externalAccountId` identifica a conta externa usada pela empresa para cobranças, saldo, recebíveis e transferências.
* `externalApiKey` é criptografado antes de ser persistido e nunca deve ser exibido em respostas públicas.
* `externalWalletId` é uma referência externa auxiliar; não representa regra de split.

## Enums

### CompanyPaymentSettingsStatus

| Valor      | Descrição                                     |
| ---------- | --------------------------------------------- |
| `PENDING`  | Configuração criada, aguardando habilitação   |
| `ACTIVE`   | Configuração ativa para operações financeiras |
| `REJECTED` | Configuração recusada ou não aprovada         |
| `DISABLED` | Configuração desabilitada                     |

## Example

```json theme={null}
{
  "companyPaymentSettingsId": "0197a817-1cc7-7d9c-9d74-8149674d0ef2",
  "organizationId": "0197a801-1690-7590-b3cf-19599b9be3e4",
  "companyId": "0197a801-6a42-79aa-9e56-d3c85148c0fa",
  "externalProvider": "billing_interface",
  "externalAccountId": "acct_2c9f81b0",
  "externalWalletId": "wallet_42d8a19f",
  "externalApiKey": "encrypted_external_api_key",
  "status": "ACTIVE",
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-03T14:30:00.000Z",
  "updatedBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "updatedAt": "2026-07-03T14:30:00.000Z",
  "deletedBy": null,
  "deletedAt": null
}
```
