# FaciPay()
Inicializa a SDK e valida a chave publicável.
`FaciPay(publishableKey)` é o ponto de entrada da SDK. Devolve uma instância que valida
a chave em background e expõe `generateButton()`.
```js
const facipay = FaciPay('pk_test_xxxxxxxx');
```
## Parâmetros
A sua chave publicável (`pk_test_…` em sandbox, `pk_live_…` em produção). Obrigatória —
uma chave vazia ou inválida impede o botão de renderizar.
## Propriedades
A chave fornecida na inicialização.
Estado da validação da chave: `idle` | `loading` | `valid` | `invalid` | `empty`.
A validação é assíncrona; o estado evolui de `idle`/`loading` para `valid` ou `invalid`.
## Métodos
Cria um botão de pagamento. Ver [generateButton()](/pt/sdk/generate-button).
## Validação da chave
Ao inicializar, a SDK:
1. Verifica o **formato** da chave (prefixo `pk_test_`/`pk_live_`).
2. Valida a chave contra o servidor de forma assíncrona.
3. Atualiza `apiKeyStatus`. Se a chave for inválida, o botão não é renderizado e um
erro é registado na consola (`console.error`); nenhuma mensagem de erro é mostrada na página.
```js
const facipay = FaciPay('pk_test_xxx');
// apiKeyStatus passa por 'loading' e termina em 'valid' ou 'invalid'
```
Se a chave for inválida ou vazia, a SDK escreve um erro no console e o botão **não**
aparece. Confirme que a chave corresponde ao ambiente (sandbox vs produção).
Criar o botão com callbacks e opções.