Sí, aquí tienes un ejemplo de payload para emitir una factura (A o B) de un Responsable Inscripto (RI) a un Consumidor Final (DocTipo 99, DocNro 0) por un producto de $1000 con IVA 21%. Los campos clave son: ImpNeto: 1000, ImpIVA: 210, ImpTotal: 1210, y el array de IVA con Id 5 (21%), BaseImp 1000, Importe 210. Ejemplo en JSON:
{
"CantReg": 1,
"PtoVta": 1,
"CbteTipo": 6,
"Concepto": 1,
"DocTipo": 99,
"DocNro": 0,
"CbteDesde": 1,
"CbteHasta": 1,
"CbteFch": 20240620,
"ImpTotal": 1210,
"ImpTotConc": 0,
"ImpNeto": 1000,
"ImpOpEx": 0,
"ImpIVA": 210,
"ImpTrib": 0,
"MonId": "PES",
"MonCotiz": 1,
"CondicionIVAReceptorId": 5,
"Iva": [
{
"Id": 5,
"BaseImp": 1000,
"Importe": 210
}
]
}
Puedes adaptar el número de comprobante y la fecha según corresponda. Para más detalles, revisa los ejemplos oficiales en docs.afipsdk.com y afipsdk.com.
¿Te gustaría ver el ejemplo en otro lenguaje o con más detalles?
Sources:
y ahora uno que tenga ademas un producto de 500 pesos con iva 10.5%
Debes agregar una segunda alícuota de IVA en el array "Iva", sumando ambos productos en los totales. El payload sería: ImpNeto: 1500, ImpIVA: 262.5, ImpTotal: 1762.5, y el array "Iva" con dos objetos: uno para 21% y otro para 10.5%. Ejemplo:
{
"CantReg": 1,
"PtoVta": 1,
"CbteTipo": 6,
"Concepto": 1,
"DocTipo": 99,
"DocNro": 0,
"CbteDesde": 1,
"CbteHasta": 1,
"CbteFch": 20240620,
"ImpTotal": 1762.5,
"ImpTotConc": 0,
"ImpNeto": 1500,
"ImpOpEx": 0,
"ImpIVA": 262.5,
"ImpTrib": 0,
"MonId": "PES",
"MonCotiz": 1,
"CondicionIVAReceptorId": 5,
"Iva": [
{
"Id": 5,
"BaseImp": 1000,
"Importe": 210
},
{
"Id": 4,
"BaseImp": 500,
"Importe": 52.5
}
]
}
Esto sigue la estructura oficial y la suma de IVA y netos debe coincidir con los totales. Más detalles y ejemplos en docs.afipsdk.com y ejemplos de múltiples IVA en discord.
¿Necesitás el ejemplo en otro formato o con explicación paso a paso?
Sources:
los productos valen 1000 y 500 respectivamente pero ya tienen iva incluido
En ese caso, debes calcular la base imponible (neto) dividiendo el precio final por 1,21 (para 21%) y por 1,105 (para 10,5%). Así, para $1000 con IVA 21%: neto = 826,45, IVA = 173,55. Para $500 con IVA 10,5%: neto = 452,49, IVA = 47,51. Los totales serían: ImpNeto: 1278,94, ImpIVA: 221,06, ImpTotal: 1500.
El payload sería:
{
"CantReg": 1,
"PtoVta": 1,
"CbteTipo": 6,
"Concepto": 1,
"DocTipo": 99,
"DocNro": 0,
"CbteDesde": 1,
"CbteHasta": 1,
"CbteFch": 20240620,
"ImpTotal": 1500,
"ImpTotConc": 0,
"ImpNeto": 1278.94,
"ImpOpEx": 0,
"ImpIVA": 221.06,
"ImpTrib": 0,
"MonId": "PES",
"MonCotiz": 1,
"CondicionIVAReceptorId": 5,
"Iva": [
{
"Id": 5,
"BaseImp": 826.45,
"Importe": 173.55
},
{
"Id": 4,
"BaseImp": 452.49,
"Importe": 47.51
}
]
}
Este método es el recomendado en la documentación y foros de la comunidad para precios finales con IVA incluido. ¿Te gustaría ver el cálculo detallado o necesitas ayuda con otro caso?
Sources:
quiero el mismo ejemplo pero para factura A
Para una Factura A, el payload es casi igual, solo cambia el tipo de comprobante (CbteTipo: 1 para Factura A) y se mantiene la discriminación de IVA. Usando los mismos valores netos e IVA calculados (precios finales con IVA incluido), el ejemplo sería:
{
"CantReg": 1,
"PtoVta": 1,
"CbteTipo": 1,
"Concepto": 1,
"DocTipo": 99,
"DocNro": 0,
"CbteDesde": 1,
"CbteHasta": 1,
"CbteFch": 20240620,
"ImpTotal": 1500,
"ImpTotConc": 0,
"ImpNeto": 1278.94,
"ImpOpEx": 0,
"ImpIVA": 221.06,
"ImpTrib": 0,
"MonId": "PES",
"MonCotiz": 1,
"CondicionIVAReceptorId": 5,
"Iva": [
{
"Id": 5,
"BaseImp": 826.45,
"Importe": 173.55
},
{
"Id": 4,
"BaseImp": 452.49,
"Importe": 47.51
}
]
}
La estructura y los cálculos son los mismos, solo asegúrate de usar CbteTipo: 1. Más detalles y ejemplos en docs.afipsdk.com.
¿Te gustaría ver el ejemplo en otro lenguaje o con explicación paso a paso?
Sources:
como hago una nota de credito c?
Para emitir una Nota de Crédito C con Afip SDK, debes usar el método createVoucher con el tipo de comprobante 13 (Nota de Crédito C). Debes asociarla a la factura C original usando el campo CbtesAsoc. Ejemplo básico en Node.js:
const punto_de_venta = 1;
const tipo_de_nota = 13; // Nota de Crédito C
const last_voucher = await afip.ElectronicBilling.getLastVoucher(punto_de_venta, tipo_de_nota);
const data = {
CantReg: 1,
PtoVta: punto_de_venta,
CbteTipo: tipo_de_nota,
Concepto: 1,
DocTipo: 80,
DocNro: 33693450239,
CbteDesde: last_voucher + 1,
CbteHasta: last_voucher + 1,
CbteFch: 20240620,
ImpTotal: 100,
ImpTotConc: 0,
ImpNeto: 100,
ImpOpEx: 0,
ImpIVA: 0,
ImpTrib: 0,
MonId: 'PES',
MonCotiz: 1,
CondicionIVAReceptorId: 6,
CbtesAsoc: [
{ Tipo: 11, PtoVta: 1, Nro: 1 } // Factura C asociada
]
};
const res = await afip.ElectronicBilling.createVoucher(data);
console.log({ cae: res.CAE, vencimiento: res.CAEFchVto });
Más detalles y ejemplos en docs.afipsdk.com.
¿Te gustaría ver el ejemplo en otro lenguaje o con explicación detallada?
Sources: