El módulo implementa la parte común de la infraestructura necesaria para el uso del CNAB implementando:
- Códigos CNAB - códigos de Instrucción, Retorno, Cartera y Descuento.
- Configuración CNAB - donde se guardarán las informaciones específicas de cada caso como Convenio, Código del Beneficiario, Modalidad, Porcentaje de Multa, códigos de Instrucción del Movimiento de Liquidación de Alteración de Vencimiento y etc.
- Modo de Pago - localiza el módulo account_payment_mode para asociar el Diario Contable referente a la Cuenta Bancaria del CNAB e informar la Configuración del CNAB que será usada, así al informar el Modo de Pago en un Pedido de Venta, Compras o Facturación el programa identifica como siendo un caso CNAB.
- Orden de Pago - localiza el módulo account_payment_order que usa la Orden de Pago, débito o crédito, para registrar las Instrucciones de Movimiento y donde será creado el Archivo CNAB Remessa.
- Registro del LOG de Eventos - al importar un archivo de retorno CNAB.
- Grupos y Permisos de acceso - CNAB Usuario y Gerente.
La implementación fue pensada para permitir que sea posible usar diferentes Bibliotecas para Generar los Boletos, Archivo CNAB de Remessa y tratar el Archivo de Retorno del CNAB por eso es preciso instalar un segundo módulo que va a tener esa función, por lo tanto la idea es que en ese módulo deberá estar todo lo que sea común para la implementación pero el CNAB no irá a funcionar sin ese segundo módulo.
IMPORTANTE: A pesar de que muchas Documentaciones del CNAB acaban diciendo que usan el "Padrón FEBRABAN" en la realidad y a lo largo de los años fue visto que existen muchas divergencias entre los casos incluyendo diferentes Códigos para la misma función o mismo Términos y nomenclaturas que a pesar de ser semejantes pueden acabar confundiendo al usuario, por eso esa falta de padrón fue considerada en la implementación y en la arquitectura del módulo y también precisa ser considerada en mantenimientos, mejoras o en el uso de otras Bibliotecas, es preciso separar lo que es realmente común de lo que puede variar entre los Bancos y CNAB, en ese sentido fueron incluidos en los Datos de Demostración más de un caso para quedar claro a los desarrolladores esas particularidades y evitar una arquitectura que desconsidere ese aspecto.
Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.
auto_awesome Qué hace este módulo
Generado por IA a partir del código · Odoo 18.0Añade soporte para archivos bancarios CNAB brasileños a las órdenes de pago y las facturas de cliente, permitiendo a los usuarios configurar convenciones bancarias, generar archivos de pago CNAB y boletos, y hacer seguimiento de los eventos de retorno bancario.
Este módulo conecta las órdenes de pago y las facturas de Odoo con el estándar brasileño de archivos bancarios CNAB utilizado por bancos como Banco do Brasil, Bradesco, Itaú, Santander, Caixa, Sicredi, Unicred, Ailos y Banco do Nordeste (sus códigos de instrucción, cartera, descuento, protesto y tarifas están precargados).
- En un modo de pago puedes adjuntar una configuración CNAB, elegir el dominio de pago (efectivo, cheque, PIX, TED, DOC, boleto) y marcar 'Añadir automáticamente al validar la factura' para que se cree una orden de pago cuando se publique una factura.
- En una orden de pago obtienes campos CNAB (tipo de servicio, forma de liberación, indicación de pago, código de convenio, número secuencial de archivo) y un archivo CNAB generado con un nombre de archivo automático por banco.
- En las facturas de cliente, al publicar una factura de entrada CNAB se rellena cada línea de vencimiento con nuestro número, número de documento, identificación del título de la compañía e instrucciones; un botón abre el PDF del boleto.
- Las líneas de pago llevan código de barras, línea digitável, interés, descuento, rebaja, tarifa, códigos de finalidad TED/PIX y clave Pix; las transferencias PIX se comprueban para una clave o tipo de cuenta.
- Los archivos de retorno bancario se almacenan como registros de retorno con lotes y eventos, y la conciliación puede crear un pago fuera de CNAB.
Reglas de negocio: los métodos de pago CNAB no se pueden usar para pagos directos, las órdenes CNAB no se pueden eliminar ni cancelar, los modos de pago con líneas agrupadas se rechazan para CNAB y los estados CNAB no pueden retroceder.
Lo necesitan otros módulos
Menús que añade
Modelos y campos (21)
- res.company · amplía un modelo existente
- account.move · amplía un modelo existenteis_cnab (Is CNAB?), instructions (Instruções de cobrança), cnab_config_id, cnab_return_log_id (CNAB Return Log), file_boleto_pdf_id (Boleto PDF), payment_method_code, eval_payment_mode_instructions (Instruções de Cobrança do Modo de Pagamento)
- account.journal · amplía un modelo existentebank_code_bc
- account.payment · amplía un modelo existente
- account.move.line · modelo nuevocnab_state (Estados CNAB), own_number (Nosso Numero), instructions (Instruções de cobrança), cnab_config_id, document_number (Número documento), payment_mode_id (Modo de Pagamento), payment_method_id (Payment Method), payment_situation (Situação do Pagamento), last_change_reason (Justificativa), payment_method_code (Payment Method Code), boleto_discount_perc (Desconto de pontualidade), cnab_return_line_ids (Retornos CNAB), journal_payment_mode_id, instruction_move_code_id (Código da Instrução para Movimento), own_number_without_zfill, company_title_identification (Identificação Titulo Empresa)
- l10n_br_cnab.code · modelo nuevocode, name, comment, bank_ids (Banks), code_type, payment_method_ids (Payment Methods)
- l10n_br_cnab.config · modelo nuevoname, bank_id, comment, company_id (Company), bank_code_bc, payment_type, release_form (Forma Lançamento), service_type (Tipo de Serviço), cnab_processor, cnab_sequence_id (Sequencia do Arquivo CNAB), payment_method_id, payment_method_code, liq_return_move_code_ids (CNAB Liquidity Return Move Code)
- account.payment.line · amplía un modelo existentebarcode, move_id (Fatura), fee_value (Valor da Multa), own_number (Nosso Numero), move_line_id, rebate_value (Valor do Abatimento), service_type (Tipo de Serviço), movement_type (Tipo de Movimento), digitable_line (Linha Digitável), discount_value (Valor do Desconto), interest_value (Valor da Mora), partner_pix_id (Pix Key), amount_interest (Valor Juros), document_number (Número documento), favored_warning (Aviso ao Favorecido), payment_mode_id, ml_maturity_date, percent_interest (Percentual de Juros), doc_finality_code (Complemento do Tipo de Serviço), payment_method_id (Payment Method), pix_transfer_type, ted_finality_code (Código Finalidade da TED), communication_type, payment_method_code (Payment Method Code), payment_mode_domain, instruction_move_code_id (Código da Instrução para Movimento), complementary_finality_code (Código de finalidade complementar), company_title_identification (Identificação Titulo Empresa)
- account.payment.mode · modelo nuevobank_id, bank_code_bc, cnab_config_id (CNAB Config), cnab_processor, payment_mode_domain, auto_create_payment_order (Adicionar automaticamente ao validar a fatura)
- account.payment.order · amplía un modelo existentecnab_file (CNAB File), file_number (Número sequencial do arquivo), release_form (Forma Lançamento), service_type (Tipo de Serviço), cnab_filename (CNAB Filename), cnab_config_id, convention_code, payment_method_code (Payment Method Code), cnab_company_bank_code, indicative_form_payment (Indicativo de Forma de Pagamento)
- account.payment.method · amplía un modelo existente
- l10n_br_cnab.return.log · modelo nuevoname, filename (Nome do Arquivo), move_ids (Journal Entries), event_ids (Eventos), is_cnab_lot (Is CNAB Lot?), number_lots (Número de Lotes), number_events (Número de Eventos), cnab_date_file (CNAB Date File), bank_account_id (Conta cedente), sequential_file (Sequencial do Arquivo), cnab_date_import (CNAB Date Import), amount_total_title (Valor Total Títulos), amount_total_rebate (Valor Total de Abatimentos), amount_total_discount (Valor Total de Descontos), amount_total_received (Valor Total Recebido), amount_total_interest_fee (Valor Total de Juros Mora/Multa), amount_total_tariff_charge (Valor Total de Tarifas)
- l10n_br_cnab.return.lot · modelo nuevomessage (Mensagem), total_value (Valor Total), register_qty (Quantidade de Registros), service_type (Tipo do Serviço), lot_event_ids (Eventos), account_bank_id (Conta Bancária), operation_service (Tipo de Operação), company_registration_type (Tipo de Inscrição), company_registration_number (Número de Inscrição)
- account.partial.reconcile · amplía un modelo existentealready_send_cnab (Already send CNAB)
- l10n_br_cnab.return.event · modelo nuevolot_id (Lote), segment (Segmento), due_date (Data de Vencimento), iof_value (Valor do IOF), favored_id (Favorecido), invoice_id (Fatura), own_number (Nosso Número), partner_id (Associado), is_cnab_lot (Is CNAB Lot?), occurrences (Ocorrências), str_motiv_a (Motivo da ocorrência 01), str_motiv_b (Motivo de ocorrência 02), str_motiv_c (Motivo de ocorrência 03), str_motiv_d (Motivo de ocorrência 04), str_motiv_e (Motivo de ocorrência 05), title_value (Valor da Linha), your_number (Seu Número), move_line_id (Journal Item), rebate_value (Valor do Abatimento), currency_type (Tipo de Moeda), other_credits (Outros Créditos), payment_value (Valor do Pagamento), tariff_charge (Tarifa), discount_value (Valor do Desconto), occurrence_date (Data da Ocorrência), payment_line_ids (Payment lines), real_payment_date (Data do Crédito), cnab_return_log_id (CNAB Return Log), interest_fee_value (Juros de Mora/Multa), favored_bank_account_id (Conta Bancária)
- l10n_br_cnab.boleto.fields · modelo nuevoboleto_post (Posto da Cooperativa de Crédito), instructions (Instruções de cobrança), boleto_accept (Aceite), boleto_wallet (Carteira), invoice_print (Gerar relatorio na conclusão da fatura?), boleto_species (Espécie do Título), wallet_code_id (Boleto Wallet Code), boleto_byte_idt (Byte IDT), boleto_fee_perc (Percentual de Multa), boleto_modality (Modalidade), communication_2 (Comunicação para o sacador avalista), convention_code (Código do Convênio), sending_code_id (Sending Movement Instruction Code), boleto_variation (Variação), rebate_account_id (Conta Contabil de Abatimento), write_off_code_id (Write Off Movement Instruction Code), boleto_fee_code_id (Fee Code), boleto_days_protest (Número de Dias para Protesto), discount_account_id (Conta Contabil de Desconto), generate_own_number (Gerar nosso número?), boleto_discount_perc (Percentual de Desconto até a Data de Vencimento), boleto_interest_perc (Percentual de Juros de Mora), grant_rebate_code_id (Grant Rebate Instruction Code), cancel_rebate_code_id (Cancel Rebate Instruction Code), protest_title_code_id (Protest Title Instruction Code), boleto_protest_code_id (Protest Code), cnab_company_bank_code (Código da Empresa no Banco), grant_discount_code_id (Grant Discount Instruction Code), not_payment_account_id (Conta Contabil para Não Pagamento/Inadimplência), own_number_sequence_id (Sequência do Nosso Número)
- l10n_br_cnab.data.abstract · modelo nuevocode, name
- account.payment.line.create · amplía un modelo existenteallow_error (Permitir linhas com erro na exportação, já incluidas em outras ordens), allow_rejected (Permitir linhas com retorno rejeitado)
- l10n_br_cnab.change.methods · modelo nuevo
- l10n_br_cnab.payment.fields · modelo nuevofavored_warning (Aviso ao Favorecido), doc_finality_code (Complemento do Tipo de Serviço), ted_finality_code (Código Finalidade da TED), complementary_finality_code (Código de finalidade complementar)
- account.move.line.cnab.change · modelo nuevodate, reason (Justificativa), change_type (Tipo Alteração), rebate_value (Valor de Abatimento), discount_value (Valor de Desconto), payment_mode_id, account_move_line_ids (Move Line)
Texto generado por IA (DeepSeek) al leer el código de la versión 18.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. El módulo es muy grande y solo se ha leído una parte del código. Ver el código en GitHub
Disponibilidad por versión
Revisado: 2026-11-03Estado de confirmación: 7 confirmadas, 2 sin información de 9 versiones.
Fuentes · Odoo 18.0
Confirmado el 2026-11-03 en la rama 18.0 de OCA/l10n-brazil.
terminal Instalación y uso
Documentación de OCA · Odoo 18.0Instalación
Fuente · Odoo 18.0Este módulo depende de:
- l10n_br_base
- account_payment_order
- account_due_list
- account_cancel
Configuración
Fuente · Odoo 18.0Verifique si los Códigos CNAB del Banco y de la versión 240 o 400 que se usarán principalmente los de Instrucción y de Retorno del Movimiento del CNAB existen o si será necesario crearlos en:
Faturamento > Configuración > Administración > Códigos CNAB
En caso de que sea necesario crearlos, por favor considere hacer un PR en ese módulo añadiendo los Códigos en l10n_br_account_payment_order/data/cnab_codes/banco_X_cnab_Y_Z.xml de esa forma en las próximas implementaciones ya no será necesario registrarlos, esto ayuda en la construcción de un banco de conocimiento, ahorrando tanto horas de implementación por no ser necesario revisar o rehacer lo que fue hecho como poder usar lo que otros hicieron, esto también es importante porque permite probar y evaluar las diferencias entre cada caso haciendo la implementación más robusta, hoy lo que tenemos son:
| Banco | CNAB | Instrucción | Retorno | |-----------|---------|-----------|---------| | AILOS | 240 | X | X | | Bradesco | 240/400 | X | X | | Brasil | 240/400 | X | X | | CEF | 240 | X | X | | Itaú | 240/400 | X | X | | Santander | 240/400 | X | X | | Sicred | 240 | X | X | | Unicred | 240/400 | X | X |
Cree una Configuración CNAB, es donde se almacenará la información específica de cada caso como la Cartera, Convenio, Código del Beneficiario, Códigos de Instrucción y Retorno del Movimiento, etc en:
Faturamento > Configuración > Administración > Configuraciones del CNAB
Verifique si la Cuenta Bancaria referente al CNAB ya fue registrada en:
Configuraciones > Usuarios y Empresas > Empresas
Haga clic en el Contacto asociado y en la pestaña Faturamento vea Cuentas Bancarias si no existe vea de crear informando los datos Número de la Cuenta, Agencia, etc.
Al registrar una Cuenta Bancaria debe ser creado automáticamente un Diario Contable, o si ya había sido registrada el Diario ya debe existir, verifique en:
Faturamento > Configuraciones > Financiero > Diarios
Verifique si las informaciones están correctas, el campo Tipo debe estar como Banco, en la pestaña Asientos del Diario en Número de la Cuenta Bancaria debe estar completado con la Cuenta Bancaria y en la pestaña Configuración de Pagos los Métodos que serán usados, 240 o 400, deben estar marcados.
Cree un Modo de Pago o use uno existente en:
Faturamento > Configuración > Administración > Modos de Pago
Informe el Diario Contable referente al Banco y la Configuración CNAB que deberá ser utilizada.
A partir de eso siempre que sea informado el Modo de Pago tanto en un Pedido de Ventas o en la Factura el programa pasa a identificar como un caso CNAB, en casos donde un cliente va a usar siempre el mismo Modo de Pago también es posible dejar eso como predeterminado en el Registro de Cliente así la información es cargada automáticamente al informar ese Cliente en un nuevo Pedido de Venta o Factura.
Verifique los permisos de acceso de los usuarios que van a utilizar el CNAB, existe el Usuario y el Gerente CNAB.
IMPORTANTE: Como el CNAB involucra dinero y la caja de la empresa la seguridad y la trazabilidad son fundamentales y como las configuraciones específicas de cada CNAB están en la Configuración CNAB/l10n_br_cnab.config fue incluido en él el objeto mail.thread que registra alteraciones hechas en campos importantes, sin embargo campos many2many no están siendo registrados por el track_visibility (ver detalles aquí l10n_br_account_payment_order/models/l10n_br_cnab_config.py#L75), y un campo específico e importante que almacena los Códigos de Retorno del CNAB que deben generar Baja/Liquidación es de ese tipo, por lo tanto las alteraciones referentes a ese campo no están siendo registradas. En el repositorio https://github.com/OCA/social/tree/16.0 de la OCA existe un módulo para corregir eso el mail_improved_tracking_value, por eso considere y es RECOMENDADO incluir ese módulo en la implementación para corregir ese problema. La inclusión de la dependencia de ese módulo aquí está pendiente de aprobación.
Al crear una Factura Documento Fiscal/account.move que tiene un Modo de Pago con una Configuración CNAB definida y si el campo auto_create_payment_order está marcado, las líneas referentes a las Cuotas se crearán automáticamente en una nueva Orden de Pago, débito o crédito, o se añadirán a una ya existente que esté en estado Borrador, también es posible incluir manualmente, la generación del Boleto, Archivo de Envío y el tratamiento del Archivo de Retorno dependen de la instalación de un segundo módulo donde se define la biblioteca a utilizar.
Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen.
Las instrucciones de instalación, el paquete de distribución, las dependencias y los pasos de configuración no se muestran porque todavía no se han verificado en la documentación del módulo para ninguna versión.
Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.