# Controles de retenção de dados A Belvo oferece mecanismos para permitir que você controle os dados que são retidos em relação aos seus usuários. Esses mecanismos são divididos em dois níveis: - Nível de Link - Nível de Recurso ## Controles de retenção de dados no nível do link Ao criar um link, você pode definir parâmetros que determinam como a Belvo armazena: - Credenciais criptografadas (`credentials_storage`) - Dados derivados do usuário (`stale_in`) ### `credentials_storage` O parâmetro `credentials_storage` controla por quanto tempo a Belvo armazenará as credenciais criptografadas em nosso banco de dados. Você pode definir os seguintes valores: | Valor | Descrição | Tipo de link | | --- | --- | --- | | `store` | A Belvo armazenará as credenciais criptografadas associadas ao usuário até que o link seja excluído. Para links recorrentes, isso deve ser definido como `store`. | Único e recorrente | | `nostore` | A Belvo não armazenará credenciais criptografadas para o usuário, a menos que um token MFA seja necessário. Se um token MFA for necessário, armazenamos as credenciais por no máximo 15 minutos, calculados a partir do momento em que o link foi criado (o timestamp `created_at`), após o qual as credenciais são excluídas do nosso sistema. **Nota**: Você deve indicar quais recursos deseja recuperar informações em `fetch_resources` quando definir este parâmetro como `nostore`. Você não poderá recuperar nenhuma informação usando chamadas POST sobre o link. | Único | | `1d - 365d` | A Belvo armazena as credenciais criptografadas pelo período indicado por você (mínimo de 1 dia, máximo de 365 dias), calculado a partir do timestamp `created_at` do link. Após este período, você não poderá recuperar nenhum dado usando chamadas POST. Para links únicos, por padrão, isso é definido como `365d`. | Único | Com `nostore` ou `1d-365d`, uma vez que o período tenha expirado, o status do link mudará para `invalid`. Se você precisar recuperar informações adicionais sobre seu usuário, será necessário pedir a ele para criar o link novamente. Após criar o link, você não pode atualizar os valores para `credentials_storage`. Você precisará excluir o link e, se necessário, pedir ao seu usuário para se conectar novamente. ### `stale_in` O parâmetro `stale_in` controla por quanto tempo a Belvo armazena dados derivados do usuário. O período é relativo ao timestamp `last_updated_at` do link (a última vez que a conta do usuário foi acessada). Você pode definir os seguintes valores: | Valor | Descrição | Tipo de link | | --- | --- | --- | | `1d - 365d` | A Belvo armazena os dados derivados do usuário pelo período indicado por você (mínimo 1 dia, máximo 365 dias). O período é calculado em relação ao timestamp `link.last_updated_at`. Por padrão, isso é definido como `365d`. | Único e recorrente | `stale_in` controla apenas a exclusão dos dados associados a um usuário. Para excluir o link, você precisa usar nossa solicitação Excluir um link ## Controles de retenção de dados em nível de recurso ### `save_data` Sempre que você fizer uma chamada POST para recuperar dados sobre um usuário, você pode escolher se a Belvo armazena ou não qualquer dado derivado do usuário usando o parâmetro `save_data`. Você pode definir os seguintes valores: | Valor | Descrição | Aplica-se a | | --- | --- | --- | | `true` | Os dados derivados do usuário são armazenados no banco de dados da Belvo. A resposta HTTP será um `201` criado. Este é o valor padrão. | Todas as chamadas POST | | `false` | Nenhum dado derivado do usuário é armazenado no banco de dados da Belvo. A resposta HTTP será um `200` Ok. | Todas as chamadas POST | ## Casos de uso ### PFMs e ERPs PFMs e ERPs precisam de acesso recorrente a informações (tanto atuais quanto históricas) para fornecer aos clientes uma visão detalhada de suas contas, saldos e transações. Para este caso de uso, recomendamos o uso de links recorrentes com os controles de retenção de dados padrão: ```json // Credenciais padrão e armazenamento de dados derivados do usuário { "access_mode": "recurrent", "credentials_storage": "store", // Padrão "stale_in": "365d", // Padrão } ``` A menos que o status do link recorrente seja `invalid` ou `token_required`, você continuará podendo recuperar dados históricos por mais de 365 dias. ### Avaliações de crédito recorrentes e empréstimos de curto prazo Com avaliações de crédito recorrentes ou empréstimos de curto prazo, você provavelmente deseja armazenar dados apenas por um período limitado de tempo para que possa acompanhar os saldos das contas e pagamentos do usuário durante a duração do empréstimo. Para este caso, recomendamos o uso de links únicos onde você armazena apenas credenciais e dados derivados do usuário durante a duração do empréstimo: ```json // Armazenar credenciais e dados por um período limitado { "access_mode": "single", "credentials_storage": "100d", "stale_in": "100d", "fetch_resources": ["ACCOUNTS", "OWNERS", "TRANSACTIONS"] } ``` Todos os dados derivados do usuário serão armazenados em nosso banco de dados em relação ao timestamp `last_accessed_at` do link. Por exemplo, se você criar um link no primeiro dia do mês e depois fizer uma chamada POST para recuperar dados no décimo dia do mês, armazenamos os dados derivados do usuário por 21 dias após esse dia. ### Requisitos de conformidade Para empresas que precisam passar por auditorias de rotina ou verificações de conformidade, pode ser que você não queira armazenar dados sensíveis por mais tempo do que o absolutamente necessário. Para este caso, recomendamos o uso de links únicos com armazenamento mínimo de dados: ```json // Armazene apenas os dados necessários para auditoria ou conformidade { "access_mode": "single", "credentials_storage": "3d", "stale_in": "2d", "fetch_resources": ["ACCOUNTS", "BALANCES", "TRANSACTIONS"] } ``` Neste caso, as credenciais serão anuladas após três dias, no entanto, os dados derivados do usuário ainda estarão presentes no sistema da Belvo até que dois dias tenham se passado após o timestamp `last_updated_at` do link. ### Verificação de ID ou avaliações de crédito No caso de você querer usar o Belvo para verificação de ID ou avaliações de crédito pontuais, você não precisará acessar dados derivados do usuário em uma data posterior. Para este caso, recomendamos o uso de links únicos onde você não armazena credenciais e tem um armazenamento mínimo de dados derivados do usuário: ```json // Não armazene credenciais ou dados derivados do usuário { "access_mode": "single", "credentials_storage": "nostore", "stale_in": "1d", "fetch_resources": ["ACCOUNTS", "OWNERS", "TRANSACTIONS"] } ``` Uma vez que o link é criado, você precisa esperar pelo `historical_update` webhook para cada um dos recursos que você listar. Você pode então recuperar os dados derivados do usuário usando uma chamada GET. Os dados derivados do usuário serão removidos do nosso banco de dados um dia depois ### Links recorrentes podem ter um intervalo de tempo definido para armazenamento de credenciais? Para links recorrentes, `credentials_storage` deve ser configurado como `store`. Se você deseja remover o link (e qualquer dado derivado do usuário associado ao link), você precisa usar a solicitação Excluir um link. ### Como o `stale_in` funciona para links recorrentes? Com links recorrentes, uma vez que o `status` de um link é definido como `invalid` ou `token_required`, não podemos mais acessar a instituição do usuário. Assim, o timestamp `last_accessed_at` do link não será atualizado e a Belvo excluirá quaisquer dados derivados do usuário assim que o período `stale_in` for atingido. ### A Belvo exclui dados derivados do usuário por padrão para links recorrentes? No caso de o timestamp `last_accessed_at` não ter sido atualizado por 365 dias, a Belvo removerá automaticamente quaisquer dados derivados do usuário relacionados ao link. ### Posso alterar os valores de `credentials_storage` ou `stale_in` do link? Depois de criar o link, você não pode atualizar os valores de `credentials_storage` ou `stale_in`. Você precisará excluir o link e pedir ao seu usuário para se conectar novamente. ### Posso atualizar as credenciais de um link se ainda estiver dentro do período de armazenamento? Sim, se o período de armazenamento ainda não expirou, você pode atualizar as credenciais ou fornecer um token MFA usando nossa solicitação de Atualizar as credenciais de um link. Se você estiver usando links recorrentes, receberá informações de que um link precisa ser atualizado através dos nossos webhooks de Links. ### Se eu excluir um link, todos os dados derivados do usuário associados também serão excluídos? Sim, uma vez que você exclui um link, a Belvo removerá quaisquer dados (incluindo credenciais) associados ao usuário. ### A Belvo armazena algum dado quando da suíte de recursos Enrich Your Own Data? Não, a Belvo não armazena nenhum dado quando você usa nossos recursos Enrich Your Own Data. ### Eu esqueci de usar `save_data: false` quando fiz uma chamada POST. Como removo os dados do banco de dados da Belvo? Para remover qualquer dado de recurso, basta usar a solicitação Delete a {resource name} do recurso. Por exemplo, se você recuperou informações de conta, pode usar a solicitação Delete an account. ### Como a Belvo criptografa credenciais? A Belvo utiliza criptografia simétrica AES-256 padrão da indústria para criptografar credenciais. Também fornecemos uma camada adicional de segurança quando você usa o Connect Widget da Belvo, onde criptografamos as credenciais do usuário primeiro no nível do widget usando criptografia assimétrica RSA 2048.