No puedo validar Monotributo ni consumidor final

54 views
Skip to first unread message

Pablo Chirico

unread,
Aug 6, 2025, 3:54:38 PMAug 6
to Factura electronica y otros servicios Argentina WSAFIPFE
Buenas tardes. Tengo una clase desarrollada en VFP 9 y me funciona correctamente para los Resp. Inscriptos. Quisiera saber qué estoy haciendo mal porque no me valida MT ni CF.
Ni siquiera hace el envío de los MT o CF. con lo que supongo que está mal armada la estructura de datos que estoy a punto de enviar. Ya probé modificando todo lo posible y no se me ocurre nada más. Estoy trabajando con la versión 100.82

Este es el método que arma un cursor de parámetros :

Local llRetVal,ldFecha,lcCuit,lcLetra,lnCod,lnIdFac

llRetVal = .t.
ldFecha = {//}
lcCuit = ""
lcLetra = ""
lnCod = 0
lnIdFac = 0

Create Cursor curParam(;
Letra c(1),;
Fecha c(8),;
PtoVta i,;
CbteTipo i,;
DocTipo i,;
DocNro c(11),;
ImpTotal n(12,2),;
ImpNeto n(12,2),;
ImpIva n(12,2),;
OpcIva n(1),;
IvaBase21 n(12,2),;
IvaImp21 n(12,2),;
IvaId21 n(1),;
IvaBase105 n(12,2),;
IvaImp105 n(12,2),;
IvaId105 n(1))

If Used("curFacElec")
lnCod = curFacElec.Codigo
lnIdFac = curFacElec.IdFac

If !Seek(lnCod,"Clientes","Codigo")
Messagebox("No se ha encontrado el Cliente",16,"")
llRetVal = .f.
Return llRetVal
Else
Select Clientes
Endif
If !Seek(lnIdFac,"FacElec","IdFac")
Messagebox("No se ha encontrado la Factura",16,"")
llRetVal = .f.
Return llRetVal
Else
Select FacElec
Endif
Endif

With This
.IdComprobante = lnIdFac
.Comprobante = comprobantes.Corto
.Es_Credito = comprobantes.Escredito
If .Es_Credito  then
Create Cursor curParamCreDeb(;
CbteTipo i,;
PtoVta i,;
Numero i,;
DocNro c(11),;
Fecha c(8))
Append Blank
Endif

Endwith

ldFecha = Date()
lcCuit = FacElec.Cuit
lcCuit = Strtran(lcCuit,"-","")
lcCuit = Strtran(lcCuit,"/","")
lcCuit = Strtran(lcCuit," ","")
lcLetra = Substr(FacElec.Documento,5,1)

If lcLetra = "A"
lnImpNeto = (FacElec.Negra21 + FacElec.Negra105)
lnImpIva = (FacElec.Iva_Inscri + FacElec.Iva_No_Ins)
lnIvaBase21 = FacElec.Negra21
lnIvaImp21 = FacElec.Iva_Inscri
lnIvaBase105 = FacElec.Negra105
lnIvaImp105 = FacElec.Iva_No_Ins

Else
lnImpNeto = FacElec.Totales
lnImpIva = 0
lnIvaBase21 = 0
lnIvaImp21 = 0
lnIvaBase105 = 0
lnIvaImp105 = 0

Endif

Select curParam
Append Blank
Replace Fecha With Transform(Year(ldFecha),"@L ####")+Transform(Month(ldFecha),"@L ##")+Transform(Day(ldFecha),"@L ##"),;
PtoVta With FacElec.Puntov,;
CbteTipo With FacElec.Ndoc,;
Letra With lcLetra,;
DocTipo With Iif(lcLetra = "A",80,Iif(lcLetra = "B" And Len(Alltrim(lcCuit))=11,80,96)),;
DocNro with lcCuit,;
ImpTotal with FacElec.Totales,;
ImpNeto with lnImpNeto,;
ImpIva with lnImpIva,;
OpcIva with FacElec.OpcionIva,;
IvaBase21 with lnIvaBase21,;
IvaImp21 with lnIvaImp21,;
IvaId21 with Iif(lcLetra = "A",5,0),;
IvaBase105 with lnIvaBase105,;
IvaImp105 with lnIvaImp105,;
IvaId105 with Iif(lcLetra = "A",4,0)

Return llRetVal

Y este es el método con el que tomo los datos desde wsafipfe
Local lResultado,lcTexto,llOk,lcQRArchivo,lcError

lResultado = .f.

With thisform
.FE.Tls = 12

Wait Clear
Wait Window "Procesando Solicitud CAE..." Nowait Noclear

lnNum = .Fe.F1CompUltimoAutorizado(curParam.PtoVta,curParam.CbteTipo) + 1
this.Numero = lnNum

lcQRArchivo = LugarFE+"\QR\QR_"+This.Comprobante+"_"+Alltrim(Str(lnNum))+".jpg"
 
.Fe.F1CabeceraCantReg = 1
.Fe.F1CabeceraPtoVta = curParam.PtoVta
.Fe.F1CabeceraCbteTipo = curParam.CbteTipo

.Fe.f1Indice = 0
.Fe.F1DetalleConcepto = 1
.Fe.F1DetalleDocTipo = curParam.DocTipo &&--- CUIT 80 / DNI 86
.Fe.F1DetalleDocNro = Iif(!Empty(curParam.DocNro),curParam.DocNro,"00000000000")
.Fe.F1DetalleCondicionIvaReceptor = Iif(clientes.Iva== 'R I',1,Iif(clientes.Iva== 'M T',5,4))

.Fe.F1DetalleCbteDesde = lnNum
.Fe.F1DetalleCbteHasta = lnNum
.Fe.F1DetalleCbteFch = curParam.Fecha
.Fe.F1DetalleImpTotal = curParam.ImpTotal &&--- Ejemplo 181.50
.Fe.F1DetalleImpTotalConc = 0
.Fe.F1DetalleImpNeto = curParam.ImpNeto &&--- Ejemplo 150
.Fe.F1DetalleImpOpEx = 0 && ANTES curParam.Nograva
.Fe.F1DetalleImpTrib = 0
.Fe.F1DetalleImpIva = curParam.ImpIva &&--- Ejemplo 31.50
.Fe.F1DetalleFchServDesde = "" &&Deben informarse si concepto = 2 o 3
.Fe.F1DetalleFchServHasta = ""
.Fe.F1DetalleFchVtoPago = ""

.Fe.F1DetalleMonId = "PES"
.Fe.F1DetalleMonCotiz = 1
.Fe.F1DetalleCanMisMonExt = "N"
.Fe.F1DetalleMonCotiz = 1  
.fe.F1DetalleIvaItemCantidad = 1   &&--- Si tiene Iva 10.5 = 2 - si no = 1 1

If curParam.Letra = "A"
If curParam.OpcIva = 1
.fe.f1IndiceItem = 0
.fe.F1DetalleIvaId = curParam.IvaId21 &&--- Por Tabla es 5
.fe.F1DetalleIvaBaseImp = curParam.IvaBase21 &&--- 150
.fe.F1DetalleIvaImporte = curParam.IvaImp21 &&--- 31.50
Else
.fe.f1IndiceItem = 1
.fe.F1DetalleIvaId = curParam.IvaId105
.fe.F1DetalleIvaBaseImp = curParam.IvaBase105
.fe.F1DetalleIvaImporte = curParam.IvaImp105
Endif
 Else
  .fe.f1IndiceItem = 0
.fe.F1DetalleIvaId = 3
.fe.F1DetalleIvaBaseImp = curParam.ImpTotal &&--- 150
.fe.F1DetalleIvaImporte = 0 &&--- 31.50
Endif

 
If This.Es_Credito
=Seek(FacElec.IdFac,"Referencia","IdFac")
.Fe.F1DetalleCbtesAsocItemCantidad = 1
.Fe.f1IndiceItem = 0
.Fe.F1DetalleCbtesAsocTipo = Referencia.CbteTipo
.Fe.F1DetalleCbtesAsocPtoVta = Referencia.PtoVta
.Fe.F1DetalleCbtesAsocNroS = Referencia.Numero
.Fe.F1DetalleCbtesAsocCUIT = Referencia.DocNro
.Fe.f1DetalleCbtesAsocFecha = Referencia.cFecha
Endif

.Fe.F1DetalleCbtesAsocItemCantidad = 0
.Fe.F1DetalleOpcionalItemCantidad = 0
.Fe.ArchivoXMLRecibido = LugarFE+"\recibido.xml"
.Fe.ArchivoXMLEnviado = LugarFE+"\enviado.xml"

&&--- Agregado para QR

.Fe.F1DetalleQRArchivo = lcQRArchivo
.Fe.f1detalleqrtolerancia = 1
.Fe.f1detalleqrresolucion = 4
.Fe.f1detalleqrformato = 6
&&---
 
lResultado = .Fe.F1CAESolicitar()

Wait Clear

If lResultado Then...

Pero en caso de CF y MT lResultado siempre es = .f.
Me podrán dar una mano con este tema?
Muchas gracias de antemano.

Saludos
PabloCh



Pablo Chirico

unread,
Aug 11, 2025, 10:25:17 AMAug 11
to Factura electronica y otros servicios Argentina WSAFIPFE
Buenos días. Veo que nadie ha respondido a mi solicitud, y puede que sea porque no se entiende el código que compartí.
Necesito por favor, si alguno de ustedes tiene un ejemplo en VFP 9 o VB .Net en el que me indique cuáles son los datos de Importe, base imponible, tipo de IVA, importes de iva, etc. que debo enviarle a la biblioteca WSAFIPFE en el caso de facturarle a un Monotributista o Consumidor final en Argentina.

Diego A. Montero

unread,
Aug 11, 2025, 10:51:42 AMAug 11
to Pablo Chirico, Factura electronica y otros servicios Argentina WSAFIPFE
Hola desde la versión 100.82 en adelante al Monotrbutista tratalo "=" que a un Inscripto.

Cambiando solo el tipo de IVA, obviamente.

    Slds



De: factura-electronica-y-otros-...@googlegroups.com <factura-electronica-y-otros-...@googlegroups.com> en nombre de Pablo Chirico <pabloc...@gmail.com>
Enviado: lunes, 11 de agosto de 2025 7:25
Para: Factura electronica y otros servicios Argentina WSAFIPFE <factura-electronica-y-otros-...@googlegroups.com>
Asunto: [WSAFIPFE] Re: No puedo validar Monotributo ni consumidor final
 
--
Has recibido este mensaje porque estás suscrito al grupo "Factura electronica y otros servicios Argentina WSAFIPFE" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a factura-electronica-y-otros-servic...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/factura-electronica-y-otros-servicios-argentina-wsafipfe/3c706300-aded-4282-a28c-d775f5c1240dn%40googlegroups.com.

Eduardo Bzura

unread,
Aug 11, 2025, 11:35:19 AMAug 11
to Diego A. Montero, Pablo Chirico, Factura electronica y otros servicios Argentina WSAFIPFE
Buen dia grupo.
Pablo, a veces si envias un correo demasiado largo, al menos yo, trato de obviarlo.
No olvides que todos tenemos mucho trabajo. Sugiero hacer las consultas breves y concretas.
Lo que te comento, es que los responsables inscriptos y monotributistas, deben tratarse de la misma manera,
salvo la mencion de su condicion ante el iva. Pero lo relacionado al tipo de comprobante y los importes, son iguales.



Libre de virus.www.avast.com

GONZALO HARREGUY

unread,
Aug 11, 2025, 2:49:00 PMAug 11
to factura-electronica-y-otros-...@googlegroups.com

Hola Pablo

Tenes que declarar siempre el neto , iva , impuestos , no importa cual es la condicion de iva del cliente

Esto que pones NO VA!! , siempre se envia el neto , iva , etc.  Y no te olvides que a los monotributistas se los trata como a los inscriptos, exactamente igual.


If lcLetra = "A"
lnImpNeto = (FacElec.Negra21 + FacElec.Negra105)
lnImpIva = (FacElec.Iva_Inscri + FacElec.Iva_No_Ins)
lnIvaBase21 = FacElec.Negra21
lnIvaImp21 = FacElec.Iva_Inscri
lnIvaBase105 = FacElec.Negra105
lnIvaImp105 = FacElec.Iva_No_Ins

Else
lnImpNeto = FacElec.Totales
lnImpIva = 0
lnIvaBase21 = 0
lnIvaImp21 = 0
lnIvaBase105 = 0
lnIvaImp105 = 0

Endif


Saludos

Gonzalo Harreguy

 ALTOCERRO Informatica

--
Has recibido este mensaje porque estás suscrito al grupo "Factura electronica y otros servicios Argentina WSAFIPFE" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a factura-electronica-y-otros-servic...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/factura-electronica-y-otros-servicios-argentina-wsafipfe/3c706300-aded-4282-a28c-d775f5c1240dn%40googlegroups.com.
-- 
Gonzalo Harreguy
ghar...@gmail.com
cel 341 3552195

Rosa Hazan

unread,
Aug 12, 2025, 3:57:05 PMAug 12
to GONZALO HARREGUY, Factura electronica y otros servicios Argentina WSAFIPFE

Husky Software - Marcelo Siles

unread,
Aug 12, 2025, 4:16:33 PMAug 12
to Rosa Hazan, GONZALO HARREGUY, Factura electronica y otros servicios Argentina WSAFIPFE

Yo me estuve adelantando y probando código, pero el método f1ParamGetActividades() devuelve “falso”.

 

Quizas sea por la version del OCX (estoy trabajando con la 100.81)

Diego A. Montero

unread,
Aug 12, 2025, 4:48:44 PMAug 12
to Husky Software - Marcelo Siles, Rosa Hazan, GONZALO HARREGUY, Factura electronica y otros servicios Argentina WSAFIPFE
En la 100.82 funciona correctamente

Enviado desde Outlook para Android

From: factura-electronica-y-otros-...@googlegroups.com <factura-electronica-y-otros-...@googlegroups.com> on behalf of Husky Software - Marcelo Siles <huskys...@gmail.com>
Sent: Tuesday, August 12, 2025 5:16:44 PM
To: 'Rosa Hazan' <rosah...@gmail.com>; 'GONZALO HARREGUY' <ghar...@gmail.com>
Cc: 'Factura electronica y otros servicios Argentina WSAFIPFE' <factura-electronica-y-otros-...@googlegroups.com>
Subject: RE: [WSAFIPFE] Re: No puedo validar Monotributo ni consumidor final
 

Rosa Hazan

unread,
Aug 12, 2025, 4:50:23 PMAug 12
to Diego A. Montero, Husky Software - Marcelo Siles, GONZALO HARREGUY, Factura electronica y otros servicios Argentina WSAFIPFE
PARA PABLO
  *************************************
Cuando facturo a Monotributo la factura es A
A consumidor final es factura B.
No me funcionaba bien no informar documento en factura B, Hay un tope en pesos para no informar el documento, Entonces en los consumidores finales pongo SIEMPRE el DNI y el tipo de DNI es 96

Cuando informas CUIT el tipo es 80

Todo este código lo pongo después de INICIAR(............. para generar el QR o después de cualquier INICIAR(....... , por supuesto sin los parámetros del QR.
Espero me entiendas, cualquier cosa preguntame


****************************COD DE PROGRAMA 

        fe.tls = 12  
       
        fe.ArchivoCertificadoPassWord = "aerolom"
 
        fe.f1CabeceraCantReg =1
        fe.f1CabeceraPtoVta = VAL(thisform.csucursal)
        fe.f1CabeceraCbteTipo   = thisform.nTipocomprobante
       
         
            fe.f1Indice = 0
            fe.qrVersion = 1
            fe.F1DetalleConcepto = 1
            ***********************
             IF THISFORM.VSIT  = "C"
 
                     FE.F1DetalleDocTipo         = 96  && indica que el sig es nro DNI
                     FE.F1DetalleDocNro         = PADL(Alltrim(clientes.clcuit),11,"0")       && DNI DEL CONSUM FINAL
             ELSE
                      FE.F1DetalleDocTipo         = 80  && indica que el sig es nro cuit
                      FE.F1DetalleDocNro         = Left(Alltrim(THISFORM.VCUIT),2) +Substr(THISFORM.VCUIT,4,8) + ;
                                    Substr(Alltrim(THISFORM.VCUIT),13,1)  && cuit del comprador
                                  
             ENDIF
     
   if  THISFORM.VSIT = "I"      &&&& responsable inscrip
           FE.F1DetalleCondicionIvaReceptor =  1
   endif
   
   IF  THISFORM.VSIT = "C"    &&&& consumidor final
           FE.F1DetalleCondicionIvaReceptor =  5
   endif
  if THISFORM.VSIT = "O"      &&&&& monotributo
           FE.F1DetalleCondicionIvaReceptor =  6
  ENDIF
 
  if  THISFORM.VSIT = "X"    &&&&& Excento
          FE.F1DetalleCondicionIvaReceptor =  4
  endif
           
          ***************************

            fe.F1DetalleCbteDesdeS = thisform.cNumero
           
           
            cAux      = Alltrim(Dtoc(thisform.vfecha))
         
   thisform.cFechaFac = Right(cAux,4) + Substr(cAux,4,2) +Left(cAux,2)
   
            fe.F1DetalleCbteFch =    thisform.cFechafac
           
            fe.F1DetalleImpTotal = thisform.vcpbtot
           
            fe.F1DetalleMonId = "PES"
            fe.F1DetalleMonCotiz = 1
            fe.F1Detalleqrtipocodigo = "E"
            ***********REM  fe.F1Detalleqrtipocodigo = "A" si es un CAE anticipado
            fe.F1DetalleCAEA = ALLTRIM(wsnumero.cae)     &&&&&"CAE o CAEA del comprobante"
           
            thisform.cFilenameQR = thisform.cFileNameQR +"mi_qr.jpg"
                       
            fe.F1DetalleQRArchivo = ALLTRIM(thisform.cFilenameQR)
            fe.f1detalleqrtolerancia = 1
            fe.f1detalleqrresolucion = 4  &&&&& 4 recomendado
            fe.f1detalleqrformato = 6
           If fe.f1qrGenerar(99) Then
              =MessageB("gráfico generado con los datos. " + fe.f1qrmanualTexto)
              thisform.Qr.picture  =thisform.cFileNameQR
            Else
              =Messageb("error al generar imagen " + fe.ArchivoQRError+ " "+fe.Ultimomensajeerror)
           EndIf
      ENDIF
     
RETURN



Rosa Hazan

Pablo Chirico

unread,
Aug 12, 2025, 7:04:34 PMAug 12
to Rosa Hazan, Diego A. Montero, Husky Software - Marcelo Siles, GONZALO HARREGUY, Factura electronica y otros servicios Argentina WSAFIPFE
Muchas gracias a todos por sus respuestas, especialmente a Rosa Hazan por el ejemplo. 
Mañana haré las correcciones correspondientes en los métodos de mi clase y les contaré los resultados.

Saludos
PabloCh

Has recibido este mensaje porque estás suscrito a un tema del grupo "Factura electronica y otros servicios Argentina WSAFIPFE" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/factura-electronica-y-otros-servicios-argentina-wsafipfe/4j9OTQG6Pxs/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a factura-electronica-y-otros-servic...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/factura-electronica-y-otros-servicios-argentina-wsafipfe/CAKci-OhpuoYhdFH0-GcaEoUwO%2BYLwEU-tRxbHAN2B0-9F4s7KQ%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages