Build SPED EFD-Contribuições (PIS/Pasep & COFINS, pipe-delimited)
Skill: Convert revenue and credit data into the EFD-Contribuições text file
Region: Brazil (Brasil)
Category: SPED — EFD-Contribuições (PIS/Pasep, COFINS, Contribuição Previdenciária sobre a Receita)
Does: Takes a period's revenue, acquisitions and credit data and produces the SPED EFD-Contribuições pipe-delimited (|) text file, organised into blocos 0, A, C, D, F, I, M, P, 1, 9, computing the PIS/Pasep and COFINS apuração (and, when due, the CPRB), validated and transmitted via the PVA EFD-Contribuições through ReceitaNet.
Standard: EFD-Contribuições — IN RFB (Guia Prático da EFD-Contribuições, leiaute vigente)
The EFD-Contribuições reports the bases and apuração of PIS/Pasep and COFINS (mercadorias in Bloco C, serviços in Bloco A, financial/other receipts in Bloco F), with the consolidated apuração in Bloco M. Each line is a pipe-delimited registro; blocks carry opening/closing/totaliser records. Confirm the active leiaute/Guia Prático and the regime (cumulativo / não-cumulativo) before use.
When this applies
- Pessoas jurídicas de direito privado contribuintes do PIS/Pasep e da COFINS (lucro real, presumido, and immune/isentas with revenue), generally mensal.
- Entities subject to the Contribuição Previdenciária sobre a Receita Bruta (CPRB) report it in Bloco P.
- The file is validated in the PVA, signed with certificado ICP-Brasil and transmitted via ReceitaNet.
Input data required
| Group | Fields |
|---|---|
| Abertura (Bloco 0) | CNPJ, nome, período (DT_INI/DT_FIN), IND_NAT_PJ, IND_ATIV, COD_INC_TRIB (regime de incidência) |
| Cadastros (Bloco 0) | participantes (0150), itens (0200), tabela de CST/natureza de receita |
| Serviços / receitas (Bloco A) | documentos de serviço (A100), itens e PIS/COFINS por CST (A170) |
| Mercadorias (Bloco C) | NF-e (C100), itens e PIS/COFINS (C170), consolidação (C180/C190) |
| Serviços energia/comunicação (Bloco D) | D100/D200 |
| Demais documentos e operações (Bloco F) | receitas financeiras, F100, créditos diversos, F500/F550 (presumido) |
| Apuração (Bloco M) | M100/M105 (créditos PIS), M200/M210 (apuração PIS), M500/M505 (créditos COFINS), M600/M610 (apuração COFINS) |
| CPRB (Bloco P) | P100/P200 (apuração da contribuição previdenciária sobre a receita) |
| Encerramento | Bloco 1 (controles), Bloco 9 (9900/9999) |
File structure (registros, pipe-delimited)
|0000| abertura — CNPJ, período, COD_INC_TRIB (regime), IND_APRO_CRED
|0001|...|0990| Bloco 0 (participantes 0150, itens 0200)
|A001|...|A990| Bloco A — serviços (A100 documento, A170 item com CST/PIS/COFINS)
|C001|...|C990| Bloco C — mercadorias (C100, C170, C180/C181/C185, C190)
|D001|...|D990| Bloco D — serviços de transporte/energia/comunicação
|F001|...|F990| Bloco F — demais documentos e operações (F100, F500/F550)
|M001| abertura do Bloco M (apuração das contribuições)
|M100|/|M105| crédito de PIS/Pasep (CST 50–66) por natureza da base
|M200|/|M210| consolidação e apuração do PIS/Pasep do período
|M500|/|M505| crédito de COFINS
|M600|/|M610| consolidação e apuração da COFINS
|M990| encerramento do Bloco M
|P001|...|P990| Bloco P — CPRB (P100/P200)
|1001|...|1990| Bloco 1 — controles e operações extemporâneas
|9001|9900|9990|9999| Bloco 9 — totais por registro e encerramento
Layout note: decimals use comma ,; rates (alíquotas) and bases follow the field sizes of the Guia Prático; dates ddmmaaaa.
Calculation rules
- Não-cumulativo: PIS 1,65% and COFINS 7,6%; débito = base de receita tributada × alíquota; créditos (M100/M500) apurados sobre insumos, aquisições e despesas com direito a crédito.
- Cumulativo: PIS 0,65% and COFINS 3,0%; no creditamento (Bloco M without M100/M500 credits).
- M200 (PIS):
VL_TOT_CONT_NC_PER− créditos descontados − deduções =VL_TOT_CONT_DEV(valor a recolher); M600 mirrors this for COFINS. - Per-CST mapping: receitas tributadas use CST 01/02/03/…; créditos use CST 50–66; receitas não tributadas use CST 04–09.
- CPRB (P200): base = receita bruta sujeita × alíquota da atividade (per Lei 12.546/2011), reported in Bloco P.
- 9900 lists each registro type with its count; 9999 is the total line count of the file.
Worked example (period header + PIS/COFINS apuração, outline)
|0000|019|0|01052026|31052026|COMERCIO EXEMPLO LTDA|12345678000195|SP|3550308||1||0|
|0001|0|
|0110|1|1|1||
|0150|F001|FORNECEDOR EXEMPLO LTDA|1058|22333444000155|SP|||||
|0990|4|
|C001|0|
|C100|0|0|F001|55|00|1|123|35250612345678000195550010000001231000001236|04052026||2000,00|...|
|C170|1|SKU-001|...|2000,00|...|01|2000,00|1,65|33,00|01|2000,00|7,60|152,00|...|
|C990|3|
|M001|0|
|M200|33,00|0,00|0,00|0,00|33,00|0,00|0,00|0,00|33,00|
|M600|152,00|0,00|0,00|0,00|152,00|0,00|0,00|0,00|152,00|
|M990|3|
|9001|0|
|9900|0000|1|
|9900|M200|1|
|9900|M600|1|
|9900|9999|1|
|9990|...|
|9999|18|
The completed file is loaded into the PVA EFD-Contribuições, validated, signed (ICP-Brasil) and transmitted via ReceitaNet.
Validation checklist
-
|0000|carries the current leiaute version, CNPJ, período andCOD_INC_TRIB(regime cumulativo/não-cumulativo) correct - Participantes (0150) and itens (0200) referenced in A/C/D/F records are cadastrados in Bloco 0
- Receitas mapped to the correct CST and alíquota (1,65%/7,6% não-cumulativo or 0,65%/3,0% cumulativo); créditos only in the não-cumulativo regime
- Bloco M apuração: M200 (PIS) and M600 (COFINS) consolidate the period; valor a recolher reconciles with bases × alíquotas less créditos
- CPRB reported in Bloco P when the activity is subject to the contribuição previdenciária sobre a receita
- Decimals use comma, dates
ddmmaaaa; blocos opened/closed with correct counts - 9900 per-registro counts and 9999 total line count exact; PVA validation passes; signed and transmitted via ReceitaNet
Last updated: 2026-06-04 — confirm the active layout version, field codes, and SEFAZ/Receita Federal requirements against the current specifications before use.