VIVT3 CVM Filings — Documents and API Access

VIVT3 is the ON ticker for Telefônica Brasil S.A. (Vivo). Pull VIVT3 CVM filings through apicvm: resolve, list DFP/ITR/FRE, download PDFs, or extract page-level text. Preferred shares trade as VIVT4 under the same CNPJ.

Company overview

Field Value
Name Telefônica Brasil S.A.
Tickers VIVT3 (ON), VIVT4 (PN)
CNPJ 02558157000162
Sector Telecommunications
Regulator CVM

Confirm live metadata with resolve — tickers and registration fields can change.

Document types available

Type Description
DFP Annual standardized financial statements
ITR Quarterly financial information
FRE Formulário de Referência

Corpus coverage varies by year. Query the API for the current inventory instead of assuming portal parity.

Resolve VIVT3

export APICVM_KEY='apicvm_...'
export APICVM_URL='https://apicvm.dev'

curl -H "Authorization: Bearer $APICVM_KEY" \
  "$APICVM_URL/v1/companies/resolve?query=VIVT3&by=ticker"

List VIVT3 DFP filings (2024)

curl -H "Authorization: Bearer $APICVM_KEY" \
  "$APICVM_URL/v1/documents?ticker=VIVT3&type=DFP&year=2024&perPage=20"

Python: FRE sections mentioning risk

import os, requests

BASE = os.environ["APICVM_URL"]
H = {"Authorization": f"Bearer {os.environ['APICVM_KEY']}"}

docs = requests.get(
    f"{BASE}/v1/documents",
    headers=H,
    params={"ticker": "VIVT3", "type": "FRE", "year": 2024, "name": "Risco", "perPage": 20},
).json()

for d in docs["data"]:
    print(d["id"], d["name"])

Download a filing

curl -OJ -H "Authorization: Bearer $APICVM_KEY" \
  "$APICVM_URL/v1/documents/<document-id>/file"

Inventory check

for type in DFP ITR FRE; do
  echo "== $type =="
  curl -sS -H "Authorization: Bearer $APICVM_KEY" \
    "$APICVM_URL/v1/documents?ticker=VIVT3&type=$type&year=2024&perPage=50" \
    | python3 -c "import sys,json; print(len(json.load(sys.stdin).get('data') or []))"
done

Use the live count in your own docs — do not hard-code snapshot tables that go stale.

Current limitations

  • Results reflect the ingested corpus, not a live CVM portal scrape.
  • Prefer resolve before hard-coding CNPJ in production jobs.
  • Extraction is async and credit-based on Pro.

Next steps

Ready to integrate?

Get an API key and start querying Brazilian CVM filings programmatically.