Schema COPEL

Campos completos da fatura COPEL, exemplos, enums, mapeamentos e estrutura de pdf_data 2.13.

Nesta página
  1. Contrato da fatura
  2. Exemplo de fatura
  3. Campos da fatura
  4. Valores da fatura
  5. pdf_data
  6. Campos do PDF
  7. Vocabulário do PDF
  8. Mapeamentos
  9. Valores observados
  10. Qualidade e revisão

Contrato da fatura

Esta página descreve cada item de fatura com dist: "COPEL" e schemaVersion: "3.0". Nos trabalhos, leia result.items[]; nas consultas por conexão, leia invoices[].

A fatura COPEL contém identificação, cobrança, situação de pagamento, grupo tarifário e consumo. Os detalhes impressos de leitura, bandeiras, tributos, itens e histórico ficam em pdf_data quando solicitados.

Campos previstos permanecem presentes com null quando o valor não está disponível. Zero é um valor informado. pdf_data usa quando não solicitado e pdf usa null quando não há descritor de download. Todos os exemplos desta página são fictícios.

Exemplo completo de fatura sem PDF

Fatura COPELjson
{
  "schemaVersion": "3.0",
  "dist": "COPEL",
  "consumerUnit": {
    "installationId": "000123456789012",
    "legacyInstallationId": "12345678",
    "contractAccount": "12345678",
    "city": "Curitiba"
  },
  "invoice": {
    "id": "000000000001",
    "billingPeriod": "2026-08",
    "dueDate": "2026-09-15",
    "amount": 120.5,
    "currency": "BRL"
  },
  "payment": {
    "status": "open",
    "paidAt": null,
    "sourceStatus": "AB",
    "sourceCompensation": "A vencer"
  },
  "tariff": {
    "group": "B",
    "sourceGroup": "B"
  },
  "energy": {
    "unit": "kWh",
    "consumed": 150
  },
  "normalization": {
    "status": "normalized",
    "issues": []
  },
  "pdf_data": {},
  "pdf": null,
  "lastUpdated": "2026-09-04T12:00:00-03:00"
}

Todos os campos da fatura

CampoTipoDescrição
schemaVersionstringVersão do recurso: 3.0.
diststringCOPEL.
consumerUnit.installationIdstringIdentificador atual e canônico da UC.
consumerUnit.legacyInstallationIdstring | nullIdentificador anterior quando fornecido.
consumerUnit.contractAccountstring | nullConta contrato quando fornecida.
consumerUnit.citystring | nullMunicípio disponível no resultado da distribuidora.
invoice.idstringIdentificador da fatura; preserva zeros à esquerda.
invoice.billingPeriodstringMês de referência em YYYY-MM.
invoice.dueDatedate | nullVencimento em YYYY-MM-DD.
invoice.amountnumber | nullTotal em unidade monetária principal.
invoice.currencystring | nullBRL quando informada; null quando indisponível.
payment.statusenumpaid, open, overdue ou unknown.
payment.paidAtdate | nullData de pagamento quando informada.
payment.sourceStatusstring | nullCódigo original de status da distribuidora.
payment.sourceCompensationstring | nullRótulo original de compensação ou liquidação.
tariff.groupstring | nullGrupo tarifário normalizado quando disponível.
tariff.sourceGroupstring | nullGrupo como retornado pela distribuidora.
energy.unitstringUnidade dos campos de energia; normalmente kWh.
energy.consumednumber | nullEnergia consumida no período.
normalization.statusenumnormalized ou review_required.
normalization.issues[]arrayAvisos de mapeamento e validação.
normalization.issues[].codestringCódigo estável do aviso.
normalization.issues[].fieldstringCaminho do campo afetado.
normalization.issues[].severitystringNível do aviso, normalmente warning ou error.
normalization.issues[].messagestringExplicação legível do aviso.
pdf_dataobject{} quando não solicitado; schema 2.13 sanitizado quando solicitado.
pdfobject | nullDescritor de download em trabalhos que disponibilizam PDF.
pdf.availablebooleanIndica que o arquivo pode ser baixado.
pdf.fileNamestringNome sugerido para o arquivo.
pdf.contentTypestringapplication/pdf.
pdf.downloadUrlstringRota autenticada e vinculada ao trabalho.
lastUpdateddatetimeÚltima atualização do recurso em ISO 8601 com offset.

Valores da fatura

payment.status: paid (paga), open (em aberto, sem vencimento passado), overdue (vencida) ou unknown (situação não identificada). A data de vencimento participa da situação retornada; um rótulo de origem isolado não substitui status.

payment.sourceStatus conserva o código da COPEL. Os códigos observados são AB, AR e DA. AB aparece em faturas abertas; AR, em pagas. DA não tem equivalência isolada documentada: use status, sourceCompensation e os avisos de normalização.

payment.sourceCompensation apresentou A vencer, Vencida, Paga e Demonstrativa. Uma fatura demonstrativa pode ter total indisponível; isso não equivale a total zero ou a confirmação de pagamento.

tariff.group aceita A, B ou null. tariff.sourceGroup conserva o rótulo informado. Para bandeiras, consulte pdf_data.tariff_flag.

normalization.status aceita normalized e review_required. As severidades dos avisos são warning e error.

pdf_data 2.13

Solicite getPdfData: true em um trabalho de sincronização, invoice_pdf_parse, ou includePdfParse: true em installation_sync. Nas consultas por conexão, use get_pdf_data=true.

O objeto tem os mesmos campos nas duas distribuidoras. As tabelas abaixo descrevem o conteúdo esperado para COPEL. Campos numéricos ausentes usam null; tabelas sem linhas usam []. Um null em campo obrigatório para a interpretação da fatura exige consultar quality.issues.

consumer_unit.installation_id é o identificador impresso no PDF e pode ser atual ou legado. Não existe consumer_unit.legacy_installation_id neste objeto. Os dois identificadores da fatura continuam disponíveis em consumerUnit, fora de pdf_data.

pdf_data COPEL — exemplo fictíciojson
{
  "schema_version": "2.13",
  "consumer_unit": {
    "client_id": null,
    "installation_id": "000123456789012",
    "city": "Curitiba",
    "state": "PR",
    "classification": "residential",
    "tariff_group": "B",
    "tariff_subgroup": "B1",
    "tariff_category": "b1_residential",
    "supply_type": "single_phase",
    "source_labels": {
      "pdf_installation": "000123456789012",
      "classification": "residencial",
      "tariff_category": "B1 Residencial",
      "supply_type": "monofasico",
      "group": "B"
    }
  },
  "billing": {
    "reference_month": "2026-08",
    "due_date": "2026-09-15",
    "total_amount": 120.5,
    "currency": "BRL"
  },
  "reading": {
    "previous_date": "2026-08-01",
    "current_date": "2026-08-31",
    "next_date": "2026-09-30",
    "billed_days": 30,
    "method": "not_reported",
    "source_method": "nao_informada"
  },
  "tariff_flag": {
    "name": "green",
    "total_days": 30,
    "periods": [
      {
        "name": "green",
        "days": 30,
        "additional_unit_price": 0,
        "unit": "BRL/kWh",
        "source_name": "Verde"
      }
    ]
  },
  "meter_readings": [
    {
      "meter_id": "000001",
      "measurement": "consumed_energy",
      "time_slot": "single",
      "unit": "kWh",
      "previous_reading": 1050,
      "current_reading": 1200,
      "multiplier": 1,
      "losses": 0,
      "measured_quantity": 150,
      "source_measurement": "Energia consumida",
      "source_time_slot": "TP"
    }
  ],
  "taxes": [
    {
      "type": "icms",
      "source_name": "ICMS",
      "base_amount": 120.5,
      "rates_percent": [
        12
      ],
      "source_rate": "12",
      "amount": 14.46
    }
  ],
  "line_items": [
    {
      "provider_code": null,
      "type": "energy_consumption",
      "component": "te",
      "tariff_flag": null,
      "effect": "charge",
      "source_description": "Energia eletrica consumo",
      "unit": "kWh",
      "quantity": 150,
      "unit_price_with_taxes": 0.8033333333,
      "amount": 120.5,
      "pis_cofins_amount": null,
      "icms_base_amount": null,
      "icms_rates_percent": [],
      "icms_amount": null,
      "tariff_unit_price": null
    }
  ],
  "history": [
    {
      "metric": "consumption",
      "source_name": "Consumo",
      "unit": "kWh",
      "values": {
        "2026-08": 150
      }
    }
  ],
  "document": {
    "provider": "COPEL",
    "invoice_id": "000000000001",
    "layout": "copel_danf3e_a4_v1"
  },
  "quality": {
    "score": 1,
    "status": "parsed",
    "api_cross_validated": false,
    "issues": []
  }
}

