# Como consumir API de CPF em PowerApps para apps low-code empresariais

> Aprenda a criar apps low-code no PowerApps que consultam CPF via API CPFHub.io usando Custom Connectors e Power Fx com interface corporativa.

**Publicado:** 04/10/2026
**Autor:** Lucas Vieira
**URL:** https://www.cpfhub.io/blog/como-consumir-api-cpf-powerapps-apps-low-code-empresariais

---


PowerApps é a plataforma low-code da Microsoft para criar aplicações empresariais sem (ou com pouco) código, integrada ao ecossistema Microsoft 365. No contexto brasileiro, equipes de negócio usam o PowerApps para cadastros, atendimento ao cliente e processos de aprovação — e muitas dessas aplicações precisam validar CPF. Isso é possível com Custom Connectors que se conectam a APIs externas como a [CPFHub.io](https://cpfhub.io), permitindo validação em tempo real com latência de ~300ms diretamente dentro do Power Fx.

---

## Criando o Custom Connector

O Custom Connector é o componente que permite ao PowerApps se comunicar com a API da CPFHub.io. Ele define o endpoint, a autenticação e o formato da resposta.

### Passo 1 — Acessar o criador de Custom Connectors

1. Acesse [make.powerapps.com](https://make.powerapps.com).
2. No menu lateral, vá em **Dataverse > Custom Connectors**.
3. Clique em **New custom connector > Create from blank**.
4. Nomeie como "CPFHub API".

### Passo 2 — Configuração geral

* **Host:** api.cpfhub.io
* **Base URL:** /
* **Scheme:** HTTPS

### Passo 3 — Autenticação

* **Authentication type:** API Key
* **Parameter label:** API Key
* **Parameter name:** x-api-key
* **Parameter location:** Header

### Passo 4 — Definir a ação

Crie uma nova ação chamada "ConsultarCPF":

* **Operation ID:** ConsultarCPF
* **Description:** Consulta dados cadastrais de um CPF
* **Visibility:** important

Configure a requisição:

* **Method:** GET
* **URL:** /cpf/{cpfNumero}

Parâmetros:

| Nome | Tipo | Obrigatório | Localização |
|------------|--------|-------------|-------------|
| cpfNumero | string | Sim | Path |

### Passo 5 — Definir resposta

Importe o seguinte schema de resposta:

```json
{
 "success": true,
 "data": {
 "cpf": "12345678901",
 "name": "Joao da Silva",
 "nameUpper": "JOAO DA SILVA",
 "gender": "M",
 "birthDate": "15/06/1990",
 "day": 15,
 "month": 6,
 "year": 1990
 }
}
```

Salve e teste o conector diretamente na interface de criação.

---

## Construindo o app de validação

Com o Custom Connector pronto, crie o app no PowerApps:

### Tela de consulta

Adicione os seguintes controles à tela:

1. **TextInput** (txtCPF) — Campo de entrada do CPF.
2. **Button** (btnConsultar) — Botão para disparar a consulta.
3. **Label** (lblNome) — Exibe o nome retornado.
4. **Label** (lblGenero) — Exibe o gênero.
5. **Label** (lblNascimento) — Exibe a data de nascimento.
6. **Label** (lblStatus) — Exibe status da consulta.
7. **Label** (lblErro) — Exibe mensagens de erro.

### Fórmulas Power Fx

Configure a propriedade **OnSelect** do botão de consulta:

```
// btnConsultar.OnSelect
UpdateContext({varCarregando: true, varErro: "", varResultado: Blank()});

Set(
 varResultado,
 CPFHubAPI.ConsultarCPF(
 Substitute(
 Substitute(
 Substitute(txtCPF.Text, ".", ""),
 "-", ""
 ),
 " ", ""
 )
 )
);

If(
 varResultado.success,
 UpdateContext({varCarregando: false}),
 UpdateContext({
 varCarregando: false,
 varErro: "CPF não encontrado na base de dados."
 })
);
```

Configure as propriedades dos labels:

```
// lblNome.Text
If(
 !IsBlank(varResultado) And varResultado.success,
 varResultado.data.name,
 ""
)

// lblGenero.Text
If(
 !IsBlank(varResultado) And varResultado.success,
 If(varResultado.data.gender = "M", "Masculino", "Feminino"),
 ""
)

// lblNascimento.Text
If(
 !IsBlank(varResultado) And varResultado.success,
 varResultado.data.birthDate,
 ""
)

// lblStatus.Text
If(
 varCarregando,
 "Consultando...",
 If(
 !IsBlank(varResultado) And varResultado.success,
 "CPF validado com sucesso",
 ""
 )
)

// lblErro.Text
varErro

// lblErro.Visible
!IsBlank(varErro)
```

---

## Validação local do CPF antes da consulta

Adicione validação de formato antes de chamar a API para economizar consultas:

```
// btnConsultar.OnSelect (versão com validação)
UpdateContext({varCarregando: false, varErro: "", varResultado: Blank()});

Set(
 varCPFLimpo,
 Substitute(
 Substitute(
 Substitute(txtCPF.Text, ".", ""),
 "-", ""
 ),
 " ", ""
 )
);

If(
 Len(varCPFLimpo) <> 11,
 UpdateContext({varErro: "CPF deve conter 11 dígitos."}),

 // CPF com todos os dígitos iguais
 If(
 Len(Distinct(Split(varCPFLimpo, ""), Result).Result) = 1,
 UpdateContext({varErro: "CPF inválido."}),

 // Consultar API
 UpdateContext({varCarregando: true});
 Set(
 varResultado,
 CPFHubAPI.ConsultarCPF(varCPFLimpo)
 );
 If(
 varResultado.success,
 UpdateContext({varCarregando: false}),
 UpdateContext({
 varCarregando: false,
 varErro: "CPF não encontrado."
 })
 )
 )
);
```

---

## Integração com SharePoint

Salve os resultados de validação em uma lista SharePoint para histórico:

```
// Após validação bem-sucedida, adicionar ao SharePoint
If(
 varResultado.success,
 Patch(
 'Validacoes CPF', // Nome da lista SharePoint
 Defaults('Validacoes CPF'),
 {
 Title: varCPFLimpo,
 NomeValidado: varResultado.data.name,
 Genero: varResultado.data.gender,
 DataNascimento: varResultado.data.birthDate,
 ValidadoEm: Now(),
 ValidadoPor: User().Email,
 Status: "Validado"
 }
 )
);
```

---

## Integração com Dataverse

Para organizações que utilizam Dataverse, crie uma tabela customizada:

| Coluna | Tipo | Descrição |
|------------------|---------------|------------------------------|
| CPF | Texto (11) | Número do CPF |
| Nome Validado | Texto (200) | Nome retornado pela API |
| Genero | Choice | Masculino / Feminino |
| Data Nascimento | Texto (10) | Data no formato DD/MM/AAAA |
| Status | Choice | Validado / Inválido / Erro |
| Validado Em | Date/Time | Timestamp da validação |
| Validado Por | Lookup (User) | Usuário que realizou |

A fórmula para salvar no Dataverse é similar à do SharePoint, usando `Patch()`.

---

## Fluxo Power Automate integrado

Para operações em lote ou automações mais complexas, conecte o PowerApp a um fluxo Power Automate:

```
// No PowerApp, chamar o fluxo
Set(
 varResultadoFluxo,
 FluxoValidarCPF.Run(varCPFLimpo)
);
```

O fluxo Power Automate pode incluir lógica adicional como:

* Verificar cache antes de chamar a API.
* Registrar auditoria detalhada.
* Enviar notificações condicionais.
* Processar lotes de CPFs de uma lista.

---

## Boas práticas para PowerApps corporativo

* **Delegation** — Para grandes volumes de dados, use Dataverse em vez de SharePoint para evitar limites de delegação.
* **Conexões compartilhadas** — Configure o Custom Connector com a chave de API em nível de organização, não de usuário individual.
* **Tratamento offline** — PowerApps suporta modo offline. Armazene tentativas de validação localmente e sincronize quando a conexão retornar.
* **Acessibilidade** — Use labels descritivos e contraste adequado para conformidade com padrões de acessibilidade corporativa.

A documentação oficial do [Microsoft PowerApps](https://learn.microsoft.com/pt-br/power-apps/) traz guias detalhados sobre Custom Connectors, incluindo segurança de autenticação e melhores práticas para ambientes corporativos.

---

## Custos e licenciamento

| Componente | Custo |
|----------------------------|---------------------------|
| PowerApps por usuário | ~$20/usuário/mês |
| Custom Connectors | Incluso no plano Premium |
| CPFHub.io Gratuito | R$0 (50 consultas/mês) |
| CPFHub.io Pro | R$149 (1.000 consultas) |

---

## Perguntas frequentes

### O Custom Connector do PowerApps suporta autenticação via header?
Sim. Durante a criação do Custom Connector, selecione "API Key" como tipo de autenticação e configure o nome do parâmetro como `x-api-key` na localização "Header". Assim, o PowerApps injeta automaticamente sua chave da CPFHub.io em cada chamada, sem expô-la nas fórmulas Power Fx.

### Como o rate limit da API afeta apps PowerApps em uso simultâneo?
A CPFHub.io impõe um limite de 1 requisição a cada 2 segundos no Plano Grátis e 1 req/s no Plano Pro — retornando HTTP 429 quando excedido. Para apps corporativos com múltiplos usuários simultâneos, o uso de cache no Power Automate (armazenando resultados no Dataverse por período de 24h) reduz drasticamente o número de chamadas à API.

### O que acontece se minha cota mensal da CPFHub.io for atingida dentro do PowerApps?
A CPFHub.io não bloqueia as consultas ao atingir a cota — ela cobra R$0,15 por cada requisição excedente. Para ambientes corporativos com volume previsível, o Plano Pro (1.000 consultas/mês por R$149) costuma ser suficiente. Para picos sazonais, o modelo de excedente sob demanda garante continuidade sem interrupção do app.

### É possível validar CPF em lote dentro do PowerApps via Power Automate?
Sim. Crie um fluxo no Power Automate que percorre uma lista SharePoint ou tabela Dataverse com CPFs pendentes e chama a CPFHub.io para cada um. O fluxo pode ser agendado (ex.: toda madrugada) ou disparado por botão no app. Respeite o intervalo entre requisições para não receber HTTP 429.

### Leia também

- [API de CPF grátis para desenvolvedores: como começar em 5 minutos](https://cpfhub.io/blog/api-cpf-gratis-desenvolvedores-comecar-5-minutos)
- [Como validar CPF no frontend com React e API REST](https://cpfhub.io/blog/como-validar-cpf-no-frontend-com-react-e-api-rest)
- [Onboarding digital em fintechs: como validar CPF em menos de 30 segundos](https://cpfhub.io/blog/onboarding-digital-em-fintechs-como-validar-cpf-em-menos-de-30-segundos)
- [SLA de API de CPF: níveis de disponibilidade](https://cpfhub.io/blog/sla-api-cpf-niveis-disponibilidade)

---

## Conclusão

PowerApps democratiza a criação de apps empresariais de validação de CPF, permitindo que equipes de negócio construam soluções sem depender de desenvolvedores. O Custom Connector da CPFHub.io se integra nativamente ao ecossistema Microsoft — SharePoint, Dataverse e Power Automate — com latência de ~300ms por consulta e sem interrupção ao atingir a cota mensal.

Crie sua conta gratuitamente em [cpfhub.io](https://cpfhub.io), gere sua API key e conecte ao PowerApps em menos de 30 minutos. O plano gratuito oferece 50 consultas/mês sem cartão — suficiente para validar a integração antes de levar ao ambiente de produção.

