El error significa que, para facturas B cuyo importe es menor a $10.000.000, si el tipo de documento (DocTipo) es 99 (Consumidor Final), el número de documento (DocNro) debe ser exactamente 0. Si se informa otro valor en DocNro, el web service rechaza la solicitud con ese mensaje de error. Según la documentación y ejemplos de Afip SDK y múltiples respuestas en la comunidad, esta es la forma correcta de facturar a consumidor final por debajo del monto límite.
¿Te gustaría ver un ejemplo de código o más detalles sobre cómo corregirlo?
Sources:
@user como? Si facturo menos de 10 millones debo poner el doc nro del receptor como 0? Y como sabe entonces el sistema de ARCA o algún ente fiscal quien es el receptor de la factura en la cual yo actúo como emisor
Mi entendimiento es que, sí, si facturás menos de $10.000.000 a un consumidor final (DocTipo 99), debés poner DocNro en 0. En ese caso, el sistema de ARCA/AFIP no requiere identificar al receptor; la factura queda emitida "a consumidor final" y no se almacena información personal del comprador en el comprobante electrónico, solo los datos del emisor. Esto está respaldado por la documentación oficial y por respuestas de la comunidad.
¿Querés ver un ejemplo de cómo se arma el JSON o el código para este caso?
Sources:
@user o debo cambiar el número de consumidor final (es decir de 99 a otro tipo)? Qué opción crees que es mejor, esa primera que planteas o esta segunda?
No debés cambiar el tipo de documento (99) si el receptor es consumidor final y el monto es menor a $10.000.000; mantené DocTipo en 99 y DocNro en 0. Solo si el monto supera ese límite, debés usar otro tipo de documento (80, 86, 96) y el número correspondiente del receptor, según la documentación oficial.
La mejor opción es seguir la normativa: para montos menores, usá 99/0; para montos mayores, identificá al receptor. Así evitás rechazos y cumplís con AFIP/ARCA.
Sources:
@user pregunta, si emitimos con doc nro 0 la factura pasa a ser tipo consumidor final en vez de tipo B? o puede ser ambas? cual es su diferencia?
La factura sigue siendo tipo B (CbteTipo 6), pero al poner DocTipo 99 y DocNro 0, el receptor es "consumidor final". Es decir, una factura B puede ser emitida tanto a responsables inscriptos como a consumidores finales; lo que cambia es la identificación del receptor, no el tipo de comprobante. La diferencia está en los datos del receptor: con DocTipo 99/DocNro 0 no se identifica al comprador, mientras que con otros tipos sí se lo identifica, pero ambas son facturas B según la documentación oficial.
¿Te gustaría ver ejemplos de ambos casos en código?
Sources:
@user Ok y podríamos emitir otro tipo de factura si el cliente nos dijo que debe ser tipo B y que debemos de agregar los detalles del cliente/receptor de la factura?
@user Ok y podríamos emitir otro tipo de factura si el cliente nos dijo que debe ser tipo B y que debemos de agregar los detalles del cliente/receptor de la factura?
Sí, podés emitir una factura tipo B (CbteTipo 6) agregando los datos del receptor. En ese caso, usá DocTipo 80 (CUIT), 86 (CUIL) o 96 (DNI) y el número de documento correspondiente, según lo que te indique el cliente. Así la factura sigue siendo tipo B, pero identificada a nombre del receptor, tal como muestra la documentación oficial.
¿Querés un ejemplo de cómo armar el JSON o el código para este caso?
Sources:
@user ya le agrgeué eso de doc nro = 0, ahora me dice: " Si ImpNeto es mayor a 0 el objeto IVA es obligatorio."
El error indica que, si el campo ImpNeto (importe neto gravado) es mayor a 0, debés incluir el objeto Iva con las alícuotas correspondientes, aunque sea una factura B a consumidor final. AFIP exige que se detalle el IVA en la estructura, aunque luego no se discrimine en el PDF para el cliente final, según la documentación oficial.
¿Querés ver un ejemplo de cómo armar el objeto Iva en el JSON?
Sources:
@user entonces si tengo esta estrucura de JSON para las facturas tipo B:
{ "environment": "dev", "method": "FECAESolicitar", "wsid": "wsfe", "params": { "Auth" : { "Token": "{{token}}", "Sign": "{{sign}}", "Cuit": "20409378472" }, "FeCAEReq" : { "FeCabReq": { "CantReg": 1, "PtoVta": 1, "CbteTipo": 6 }, "FeDetReq": { "FECAEDetRequest": { "Concepto": 1, "DocTipo": 99, "DocNro": 0, "CbteDesde": 865, "CbteHasta": 865, "CbteFch": 20240314, "FchServDesde": null, "FchServHasta": null, "FchVtoPago": null, "ImpTotal": 121, "ImpTotConc": 0, "ImpNeto": 100, "ImpOpEx": 0, "ImpIVA": 21, "ImpTrib": 0, "MonId": "PES", "MonCotiz": 1, "CondicionIVAReceptorId": 5, "Iva": { "AlicIva": [ { "Id": 5, "BaseImp": 100, "Importe": 21 } ] } } } } } }
Como debe lucir?
@user entonces como debe lucir la factura en este caso? como cambia el JSON de la esructura>
La estructura es correcta, pero el campo "Iva" debe ser un array, no un objeto con "AlicIva". Debe lucir así:
"Iva": [
{
"Id": 5,
"BaseImp": 100,
"Importe": 21
}
]
El resto de los campos está bien para una factura B a consumidor final con IVA discriminado en la estructura, según la documentación oficial.
Sources: