Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Registros de Facturacion y Eventos (XML)
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-11-2025
dbautistadecabo dbautistadecabo is offline
Registrado
 
Registrado: nov 2025
Posts: 3
Poder: 0
dbautistadecabo Va por buen camino
Question Facturas de anticipo

Hola a todos. Les he estado leyendo durante meses. Son probablemente ustedes la mejor fuente para implementar Verifactu.

Bueno, al lío. Estoy intentando meter en Verifactu facturas de anticipo y facturas finales que descuentan esos anticipos. Con las facturas de anticipo no tengo ningún problema, son facturas normales y Verifactu las acepta. El problema viene con las facturas finales que descuentan los anticipos (en el caso de mi empresa, con servicios prepago, el importe de la factura final es siempre menor que el de la factura de anticipo, por lo que la factura final queda a 0).

Mi primera idea para la factura final (con descuento de anticipo) fue usar 2 líneas de DetalleDesglose, una con la base imponible de la factura final y otra con la misma base imponible en negativo. Algo así:

Código:
...
<sum1:Desglose>
  <sum1:DetalleDesglose>
    <sum1:Impuesto>03</sum1:Impuesto>
    <sum1:ClaveRegimen>01</sum1:ClaveRegimen>
    <sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
    <sum1:TipoImpositivo>7</sum1:TipoImpositivo>
    <sum1:BaseImponibleOimporteNoSujeto>20.04</sum1:BaseImponibleOimporteNoSujeto>
    <sum1:CuotaRepercutida>1.40</sum1:CuotaRepercutida>
  </sum1:DetalleDesglose>
  <sum1:DetalleDesglose>
    <sum1:Impuesto>03</sum1:Impuesto>
    <sum1:ClaveRegimen>01</sum1:ClaveRegimen>
    <sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
    <sum1:DescripcionOperacion>Anticipos segun facturas anteriores XXXXX1, XXXXX2</sum1:DescripcionOperacion>
    <sum1:TipoImpositivo>7</sum1:TipoImpositivo>
    <sum1:BaseImponibleOimporteNoSujeto>-20.04</sum1:BaseImponibleOimporteNoSujeto>
    <sum1:CuotaRepercutida>-1.40</sum1:CuotaRepercutida>
  </sum1:DetalleDesglose>
</sum1:Desglose>
<sum1:CuotaTotal>0</sum1:CuotaTotal>
<sum1:ImporteTotal>0</sum1:ImporteTotal>
...

El problema es que Verifactu responde lo siguiente:

Código:
<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="...">
  <env:Body>
    <env:Fault>
      <faultcode>env:Client</faultcode>
      <faultstring>Codigo[4102].El XML no cumple el esquema. Falta informar campo obligatorio.: BaseImponibleOimporteNoSujeto</faultstring>
    </env:Fault>
  </env:Body>
</env:Envelope>

Lo que me hace sospechar que a Verifactu no le gustan las bases imponibles negativas.

¿Cómo hacen ustedes este tipo de operaciones? Mi segunda alternativa es enviar una factura todo a 0 con una descripción:

Código:
<sum1:DescripcionOperacion>Se descuentan anticipos según facturas anteriores XXXXX1, XXXXX2 por el valor de 20.04</sum1:DescripcionOperacion>

pero no sé, me parece feo. ¿Qué opinan?

Gracias por adelantado.
Responder Con Cita
  #2  
Antiguo 07-11-2025
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 862
Poder: 3
bmfranky Va por buen camino
Cita:
Empezado por dbautistadecabo Ver Mensaje
Hola a todos. Les he estado leyendo durante meses. Son probablemente ustedes la mejor fuente para implementar Verifactu.

Bueno, al lío. Estoy intentando meter en Verifactu facturas de anticipo y facturas finales que descuentan esos anticipos. Con las facturas de anticipo no tengo ningún problema, son facturas normales y Verifactu las acepta. El problema viene con las facturas finales que descuentan los anticipos (en el caso de mi empresa, con servicios prepago, el importe de la factura final es siempre menor que el de la factura de anticipo, por lo que la factura final queda a 0).

Mi primera idea para la factura final (con descuento de anticipo) fue usar 2 líneas de DetalleDesglose, una con la base imponible de la factura final y otra con la misma base imponible en negativo. Algo así:

Código:
...
<sum1:Desglose>
  <sum1:DetalleDesglose>
    <sum1:Impuesto>03</sum1:Impuesto>
    <sum1:ClaveRegimen>01</sum1:ClaveRegimen>
    <sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
    <sum1:TipoImpositivo>7</sum1:TipoImpositivo>
    <sum1:BaseImponibleOimporteNoSujeto>20.04</sum1:BaseImponibleOimporteNoSujeto>
    <sum1:CuotaRepercutida>1.40</sum1:CuotaRepercutida>
  </sum1:DetalleDesglose>
  <sum1:DetalleDesglose>
    <sum1:Impuesto>03</sum1:Impuesto>
    <sum1:ClaveRegimen>01</sum1:ClaveRegimen>
    <sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
    <sum1:DescripcionOperacion>Anticipos segun facturas anteriores XXXXX1, XXXXX2</sum1:DescripcionOperacion>
    <sum1:TipoImpositivo>7</sum1:TipoImpositivo>
    <sum1:BaseImponibleOimporteNoSujeto>-20.04</sum1:BaseImponibleOimporteNoSujeto>
    <sum1:CuotaRepercutida>-1.40</sum1:CuotaRepercutida>
  </sum1:DetalleDesglose>
</sum1:Desglose>
<sum1:CuotaTotal>0</sum1:CuotaTotal>
<sum1:ImporteTotal>0</sum1:ImporteTotal>
...
El problema es que Verifactu responde lo siguiente:

Código:
<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="...">
  <env:Body>
    <env:Fault>
      <faultcode>env:Client</faultcode>
      <faultstring>Codigo[4102].El XML no cumple el esquema. Falta informar campo obligatorio.: BaseImponibleOimporteNoSujeto</faultstring>
    </env:Fault>
  </env:Body>
</env:Envelope>
Lo que me hace sospechar que a Verifactu no le gustan las bases imponibles negativas.

¿Cómo hacen ustedes este tipo de operaciones? Mi segunda alternativa es enviar una factura todo a 0 con una descripción:

Código:
<sum1:DescripcionOperacion>Se descuentan anticipos según facturas anteriores XXXXX1, XXXXX2 por el valor de 20.04</sum1:DescripcionOperacion>
pero no sé, me parece feo. ¿Qué opinan?

Gracias por adelantado.
Hola, lo esta enfocando mal, ha de descontar del total el importe de una , a la otra y solo subir el resultado, sea positivo o negativo, para explicarme mejor cuente la factura de anticipo como si fuese un material mas, pero con el importe negativo.
El error lo obtiene por poner 2 lineas con el mismo tipo impositivo, le devuelve ese error pero es por eso.
__________________
Uno se alegra de ser útil. (Isaac Asimov)
Responder Con Cita
  #3  
Antiguo 07-11-2025
dbautistadecabo dbautistadecabo is offline
Registrado
 
Registrado: nov 2025
Posts: 3
Poder: 0
dbautistadecabo Va por buen camino
Cita:
Empezado por bmfranky Ver Mensaje
Hola, lo esta enfocando mal, ha de descontar del total el importe de una , a la otra y solo subir el resultado, sea positivo o negativo, para explicarme mejor cuente la factura de anticipo como si fuese un material mas, pero con el importe negativo.
El error lo obtiene por poner 2 lineas con el mismo tipo impositivo, le devuelve ese error pero es por eso.
O sea, que en una factura de anticipo de 20.04 EUR y en una final de 20.04 EUR (que descuentan esos 20.04 EUR), tendría que hacer:

Factura de anticipo:

Código:
...
<sum1:NumSerieFactura>A00001</sum1:NumSerieFactura>
...
<sum1:Desglose>
  <sum1:DetalleDesglose>
    <sum1:Impuesto>03</sum1:Impuesto>
    <sum1:ClaveRegimen>01</sum1:ClaveRegimen>
    <sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
    <sum1:TipoImpositivo>7</sum1:TipoImpositivo>
    <sum1:BaseImponibleOimporteNoSujeto>20.04</sum1:BaseImponibleOimporteNoSujeto>
    <sum1:CuotaRepercutida>1.40</sum1:CuotaRepercutida>
  </sum1:DetalleDesglose>
<sum1:Desglose>
<sum1:CuotaTotal>1.40</sum1:CuotaTotal>
<sum1:ImporteTotal>20.04</sum1:ImporteTotal>

Factura final (también de 20.04 EUR pero que descuenta los 20.04 EUR de anticipo):

Código:
...
<sum1:NumSerieFactura>N00001</sum1:NumSerieFactura>
...
<sum1:Desglose>
  <sum1:DetalleDesglose>
    <sum1:Impuesto>03</sum1:Impuesto>
    <sum1:ClaveRegimen>01</sum1:ClaveRegimen>
    <sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
    <sum1:DescripcionOperacion>Se descuenta anticipo según factura anterior A00001 por el valor de 20.04</sum1:DescripcionOperacion>
    <sum1:TipoImpositivo>7</sum1:TipoImpositivo>
    <sum1:BaseImponibleOimporteNoSujeto>0.00</sum1:BaseImponibleOimporteNoSujeto>
    <sum1:CuotaRepercutida>0.00</sum1:CuotaRepercutida>
  </sum1:DetalleDesglose>
<sum1:Desglose>
<sum1:CuotaTotal>0</sum1:CuotaTotal>
<sum1:ImporteTotal>0</sum1:ImporteTotal>

¿Es correcto?
Responder Con Cita
  #4  
Antiguo 07-11-2025
jakematespain jakematespain is offline
Miembro
 
Registrado: ene 2025
Posts: 69
Poder: 2
jakematespain Va por buen camino
Hola, viendo el esquema del xml, he realizado una prueba. Hay casos en los que se puede dar que una factura tenga varias claveregimen, por ejemplo algún producto que se tenga que aplicar inversión de sujeto pasivo y otros productos no, en la misma factura. Por lo que hemos estructurado el xml por claveregimen, de forma que si que me admite lo siguiente, este primer ejemplo son dos productos. Estamos aplicando 3 ivas, pero los hemos cada uno separado por su clave regimen, aunque sea la misma. No da ningún error en pruebas, pero no se si es correcto esto. Ya digo que lo hacemos para los casos en que se den diferentes claves dentro de una misma factura.
Gracias.
------
<sum1:NumSerieFactura>N2500156</sum1:NumSerieFactura>
----

<sum1esglose>
<sum1etalleDesglose>
<sum1:ClaveRegimen>01</sum1:ClaveRegimen>
<sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
<sum1:TipoImpositivo>4</sum1:TipoImpositivo>
<sum1:BaseImponibleOimporteNoSujeto>100</sum1:BaseImponibleOimporteNoSujeto>
<sum1:CuotaRepercutida>4</sum1:CuotaRepercutida>
</sum1etalleDesglose>
<sum1etalleDesglose>
<sum1:ClaveRegimen>01</sum1:ClaveRegimen>
<sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
<sum1:TipoImpositivo>10</sum1:TipoImpositivo>
<sum1:BaseImponibleOimporteNoSujeto>100</sum1:BaseImponibleOimporteNoSujeto>
<sum1:CuotaRepercutida>10</sum1:CuotaRepercutida>
</sum1etalleDesglose>
<sum1etalleDesglose>
<sum1:ClaveRegimen>01</sum1:ClaveRegimen>
<sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
<sum1:TipoImpositivo>21</sum1:TipoImpositivo>
<sum1:BaseImponibleOimporteNoSujeto>100</sum1:BaseImponibleOimporteNoSujeto>
<sum1:CuotaRepercutida>21</sum1:CuotaRepercutida>
</sum1etalleDesglose>
</sum1esglose>
<sum1:CuotaTotal>35</sum1:CuotaTotal>
<sum1:ImporteTotal>335</sum1:ImporteTotal>
Responder Con Cita
  #5  
Antiguo 07-11-2025
dbautistadecabo dbautistadecabo is offline
Registrado
 
Registrado: nov 2025
Posts: 3
Poder: 0
dbautistadecabo Va por buen camino
Buen aporte, pero en ese ejemplo tienes diferentes tipos impositivos. En el caso de restar lo que traía una factura de anticipo anterior, son los mismos tipos impositivos. Yo diría que @bmfranky ha dado con la clave del asunto y hay que enviar la factura final quitándole el anticipo en el importe (aunque la factura acabe siendo 0).


A no ser que a alguien se le ocurra algo más elegante.
Responder Con Cita
  #6  
Antiguo 07-11-2025
jakematespain jakematespain is offline
Miembro
 
Registrado: ene 2025
Posts: 69
Poder: 2
jakematespain Va por buen camino
Si, lo que dice el compañero es correcto, mi duda era que al ver el error, he comprobado como lo mandamos nosotros, hicimos una modificación ya que antes sólo permitíamos el envío de facturas que usaban un sola claveregimen, pero a raíz de esa modificación lo estamos enviado de esa forma y no nos da ningún error. Era por si algún compañero veía algo raro.
Gracias
Responder Con Cita
  #7  
Antiguo 07-11-2025
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.759
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por dbautistadecabo Ver Mensaje
Buen aporte, pero en ese ejemplo tienes diferentes tipos impositivos. En el caso de restar lo que traía una factura de anticipo anterior, son los mismos tipos impositivos. Yo diría que @bmfranky ha dado con la clave del asunto y hay que enviar la factura final quitándole el anticipo en el importe (aunque la factura acabe siendo 0).


A no ser que a alguien se le ocurra algo más elegante.

Esa forma es la más correcta, la segunda posibilidad(menos elegante aunque creo qie admisible , una factura de abono justamente anterior y la factura nueva, no sé puede que algún cliente necesite la factura con los importes por temas de contabilidad, pero habria que entregarles ambas.
Responder Con Cita
  #8  
Antiguo 07-11-2025
aleixep aleixep is offline
Miembro
 
Registrado: ene 2025
Posts: 25
Poder: 0
aleixep Va por buen camino
Cita:
Empezado por jakematespain Ver Mensaje
Hola, viendo el esquema del xml, he realizado una prueba. Hay casos en los que se puede dar que una factura tenga varias claveregimen, por ejemplo algún producto que se tenga que aplicar inversión de sujeto pasivo y otros productos no, en la misma factura. Por lo que hemos estructurado el xml por claveregimen, de forma que si que me admite lo siguiente, este primer ejemplo son dos productos. Estamos aplicando 3 ivas, pero los hemos cada uno separado por su clave regimen, aunque sea la misma. No da ningún error en pruebas, pero no se si es correcto esto. Ya digo que lo hacemos para los casos en que se den diferentes claves dentro de una misma factura.
Gracias.
------
<sum1:NumSerieFactura>N2500156</sum1:NumSerieFactura>
----

<sum1esglose>
<sum1etalleDesglose>
<sum1:ClaveRegimen>01</sum1:ClaveRegimen>
<sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
<sum1:TipoImpositivo>4</sum1:TipoImpositivo>
<sum1:BaseImponibleOimporteNoSujeto>100</sum1:BaseImponibleOimporteNoSujeto>
<sum1:CuotaRepercutida>4</sum1:CuotaRepercutida>
</sum1etalleDesglose>
<sum1etalleDesglose>
<sum1:ClaveRegimen>01</sum1:ClaveRegimen>
<sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
<sum1:TipoImpositivo>10</sum1:TipoImpositivo>
<sum1:BaseImponibleOimporteNoSujeto>100</sum1:BaseImponibleOimporteNoSujeto>
<sum1:CuotaRepercutida>10</sum1:CuotaRepercutida>
</sum1etalleDesglose>
<sum1etalleDesglose>
<sum1:ClaveRegimen>01</sum1:ClaveRegimen>
<sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
<sum1:TipoImpositivo>21</sum1:TipoImpositivo>
<sum1:BaseImponibleOimporteNoSujeto>100</sum1:BaseImponibleOimporteNoSujeto>
<sum1:CuotaRepercutida>21</sum1:CuotaRepercutida>
</sum1etalleDesglose>
</sum1esglose>
<sum1:CuotaTotal>35</sum1:CuotaTotal>
<sum1:ImporteTotal>335</sum1:ImporteTotal>
¡Buenas tardes!

Tan solo un apunte, una operación con Inversión del Sujeto Pasivo se identificará mediante CalificacionOperacion (siento CalificacionOperacion=S2 una factura ISP) y no mediante ClaveRegimen.

Seguro que lo tienes controlado, pero solo es por si acaso.

¡Espero que sirva!
Responder Con Cita
  #9  
Antiguo 07-11-2025
jakematespain jakematespain is offline
Miembro
 
Registrado: ene 2025
Posts: 69
Poder: 2
jakematespain Va por buen camino
Si, perdón, con tantas cosas que lleva uno, jejeje. Esta sería una factura con diferentes tipos impositivos y con inversión de sujeto pasivo.
Mi duda es si es correcto informar en cada tipo impositivo de esta forma, en usar dos bloques, uno para el sujeto pasivo (S2) y otra para el normal (S1).
Gracias

------------------
<sum1:NumSerieFactura>N2500138</sum1:NumSerieFactura>
<sum1:FechaExpedicionFactura>04-11-2025</sum1:FechaExpedicionFactura>
------------
<sum1esglose>
<sum1etalleDesglose>
<sum1:ClaveRegimen>01</sum1:ClaveRegimen>
<sum1:CalificacionOperacion>S2</sum1:CalificacionOperacion>
<sum1:TipoImpositivo>0</sum1:TipoImpositivo>
<sum1:BaseImponibleOimporteNoSujeto>100</sum1:BaseImponibleOimporteNoSujeto>
<sum1:CuotaRepercutida>0</sum1:CuotaRepercutida>
</sum1etalleDesglose>

<sum1etalleDesglose>
<sum1:ClaveRegimen>01</sum1:ClaveRegimen>
<sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
<sum1:TipoImpositivo>4</sum1:TipoImpositivo>
<sum1:BaseImponibleOimporteNoSujeto>144.23</sum1:BaseImponibleOimporteNoSujeto>
<sum1:CuotaRepercutida>5.77</sum1:CuotaRepercutida>
</sum1etalleDesglose>

<sum1etalleDesglose>
<sum1:ClaveRegimen>01</sum1:ClaveRegimen>
<sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
<sum1:TipoImpositivo>10</sum1:TipoImpositivo>
<sum1:BaseImponibleOimporteNoSujeto>136.36</sum1:BaseImponibleOimporteNoSujeto>
<sum1:CuotaRepercutida>13.64</sum1:CuotaRepercutida>
</sum1etalleDesglose>

<sum1etalleDesglose>
<sum1:ClaveRegimen>01</sum1:ClaveRegimen>
<sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
<sum1:TipoImpositivo>21</sum1:TipoImpositivo>
<sum1:BaseImponibleOimporteNoSujeto>82.64</sum1:BaseImponibleOimporteNoSujeto>
<sum1:CuotaRepercutida>17.35</sum1:CuotaRepercutida>
</sum1etalleDesglose>

</sum1esglose>
<sum1:CuotaTotal>36.76</sum1:CuotaTotal>
<sum1:ImporteTotal>499.99</sum1:ImporteTotal>
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
QR en facturas RanNav Temas legales 10 09-06-2025 15:58:08
Facturas rectificativas a para anular facturas aceptadas parcialmente victor03 Registros de Facturacion y Eventos (XML) 6 31-05-2025 10:28:27
Anulación facturas fmblas Envío de registros y sus respuestas 0 09-12-2024 11:31:30
Tabla de Facturas vs Detalles de Facturas magnu9 Conexión con bases de datos 9 27-07-2007 17:27:37
Campos calculados, facturas y detalles de facturas. Letty Conexión con bases de datos 7 07-11-2003 11:19:44


La franja horaria es GMT +2. Ahora son las 09:29:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi