# nova-sdk-node-apis-efi

Exemplo de uso do SDK com seleção automática de ambiente e API (PIX, DEFAULT, etc):

## Instalação

```
npm install nova-sdk-node-apis-efi
```

## Uso em TypeScript

```ts
import { EfiSdk } from 'nova-sdk-node-apis-efi/dist/wrapper';
import { PixCreateImmediateChargeBody } from 'nova-sdk-node-apis-efi/dist/types/pix';

const sdk = new EfiSdk({
  sandbox: true, // ou false para produção
  client_id: 'seu-client-id',
  client_secret: 'seu-client-secret',
  certificate: '/caminho/para/certificado.pfx',
  // pemKey: '/caminho/para/chave.pem', // se usar PEM
  cert_base64: false, // true se for base64
  partner_token: 'seu-partner-token',
  validateMtls: true,
});

// PIX: Criar cobrança imediata
const body: PixCreateImmediateChargeBody = {
  calendario: { expiracao: 3600 },
  valor: { original: '10.00' },
  chave: 'sua-chave-pix',
};

sdk.pixCreateImmediateCharge(body)
  .then(resposta => {
    console.log(resposta);
  })
  .catch(erro => {
    console.error(erro);
  });

// DEFAULT: Listar cobranças
sdk.listCharges()
  .then(resposta => {
    console.log(resposta);
  })
  .catch(erro => {
    console.error(erro);
  });
```

## Uso em JavaScript

```js
const { EfiSdk } = require('nova-sdk-node-apis-efi/dist/wrapper');

const sdk = new EfiSdk({
  sandbox: true,
  client_id: 'seu-client-id',
  client_secret: 'seu-client-secret',
  certificate: '/caminho/para/certificado.pfx',
  cert_base64: false,
  partner_token: 'seu-partner-token',
  validateMtls: true,
});

// PIX: Criar cobrança imediata
sdk.pixCreateImmediateCharge({
  calendario: { expiracao: 3600 },
  valor: { original: '10.00' },
  chave: 'sua-chave-pix',
})
  .then(resposta => {
    console.log(resposta);
  })
  .catch(erro => {
    console.error(erro);
  });

// DEFAULT: Listar cobranças
sdk.listCharges({
  charge_type: 'billet',
  begin_date: '2024-05-05',
  end_date: '2025-03-01'
})
  .then(resposta => {
    console.log(resposta);
  })
  .catch(erro => {
    console.error(erro);
  });
```

## Observações
- A SDK seleciona automaticamente a URL base e a autenticação correta para cada método, conforme a API (PIX, DEFAULT, etc) e o ambiente (sandbox ou produção).
- O token de autenticação é gerenciado internamente e renovado automaticamente quando necessário.
- Para adicionar outros métodos, basta seguir o padrão dos exemplos acima. 