Para emitir una factura A por cuenta y orden de terceros con Afip SDK, el comercio (tercero) debe tener su propio certificado digital y autorizar el web service de facturación electrónica. Puedes gestionar esto de tres formas: crear el certificado con el SDK, que el comercio lo cree manualmente y te lo envíe, o que te delegue el web service y aceptes la delegación. Luego, usas el CUIT y credenciales del tercero para emitir la factura desde tu sistema, completando los datos requeridos para una factura A en el método createVoucher o equivalente según el lenguaje elegido. No hay un parámetro específico "por cuenta y orden de terceros", pero la emisión se realiza a nombre del CUIT del tercero autorizado, cumpliendo el objetivo operativo según Afip SDK y Discord.
¿Te gustaría ver un ejemplo de código para una factura A en algún lenguaje específico?
Sources:
me gustaria ver un ejemplo de codigo
@user me gustaria ver un ejemplo de codigo
Aquí tienes un ejemplo en PHP usando Afip SDK para emitir una factura A (tipo 1) por cuenta y orden de un tercero, suponiendo que ya tienes el certificado y CUIT del comercio autorizado:
include ('src/Afip.php');
/**
* CUIT del comercio (tercero)
* Usa el CUIT real y el certificado correspondiente
*/
$CUIT = 20304050607; // Reemplaza por el CUIT del tercero
$afip = new Afip(array('CUIT' => $CUIT));
$data = array(
'CantReg' => 1,
'PtoVta' => 1,
'CbteTipo' => 1, // 1 = Factura A
'Concepto' => 1,
'DocTipo' => 80, // 80 = CUIT
'DocNro' => 20123456789, // CUIT del cliente
'CbteDesde' => 1,
'CbteHasta' => 1,
'CbteFch' => intval(date('Ymd')),
'ImpTotal' => 121,
'ImpTotConc' => 0,
'ImpNeto' => 100,
'ImpOpEx' => 0,
'ImpIVA' => 21,
'ImpTrib' => 0,
'MonId' => 'PES',
'MonCotiz' => 1,
'Iva' => array(
array(
'Id' => 5, // 21% IVA
'BaseImp' => 100,
'Importe' => 21
)
),
);
$res = $afip->ElectronicBilling->CreateVoucher($data);
echo $res['CAE']; // CAE asignado
echo $res['CAEFchVto']; // Fecha de vencimiento del CAE
Este ejemplo asume que el CUIT y el certificado corresponden al tercero y que tienes los permisos necesarios. Si necesitas otro lenguaje, avísame.
Sources:
@user no debe ir el array de opcionales cuando se trata de cuenta y orden? o es solo para facturas de cuenta y orden tipo B o C?
Parece que el array de "Opcionales" con los campos específicos de "por cuenta y orden" (por ejemplo, Id 2102, 2103, etc.) solo es obligatorio en facturas B y C, no en facturas A. En facturas A, la AFIP no exige esos campos opcionales para identificar la operación por cuenta y orden, según la documentación y ejemplos disponibles en Afip SDK y Discord. Si necesitas emitir una B o C por cuenta y orden, sí debes incluir el array "Opcionales" con los datos del comitente y comisionista.
¿Te gustaría ver un ejemplo de cómo se arma el array "Opcionales" para una factura B o C?
Sources:
@user que campo, en el codigo que me mandaste, identifica a AFIP que se trata de una factura por cuenta y orden? el codigo que me mandaste parece que es una factura A común
La documentación de Afip SDK que he consultado no menciona cómo identificar ante AFIP que una factura A es emitida "por cuenta y orden de terceros" mediante un campo específico en el array de datos al crear el comprobante; efectivamente, el ejemplo de código que te envié corresponde a una factura A común, ya que para facturas A no se requiere (ni existe en la documentación) un campo "Opcionales" con los identificadores de cuenta y orden, a diferencia de las facturas B o C donde sí se utilizan esos campos opcionales para informar datos del comitente y comisionista. Si tu caso requiere una justificación formal ante AFIP de que la factura A es "por cuenta y orden", sería útil que aclares si existe alguna normativa o requerimiento puntual, o si necesitas reflejarlo solo en el PDF/impresión y no en el web service. Si esto no resuelve tu duda, por favor contacta al equipo de soporte de Afip SDK para mayor asistencia.
@user como hago para poner el CondicionIVAReceptorId? en que parte del codigo va?
El campo CondicionIVAReceptorId debe agregarse dentro del array de datos al crear la factura, al mismo nivel que los demás campos principales (por ejemplo, 'CantReg', 'PtoVta', etc.). Es obligatorio desde la RG 5616/2024. Ejemplo en PHP:
$data = array(
'CantReg' => 1,
'PtoVta' => 1,
'CbteTipo' => 1,
'Concepto' => 1,
'DocTipo' => 80,
'DocNro' => 20123456789,
'CbteDesde' => 1,
'CbteHasta' => 1,
'CbteFch' => intval(date('Ymd')),
'ImpTotal' => 121,
'ImpTotConc' => 0,
'ImpNeto' => 100,
'ImpOpEx' => 0,
'ImpIVA' => 21,
'ImpTrib' => 0,
'MonId' => 'PES',
'MonCotiz' => 1,
'Iva' => array(
array(
'Id' => 5,
'BaseImp' => 100,
'Importe' => 21
)
),
'CondicionIVAReceptorId' => 1 // Por ejemplo, 1 = Responsable Inscripto
);
Colócalo exactamente como en el ejemplo, cambiando el valor según la condición del receptor. ¿Te gustaría saber cómo obtener el ID correcto para cada cliente?
Sources:
@user como hago para obtener el id correcto para cada cliente?
Para obtener el ID correcto de la condición IVA del cliente, primero consulta el padrón de constancia de inscripción con el CUIT del cliente y revisa los impuestos en la respuesta para identificar su condición (por ejemplo, si tiene "IVA" es Responsable Inscripto, si tiene "MONOTRIBUTO" es Monotributista, etc.). Luego, mapea esa condición al ID correspondiente de la lista oficial que obtienes con el método FEParamGetCondicionIvaReceptor del SDK, ya que los IDs del padrón y los de facturación no coinciden directamente.
Puedes consultar la guía paso a paso aquí: Obtener condición frente al IVA de un CUIT vía web service y ver la lista de IDs válidos aquí: Solución a error 10242. ¿Te gustaría un ejemplo de código para automatizar este mapeo?
Sources:
@user me podrias pasar el id para cada condicion de iva existente? por ejemplo: responsable inscripto es 1, pasame asi pero de todas porfavor
Claro, aquí tienes la lista de IDs para cada condición de IVA según la documentación oficial de Afip SDK:
- 1: IVA Responsable Inscripto
- 6: Responsable Monotributo
- 13: Monotributista Social
- 16: Monotributo Trabajador Independiente Promovido
- 4: IVA Sujeto Exento
- 5: Consumidor Final
- 7: Sujeto No Categorizado
- 8: Proveedor del Exterior
- 9: Cliente del Exterior
- 10: IVA Liberado – Ley N° 19.640
- 15: IVA No Alcanzado
Puedes ver la lista completa y actualizada en la documentación: Solución a error 10242.
Sources: