# `CorvoNfse.Resources.Certificates`
[🔗](https://github.com/corvo-technology/corvo-nfse-elixir/blob/main/lib/corvo_nfse/resources/certificates.ex#L1)

A1 (`.p12`) certificate management for a company.

    CorvoNfse.Resources.Certificates.upload(client, company_id, {:file, "cert.p12"}, "secret")

# `list_option`

```elixir
@type list_option() :: {:limit, pos_integer()} | {:cursor, String.t()}
```

# `upload_option`

```elixir
@type upload_option() :: {:file_name, String.t()}
```

# `list`

```elixir
@spec list(CorvoNfse.Client.t(), String.t(), [list_option()]) ::
  {:ok, CorvoNfse.Types.Common.page()} | {:error, CorvoNfse.Error.t()}
```

Lists a company's certificates (`GET /v1/companies/:companyId/certificates`).

# `remove`

```elixir
@spec remove(CorvoNfse.Client.t(), String.t(), String.t()) ::
  {:ok, nil} | {:error, CorvoNfse.Error.t()}
```

Deletes a certificate; 204 yields `{:ok, nil}`.

# `upload`

```elixir
@spec upload(
  CorvoNfse.Client.t(),
  String.t(),
  CorvoNfse.Types.Certificate.upload_source(),
  String.t(),
  [upload_option()]
) :: {:ok, map()} | {:error, CorvoNfse.Error.t()}
```

Uploads a certificate as `multipart/form-data` (`POST
/v1/companies/:companyId/certificates`).

The source is `{:file, path}` (read from disk) or `{:binary, bytes}`; for
the latter pass `file_name:` (defaults to `certificate.p12`).

---

*Consult [api-reference.md](api-reference.md) for complete listing*
