Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 22 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# FiscalAPI — SDK PHP

Cliente PHP da [FiscalAPI](https://fiscalapi.com.br): Inscrição Estadual nos 27 estados, CNPJ, certidões (CND estadual, CND Federal, CNDT, CRF/FGTS), XML de NF-e por chave, SIGEF, CNIR e perfil do produtor rural.
Cliente PHP da [FiscalAPI](https://fiscalapi.com.br): Inscrição Estadual nos 27 estados, CNPJ, certidões (CND estadual, CND Federal, CNDT, CRF/FGTS), XML de NF-e por chave, NFS-e por chave, Simples Nacional, SIGEF, CNIR e perfil do produtor rural.

- PHP 8.1 ou superior, só com a extensão `curl` (nenhum pacote do Composer).
- Autoload PSR-4 (`FiscalApiBr\`).
Expand Down Expand Up @@ -50,6 +50,8 @@ Todos os métodos devolvem `array` com o JSON da API. Use argumentos nomeados pa
| `consultarCndt(cpf: \| cnpj:)` | `GET /api/consultar-cndt` | Certidão de débitos trabalhistas |
| `consultarCrfFgts(cpf: \| cnpj:)` | `GET /api/consultar-crf-fgts` | Regularidade do FGTS |
| `consultarCertidoesTodas(cpf: \| cnpj:, skipEstaduais: false)` | `GET /api/certidoes-todas` | Todas as certidões em uma chamada |
| `consultarSimplesNacional($cnpj)` | `GET /api/consultar-simples-nacional` | Situação no Simples Nacional e SIMEI |
| `consultarNfse($chave, danfse: false)` | `GET /api/consultar-nfse` | NFS-e (padrão nacional) por chave, sem certificado |
| `consultarNfeXml($chave, $certificado, $senha, manifestar: true)` | `POST /api/consultar-nfe-xml` | XML completo da NF-e |
| `consultarSigef(cpf: \| cnpj:)` | `GET /api/consultar-sigef` | Parcelas certificadas no SIGEF/INCRA |
| `consultarSigefParcela($uuid, forceFresh: false)` | `GET /api/consultar-sigef-parcela` | Uma parcela com polígono, vértices e confrontantes |
Expand Down Expand Up @@ -84,6 +86,25 @@ echo $empresa['result']['razao_social'], ' — ', $empresa['result']['situacao_c
$api->consultarCnpj('12345678000195', forceFresh: true);
```

### Simples Nacional

```php
$r = $api->consultarSimplesNacional('11222333000181');
var_dump($r['optante_simples'], $r['situacao_simei'], $r['regime_regular_ibs']);
```

### NFS-e por chave

```php
$nfse = $api->consultarNfse(
'35503082211222333000181000000000012326100000045676',
danfse: true, // opcional: PDF do DANFSe em base64
);
echo $nfse['emitente']['razao_social'], ' — ', $nfse['tributacao_municipal']['valor_servico'], PHP_EOL;
```

Uma consulta nova leva de 30 a 60 segundos. Só a NFS-e entregue é cobrada.

### Certidões com PDF

```php
Expand Down
28 changes: 27 additions & 1 deletion src/FiscalAPI.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
*/
final class FiscalAPI
{
public const VERSION = '0.1.0';
public const VERSION = '0.2.0';
public const DEFAULT_BASE_URL = 'https://api.fiscalapi.com.br';
/** Algumas consultas (NF-e, SIGEF) podem levar até 180 s no servidor. */
public const DEFAULT_TIMEOUT = 200;
Expand Down Expand Up @@ -112,6 +112,15 @@ public function consultarCnpj(string $cnpj, bool $forceFresh = false): array
]);
}

/** Situação no Simples Nacional e SIMEI (GET /api/consultar-simples-nacional). */
public function consultarSimplesNacional(string $cnpj): array
{
if (trim($cnpj) === '') {
throw new \InvalidArgumentException('Informe o CNPJ.');
}
return $this->get('/api/consultar-simples-nacional', ['cnpj' => trim($cnpj)]);
}

// ----------------------------------------------------------- Certidões

/** CND estadual (ICMS) em uma UF (GET /api/consultar-cnd). */
Expand Down Expand Up @@ -186,6 +195,23 @@ public function consultarNfeXml(string $chave, string $certificado, string $senh
]);
}

/**
* NFS-e (padrão nacional) pela chave de acesso, sem certificado
* (GET /api/consultar-nfse). Com $danfse = true, inclui o PDF do DANFSe em
* base64. Uma consulta nova pode levar de 30 a 60 segundos.
*/
public function consultarNfse(string $chave, bool $danfse = false): array
{
$digitos = preg_replace('/\D/', '', $chave) ?? '';
if ($digitos === '') {
throw new \InvalidArgumentException('Informe a chave de acesso.');
}
return $this->get('/api/consultar-nfse', [
'chave' => $digitos,
'danfse' => $danfse ?: null,
]);
}

// ------------------------------------------------------- Imóvel rural

/** Parcelas certificadas no SIGEF/INCRA (GET /api/consultar-sigef). */
Expand Down
Loading