Factura electrnica y comprobantes

RunLLM
RunLLM

Por defecto, al generar una factura con Afip SDK usando el método createVoucher, la respuesta incluye el CAE y la fecha de vencimiento del CAE, no el número de comprobante ("voucher number"). Si deseas obtener el número de comprobante asignado, debes usar el método createNextVoucher, que sí devuelve el CAE, la fecha de vencimiento y el número de comprobante asignado, independientemente de si la factura es A, B o C. La estructura de la respuesta es la misma para los distintos tipos de factura cuando usas estos métodos.

Según la documentación oficial, la respuesta estándar de createVoucher es { "CAE": ..., "CAEFchVto": ... }, y la de createNextVoucher es { "CAE": ..., "CAEFchVto": ..., "voucher_number": ... } para todos los tipos de comprobantes (ver documentación, ver ejemplos en Ruby).

¿Te gustaría ver ejemplos de código para cada caso?

Sources:

Clari Ursini
Clari Ursini

@user pero este metodo es necesario hacerlo para asignar el cae a la fc o solamente es de consulta createNextVoucher

RunLLM
RunLLM

El método createNextVoucher no es solo de consulta: efectivamente genera y asigna el CAE al comprobante, igual que createVoucher. La diferencia es que createNextVoucher calcula automáticamente el próximo número de comprobante, evitando que lo tengas que consultar y asignar manualmente; así, simplifica el proceso de emisión y registro del comprobante en AFIP (ver documentación, ver ejemplos en Ruby).

Ambos métodos (createVoucher y createNextVoucher) registran la factura y devuelven el CAE, pero createNextVoucher automatiza el manejo del número de comprobante. No es solo para consulta, sino para registrar y autorizar la factura.

Sources:

Clari Ursini
Clari Ursini

@user pero el createnextvoucher crea un nuevo comprobante o solo asigna el cae al ultimo creado cual es la diferencia con el create voucher cual uso

RunLLM
RunLLM

createNextVoucher crea y registra un nuevo comprobante en AFIP, asignándole automáticamente el siguiente número disponible y generando el CAE. No asigna el CAE a un comprobante ya existente, sino que realiza todo el proceso de alta y autorización en un solo paso (ver documentación, ver ejemplos en Ruby).

La diferencia con createVoucher es que este último requiere que le indiques manualmente el número de comprobante (CbteDesde y CbteHasta). Usa createNextVoucher si quieres automatizar la numeración; usa createVoucher si necesitas controlar el número de comprobante tú mismo.

Sources:

Clari Ursini
Clari Ursini

@user con create next voucher no le tengo que mandar estos campos de "CbteDesde" y "CbteHasta" o igual se los mando?

RunLLM
RunLLM

No, con createNextVoucher no debes enviar los campos CbteDesde ni CbteHasta; el método los calcula y asigna automáticamente al siguiente número disponible (ver documentación, ver ejemplos en Ruby).

Solo debes enviar el resto de los datos requeridos del comprobante; el SDK se encarga de completar la numeración.

Sources: