For the complete documentation index, see llms.txt. This page is also available as Markdown.

Factura electrónica

Requisitos previos

Para poder usar esta guía, primero necesitarás:


La especificación de este Web Service se encuentra disponible en https://www.afip.gob.ar/ws/documentacion/manuales/manual-desarrollador-ARCA-COMPG-v4-0.pdf

Identificador wsfe

Producción Produccion

Desarrollo Desarrollo

Aquí hablaremos de comprobante indistintamente si es una factura, nota de crédito, etc.

Si es tu primera vez conectándote con la facturación electrónica de AFIP/ARCA, te recomiendo leer esta guía básica sobre su funcionamiento general:


Crear PDF

Crear PDF

Obtener número del último comprobante creado

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

Crear y asignar CAE a un comprobante

Debemos utilizar el método createVoucher pasándole como parámetro un Objeto con los detalles del comprobante y si queremos tener la respuesta completa enviada por el WS debemos pasarle como segundo parámetro true, en caso de no enviarle el segundo parámetro nos devolverá como respuesta { CAE : CAE asignado el comprobante, CAEFchVto : Fecha de vencimiento del CAE (yyyy-mm-dd) }.

Este método acepta mas parámetros, podes encontrar todos los parámetros disponibles En este ejemplo

Debemos utilizar el método CreateVoucher pasándole como parámetro un Array con los detalles del comprobante y si queremos tener la respuesta completa devuelta por el WS debemos pasarle como segundo parámetro TRUE, en caso de no enviarle el segundo parámetro nos devolverá como respuesta array(CAE => CAE asignado el comprobante, CAEFchVto => Fecha de vencimiento del CAE (yyyy-mm-dd)).

Este método acepta mas parámetros, podes encontrar todos los parámetros disponibles En este ejemplo

Debemos utilizar el método createVoucher pasándole como parámetro un Hash con los detalles del comprobante y si queremos tener la respuesta completa devuelta por el WS debemos pasarle como segundo parámetro true, en caso de no enviarle el segundo parámetro nos devolverá como respuesta { "CAE": CAE asignado el comprobante, "CAEFchVto" : Fecha de vencimiento del CAE (yyyy-mm-dd) }.

Debemos utilizar el método createVoucher pasándole como parámetro un Hash con los detalles del comprobante y si queremos tener la respuesta completa devuelta por el WS debemos pasarle como segundo parámetro true, en caso de no enviarle el segundo parámetro nos devolverá como respuesta { "CAE": CAE asignado el comprobante, "CAEFchVto" : Fecha de vencimiento del CAE (yyyy-mm-dd) }.

Debemos utilizar el método CreateVoucherAsync pasándole como parámetro un Objeto con los detalles del comprobante y si queremos tener la respuesta completa enviada por el WS debemos pasarle como segundo parámetro true, en caso de no enviarle el segundo parámetro nos devolverá como respuesta new Dictionary<string, object?> { ["CAE"] : CAE asignado el comprobante, ["CAEFchVto"] : Fecha de vencimiento del CAE (yyyy-mm-dd) }.

Este método acepta mas parámetros, podes encontrar todos los parámetros disponibles En este ejemplo

Debemos utilizar el método createVoucher pasándole como parámetro un Map con los detalles del comprobante y si queremos tener la respuesta completa enviada por el WS debemos pasarle como segundo parámetro true, en caso de no enviarle el segundo parámetro nos devolverá como respuesta Map<String, Object> con CAE y CAEFchVto.

Este método acepta mas parámetros, podes encontrar todos los parámetros disponibles En este ejemplo

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

Crear y asignar CAE a siguiente comprobante

Debemos utilizar el método createNextVoucher pasándole como parámetro un Objeto con los detalles del comprobante al igual que el método createVoucher, nos devolverá como respuesta { CAE : CAE asignado al comprobante, CAEFchVto : Fecha de vencimiento del CAE (yyyy-mm-dd), voucher_number : Número asignado al comprobante }.

Debemos utilizar el método CreateNextVoucher pasándole como parámetro un Array con los detalles del comprobante al igual que el método CreateVoucher, nos devolverá como respuesta array(CAE => CAE asignado al comprobante, CAEFchVto => Fecha de vencimiento del CAE (yyyy-mm-dd), voucher_number => Número asignado al comprobante).

Debemos utilizar el método createNextVoucher pasándole como parámetro un Hash con los detalles del comprobante al igual que el método createVoucher, nos devolverá como respuesta { "CAE" : CAE asignado al comprobante, "CAEFchVto" : Fecha de vencimiento del CAE (yyyy-mm-dd), "voucher_number" : Número asignado al comprobante }.

Debemos utilizar el método createNextVoucher pasándole como parámetro un Hash con los detalles del comprobante al igual que el método createVoucher, nos devolverá como respuesta { "CAE" : CAE asignado al comprobante, "CAEFchVto" : Fecha de vencimiento del CAE (yyyy-mm-dd), "voucher_number" : Número asignado al comprobante }.

Debemos utilizar el método CreateNextVoucherAsync pasándole como parámetro un Objeto con los detalles del comprobante al igual que el método CreateVoucherAsync, nos devolverá como respuesta new Dictionary<string, object?> { ["CAE"] : CAE asignado el comprobante, ["CAEFchVto"] : Fecha de vencimiento del CAE (yyyy-mm-dd) }.

Debemos utilizar el método createNextVoucher pasándole como parámetro un Map con los detalles del comprobante al igual que el método createVoucher, nos devolverá como respuesta Map<String, Object> con .get("CAE"), .get("CAEFchVto") y .get("voucher_number").

Se debe llamar al endpoint Obtener número del último comprobante creado, al numero de comprobante que nos devuelve sumarle 1, y llamar al endpoint Crear y asignar CAE a un comprobante

Obtener información de un comprobante ya emitido

Con este método podemos obtener toda la información relacionada a un comprobante o simplemente saber si el comprobante existe.

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

Crear CAEA

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

Obtener información de CAEA ya emitido

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

Obtener puntos de venta disponibles

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

Obtener tipos de comprobantes disponibles

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

Obtener tipos de conceptos disponibles

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

Obtener tipos de documentos disponibles

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

Obtener tipos de alícuotas disponibles

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

Obtener tipos de monedas disponibles

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

Obtener cotización de moneda

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

Obtener tipos de opciones disponibles para el comprobante

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

Obtener tipos de tributos disponibles

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

Obtener tipos de condiciones frente al IVA disponibles

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

Transformar formato de fecha que utiliza AFIP

De yyyymmdd a yyyy-mm-dd

Si lo necesitas, a esto podes implementarlo con el lenguaje que utilices.

Obtener estado del servidor

Endpoint

POST https://app.afipsdk.com/api/v1/afip/requests

Ejemplo

Última actualización