Quatro formas de identificar o comprador
| Elemento FA(3) | Descrição no esquema | Quando se usa |
|---|---|---|
NIP | «Identyfikator podatkowy NIP» (identificador fiscal NIP) | Comprador com NIP polaco. |
KodUE + NrVatUE | «Numer Identyfikacyjny VAT kontrahenta UE» (número de IVA da contraparte na UE) | Comprador com número de IVA de outro país da UE, nos casos previstos na lei do IVA. |
KodKraju + NrID | «Identyfikator podatkowy inny» (outro identificador fiscal) | Outro identificador fiscal, por exemplo de fora da UE. |
BrakID | «Podmiot nie posiada identyfikatora podatkowego lub identyfikator nie występuje na fakturze: 1- tak» (sem identificador fiscal, ou não consta da fatura) | Consumidor ou comprador sem identificador. |
O esquema só verifica o formato do NIP: 10 algarismos segundo o padrão TNrNIP. Não verifica a soma de controlo. Quem a verifica é o KSeF, mas só em produção, para Podmiot1, Podmiot2, Podmiot3 e PodmiotUpowazniony. No ambiente de testes essa validação ativa-se com o cabeçalho X-KSeF-Feature: subject-identifier-validation. A documentação não indica com que código o KSeF rejeita uma soma de controlo errada.

As marcas JST e GV
Ambas são obrigatórias em Podmiot2 e tomam o valor 1 ou 2:
- JST, «Znacznik jednostki podrzędnej JST.» (marca de unidade subordinada de uma autarquia local): 1 quando a fatura diz respeito a uma unidade subordinada de um município ou de outra autarquia local; nesse caso é preciso preencher
Podmiot3com a função 8 e o NIP ou o identificador interno da unidade; - GV, «Znacznik członka grupy VAT.» (marca de membro de um grupo de IVA): 1 quando a fatura diz respeito a um membro de um grupo de IVA; nesse caso
Podmiot3com a função 10; - 2 em qualquer das duas significa que a fatura não lhes diz respeito.
O que escrevem o Odoo 18, 19 e 20
O Odoo escolhe o identificador a partir do número de IVA do cliente. Um NIP polaco vai para NIP. O Odoo só escreve KodUE e NrVatUE em operações especiais, as que levam as etiquetas de imposto OSS_Base, OSS_Tax, Triangular Sale, K_21 ou K_12; qualquer outro número estrangeiro vai para KodKraju e NrID. Um cliente sem número de IVA recebe BrakID 1.
JST e GV, o Odoo escreve-os sempre como 2. Assim, uma fatura para uma unidade subordinada de uma autarquia local, ou para um membro de um grupo de IVA, não pode ser marcada a partir do Odoo como o esquema exige, e não chegará a essa unidade através de Podmiot3.

O que rever antes de enviar
- O número de IVA do cliente: um NIP polaco com ou sem o prefixo PL (sem ele, o Odoo toma o país da ficha do cliente), com a soma de controlo correta.
- Com um cliente da UE: se a fatura deve mesmo levar
KodUEeNrVatUE, ou seja, se as linhas têm o imposto adequado. - Com clientes do setor público: se a fatura deve chegar a uma unidade subordinada; isso o Odoo não o escreve.
O nosso módulo verifica o NIP do comprador?
Em parte. Ao usar «Mark ready for KSeF upload», o Poland KSeF 2.0 Validator calcula a soma de controlo polaca do NIP do cliente e, se não bater certo, indica «Partner NIP invalid» e deixa a fatura em «Manual action required»: não passa para «Ready to upload to KSeF». Aplica a soma de controlo a qualquer número de IVA, também estrangeiro, e um número estrangeiro quase nunca a cumpre, por isso, com um cliente com número de IVA de outro país, a fatura fica aí mesmo que o número esteja correto. A validação do FlexigoTech Cloud verifica o ficheiro contra o esquema, ou seja, o formato, sem a soma de controlo.
Continue a ler
Verificado no código do módulo (versão 20.0) e nas fontes indicadas
Fontes
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/schemy/FA
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/schemy/FA
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/schemy/FA
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/schemy/FA
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/schemy/FA
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/weryfikac
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/api-changelog.md#
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/l10n_pl_edi/data
- github.com/odoo/odoo/blob/4d2d4b5895db70596863df941d9a1f0beeb117f8/addons/l10n_pl_edi/data
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/data
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/l10n_pl_edi/data
- github.com/odoo/odoo/blob/4d2d4b5895db70596863df941d9a1f0beeb117f8/addons/l10n_pl_edi/data
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/data
- Código do módulo: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): models/account_move.py
- Código do módulo: FlexigoTech Cloud, validacion_efactura (motor_xsd.py y reglas.json)
- Código do módulo: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): models/ksef_cloud.py