Todos os campos de pdf_data

Os caminhos desta tabela são relativos a pdf_data.

CampoTipoDescrição
schema_versionstringVersão do objeto pdf_data: 2.13.
consumer_unit.client_idstring | nullIdentificador do cliente impresso no documento, quando distinto da UC.
consumer_unit.installation_idstring | nullIdentificador impresso no PDF; pode ser atual ou legado. Compare com os identificadores de consumerUnit.
consumer_unit.citystring | nullMunicípio extraído.
consumer_unit.statestring | nullUF extraída.
consumer_unit.classificationenum | nullClassificação canônica do consumidor.
consumer_unit.tariff_groupstring | nullGrupo tarifário, como A ou B.
consumer_unit.tariff_subgroupstring | nullSubgrupo, como B1 ou B3.
consumer_unit.tariff_categorystring | nullCategoria composta, por exemplo b1_residential.
consumer_unit.supply_typeenum | nullsingle_phase, two_phase ou three_phase.
consumer_unit.source_labelsobjectRótulos originais usados na normalização.
consumer_unit.source_labels.pdf_installationstring | nullInstalação exatamente como lida do PDF.
consumer_unit.source_labels.classificationstring | nullClassificação impressa.
consumer_unit.source_labels.tariff_categorystring | nullCategoria tarifária impressa.
consumer_unit.source_labels.supply_typestring | nullTipo de fornecimento impresso.
consumer_unit.source_labels.groupstring | nullGrupo impresso, como B. Pode conter grupo A em faturas de geração.
billing.reference_monthstring | nullMês de referência em YYYY-MM.
billing.due_datedate | nullVencimento em YYYY-MM-DD.
billing.total_amountnumber | nullTotal da fatura em unidade monetária principal.
billing.currencystringMoeda ISO; atualmente BRL.
reading.previous_datedate | nullData da leitura anterior.
reading.current_datedate | nullData da leitura atual.
reading.next_datedate | nullPróxima leitura prevista.
reading.billed_daysinteger | nullQuantidade de dias faturados.
reading.methodenumactual, estimated, customer_reported ou not_reported. Nos documentos consultados, not_reported; datas e dias podem estar preenchidos.
reading.source_methodstring | nullMétodo como impresso no documento.
tariff_flag.nameenumBandeira consolidada do período.
tariff_flag.total_daysinteger | nullTotal de dias coberto pelas bandeiras.
tariff_flag.periods[]arrayPeríodos de bandeira encontrados no documento.
tariff_flag.periods[].nameenumBandeira canônica daquele trecho.
tariff_flag.periods[].daysinteger | nullDias cobertos pelo trecho.
tariff_flag.periods[].additional_unit_pricenumber | nullAdicional unitário da bandeira.
tariff_flag.periods[].unitstringBRL/kWh.
tariff_flag.periods[].source_namestring | nullNome da bandeira como impresso.
meter_readings[].meter_idstring | nullIdentificador do medidor.
meter_readings[].measurementenumconsumed_energy, injected_energy, reactive_energy, demand ou not_reported.
meter_readings[].time_slotenumsingle, peak, off_peak, intermediate, reserved ou not_reported.
meter_readings[].unitstring | nullUnidade da medição.
meter_readings[].previous_readingnumber | nullLeitura anterior.
meter_readings[].current_readingnumber | nullLeitura atual.
meter_readings[].multipliernumber | nullConstante multiplicadora.
meter_readings[].lossesnumber | nullPerdas aplicadas.
meter_readings[].measured_quantitynumber | nullQuantidade apurada.
meter_readings[].source_measurementstring | nullNome original da grandeza.
meter_readings[].source_time_slotstring | nullNome original do posto horário.
taxes[].typestringTipo canônico, como pis, cofins ou icms.
taxes[].source_namestring | nullNome do tributo no PDF.
taxes[].base_amountnumber | nullBase de cálculo.
taxes[].rates_percentnumber[]Alíquotas em pontos percentuais; 12 significa 12%.
taxes[].source_ratestring | nullAlíquota como impressa.
taxes[].amountnumber | nullValor do tributo.
line_items[].provider_codestring | nullCódigo impresso, quando houver; null nos itens sem código. Consulte type e source_description.
line_items[].typeenumTipo canônico do item faturado.
line_items[].componentenum | nullte, tusd ou null.
line_items[].tariff_flagenum | nullBandeira associada ao item.
line_items[].effectenumcharge, credit ou neutral.
line_items[].source_descriptionstring | nullDescrição original do item.
line_items[].unitstring | nullUnidade física.
line_items[].quantitynumber | nullQuantidade física não negativa.
line_items[].unit_price_with_taxesnumber | nullPreço unitário com tributos.
line_items[].amountnumber | nullValor com sinal contábil; créditos são negativos.
line_items[].pis_cofins_amountnumber | nullParcela de PIS/COFINS.
line_items[].icms_base_amountnumber | nullBase de cálculo do ICMS.
line_items[].icms_rates_percentnumber[]Alíquotas de ICMS em pontos percentuais.
line_items[].icms_amountnumber | nullValor de ICMS.
line_items[].tariff_unit_pricenumber | nullTarifa unitária sem arredondamento indevido.
history[].metricstringMétrica canônica da série.
history[].source_namestring | nullNome original da série.
history[].unitstringkWh ou day.
history[].valuesobjectMapa YYYY-MM para number ou null.
document.providerstring | nullCOPEL.
document.invoice_idstring | nullIdentificador da fatura.
document.layoutstring | nullFamília de layout reconhecida.
quality.scorenumberPontuação de 0 a 1.
quality.statusenumverified, parsed, partial ou invalid.
quality.api_cross_validatedbooleanIndica comparação com metadados da resposta de fatura.
quality.issues[]arrayAvisos e erros encontrados na validação.
quality.issues[].codestringCódigo estável do problema.
quality.issues[].fieldstringCampo afetado.
quality.issues[].severityenumwarning ou error.
quality.issues[].messagestringExplicação legível do problema.

Vocabulário aceito do PDF

Estes são os valores reconhecidos pelo contrato. Nem todos aparecem em toda fatura ou no conjunto de exemplos observado. Campos textuais, como descrições, códigos de origem e nomes de séries, não são enums fechados.

CampoTipoDescrição
consumer_unit.classificationenum | nullcommercial, industrial, own_consumption, public_lighting, public_power, public_service, residential, rural. null quando não identificada.
consumer_unit.supply_typeenum | nullsingle_phase, three_phase, two_phase. null quando não identificado.
consumer_unit.tariff_groupenum | nullA ou B; null quando não identificado.
consumer_unit.tariff_subgroupenum | nullA1, A2, A3, A3A, A4, AS, B1, B2, B3 ou B4; null quando não identificado.
consumer_unit.tariff_categorystring | nullSubgrupo em minúsculas + classificação, como b1_residential ou a4_commercial. null se não houver subgrupo ou classificação.
reading.methodenumactual, customer_reported, estimated, not_reported.
tariff_flag.name / periods[].name / line_items[].tariff_flagenumgreen, mixed, not_reported, red, red_tier_1, red_tier_2, water_scarcity, yellow. No item, null quando não se aplica.
meter_readings[].measurementenumconsumed_energy, injected_energy, reactive_energy, demand ou not_reported.
meter_readings[].time_slotenumintermediate, not_reported, off_peak, peak, reserved, single.
meter_readings[].unitenum | nullkWh, kW ou kvarh conforme a unidade impressa. Energia consumida e injetada usam kWh quando o documento não separa a unidade; outras grandezas sem unidade identificada usam null.
line_items[].unitenum | nullkWh, MWh, kW, kvarh ou unit; null quando não informada ou não reconhecida.
line_items[].typeenumenergy_consumption, injected_energy, energy_adjustment, tariff_flag, municipal_public_lighting, late_payment_penalty, interest, monetary_adjustment, compensation, bonus, refund, demand, reactive_energy, other, balance_adjustment, donation, service_fee.
taxes[].typestringicms, pis e cofins são os nomes conhecidos. Outros tributos podem aparecer com um nome em snake_case; other quando não identificado.
line_items[].componentenum | nullte (energia), tusd (uso do sistema de distribuição) ou null.
line_items[].effectenumcharge para valor positivo; credit para valor negativo; neutral para valor zero ou ausente. Consulte amount e quality antes de concluir que não houve cobrança.
history[].metricstringNome da série em snake_case. Os nomes conhecidos para esta distribuidora estão abaixo; o campo admite outras séries, acompanhadas de source_name.
quality.statusenumverified, parsed, partial ou invalid.
quality.issues[].severityenumwarning ou error.
document.layoutstringcopel_danf3e_a4_v1, copel_generator_danf3e_a4_v1, copel_legacy_nf_conta_energia.

Mapeamentos e significado

Residencial corresponde a residential, comercial a commercial, industrial a industrial e rural a rural. Monofásico, bifásico e trifásico correspondem a single_phase, two_phase e three_phase. Os rótulos impressos ficam em consumer_unit.source_labels.

Verde, amarela, vermelha patamar 1 e vermelha patamar 2 correspondem a green, yellow, red_tier_1 e red_tier_2. Vermelha sem patamar usa red; mixed indica uma combinação de bandeiras. Consulte tariff_flag.periods[] para todos os trechos, mesmo quando o resumo indicar uma única bandeira.

Itens COPEL

Use type para a categoria e source_description para o significado completo do lançamento. Créditos têm amount negativo; quantidades e preços unitários são apresentados em valor absoluto.

DescriçãotypeSignificado
Energia elétrica consumo / uso do sistemaenergy_consumptionte para energia; tusd para uso do sistema.
Energia injetada / energia inj.injected_energyCrédito ou cobrança conforme effect e amount.
Bandeira / B. amarela / B. vermelhatariff_flagA bandeira do item aparece em tariff_flag.
Tribut. dif. out. UCenergy_adjustmentAjuste de energia relativo a outra UC.
Compensação / crédito / DIC mensalcompensationO motivo completo permanece em source_description.
COSIP / iluminação públicamunicipal_public_lightingContribuição de iluminação pública.
Multa / juros / acréscimo moratório ou correçãolate_payment_penalty / interest / monetary_adjustmentEncargos distintos; não agrupe como consumo.
Bônus / devoluçãobonus / refundConsulte effect para o sinal contábil.
Demanda / energia reativademand / reactive_energyGrandezas distintas do consumo ativo; consulte unit.
Valor ref. conta do mês / dev. conta anterior / diferença de saldo negativobalance_adjustmentAjuste de saldo de outra fatura; consulte effect e amount para distinguir crédito e cobrança.
Créd. violação de meta de continuidadecompensationCrédito associado à meta de continuidade.
Dev. corr. monetária ajuste fat.monetary_adjustmentCorreção monetária de ajuste de fatura.
Dev. diferença a maior conta anteriorrefundDevolução de diferença da conta anterior.
Energia reat. exced. TE ponta / fora de pontareactive_energyEnergia reativa excedente; não confundir com consumo ativo.
Taxa visita técnica / serviço de entrega especial de faturaservice_feeCobrança de serviço.
Doação / Fund. Pró-Renal / Erasto Gaertner / Projeto VidadonationDoação identificada no lançamento; descrição original preservada.
Demais descriçõesotherDescrição preservada; revise antes de classificar em sua aplicação.

Descrições FAT.NOVADAS-... e INEXIST.DOCUM.FAT.DESCONSOLIDADA permanecem como other. Consulte a descrição e o valor antes de atribuir uma categoria na sua aplicação.

Nos medidores de geração, a unidade impressa é preservada: Demanda em kW, Energia reativa indutiva em kvarh e, quando assim impresso, Energia reativa excedente em kWh.

No histórico, consumption representa consumo em kWh e billed_days representa dias faturados. Consulte history[].source_name para identificar a série e values para os valores por mês.

Nos medidores, energia consumida usa consumed_energy; energia injetada usa injected_energy. Posto único/TP usa single, ponta/PT usa peak, fora de ponta/FP usa off_peak. ICMS, PIS e COFINS aparecem como icms, pis e cofins; suas alíquotas estão em pontos percentuais.

Valores observados nos documentos

Esta lista ajuda a reconhecer os valores já encontrados para COPEL. Ela complementa o vocabulário aceito acima e não limita novos documentos a essas combinações. Valores ausentes não aparecem na lista.

CampoTipoDescrição
consumer_unit.classificationobservadocommercial, industrial, residential, rural
consumer_unit.tariff_groupobservadoA, B
consumer_unit.tariff_subgroupobservadoA3A, B1, B2, B3
consumer_unit.tariff_categoryobservadoa3a_commercial, a3a_industrial, b1_residential, b2_rural, b3_commercial, b3_industrial
consumer_unit.supply_typeobservadosingle_phase, three_phase, two_phase
reading.methodobservadonot_reported
tariff_flag.nameobservadoyellow
meter_readings[].measurementobservadoconsumed_energy, demand, injected_energy, reactive_energy
meter_readings[].time_slotobservadooff_peak, peak, single
line_items[].typeobservadobalance_adjustment, bonus, compensation, demand, donation, energy_consumption, injected_energy, interest, late_payment_penalty, monetary_adjustment, municipal_public_lighting, other, reactive_energy, refund, service_fee, tariff_flag
history[].metricobservadobilled_days, consumption
document.layoutobservadocopel_danf3e_a4_v1, copel_generator_danf3e_a4_v1
meter_readings[].unitobservadokW, kWh, kvarh
line_items[].componentobservadote, tusd
line_items[].effectobservadocharge, credit
line_items[].unitobservadokW, kWh, unit
taxes[].typeobservadocofins, icms, pis

Qualidade e revisão

quality.status indica verified (dados conferidos com a fatura), parsed (dados estruturados sem comparação com a fatura), partial (dados com avisos de completude) ou invalid (erro de estrutura, total ou divergência). quality.score varia de 0 a 1; consulte os avisos mesmo quando a pontuação for 1.

normalization.issues[] pode indicar unmapped_payment_status, unmapped_tariff_group, unmapped_provider_field, invalid_provider_date, invalid_provider_number ou missing_required_field. Confira o caminho em field e a explicação em message.

Em pdf_data.quality.issues[], unmapped_canonical_value indica um campo sem valor canônico; line_item_total_mismatch indica divergência entre itens e total; códigos api_*_mismatch indicam divergências com a fatura. Um tipo de item other ou uma série nova de histórico também exige que sua aplicação consulte a descrição, mesmo sem aviso de qualidade.

pdf_data não contém nome, CPF/CNPJ, endereço completo, CEP, código de barras nem chave de acesso do documento. O item COPEL também não fornece códigos de pagamento.

Digite para buscar em guias, referências, schemas e erros.