Sin vueltas y en criollo: cómo funciona, las cuatro palabras que hay que saber, y qué hace cada endpoint — para quien recién arranca.
afiPAPI es un intermediario. Los servidores de ARCA son complicados de hablar (usan un protocolo viejo llamado SOAP y exigen certificados y credenciales temporales). afiPAPI se pone en el medio: vos le hablás fácil por HTTP con JSON, y ella se encarga de la parte difícil contra ARCA.
http://localhost:5000/api/afip/<lo-que-quieras> con un JSON, y recibe un JSON de vuelta. El puerto (acá 5000) lo elegís al instalar.{ "ok": ..., "data": ... }.ok. Si es true, salió bien y lo que pediste está en data. Si es false, algo falló y el motivo está en data.error. Un "HTTP 200" no alcanza — puede venir 200 y adentro un ok:false.produccion. En false hablás con el ambiente de pruebas de ARCA (para practicar sin emitir nada real); en true, con el ambiente real. Empezá siempre en homologación (false) hasta que todo funcione.Cuatro palabras que aparecen todo el tiempo:
| Palabra | Qué es |
|---|---|
| CUIT | El número que identifica al contribuyente (el que factura). Va sin guiones, como número. |
| Punto de venta | El "cajón" numerado desde donde emitís (una caja, una sucursal, un sistema). ARCA los numera; lo abreviamos PV. |
| Tipo de comprobante | Qué documento emitís, como número: Factura A = 1, Factura B = 6, Factura C = 11, notas de crédito/débito, etc. |
| CAE | El código que ARCA te devuelve cuando aprueba la factura. Es la "constancia" de que es válida — va impreso en el comprobante, con su fecha de vencimiento. |
| Token / sign | La credencial temporal para hablar con ARCA. No te preocupes por ella: la API la obtiene, la guarda y la renueva sola después del login. |
La secuencia típica para emitir una factura son 3 pasos (más un chequeo opcional al inicio). Todo lo demás son consultas y ayudas alrededor de esto.
/ping o /health: ¿hay línea con ARCA? Si no, ni intentes./login: una vez por CUIT. La API guarda la credencial y la renueva sola./ultimo: para saber cuál sigue. (En realidad /emitir ya lo calcula solo, pero es útil verlo.)/emitir: mandás los datos y ARCA te devuelve el CAE y el número. Listo, facturaste.Te conecta con ARCA. Le pasás tu CUIT y tu certificado digital (el archivo .pfx con su clave), y queda autenticado. Se hace UNA sola vez por CUIT: después la API guarda la credencial y la va renovando sola, así no tenés que autenticarte en cada factura.
Detalle exacto: referencia de /login ›
El semáforo antes de operar. Te dice si los servidores de ARCA (y, si querés, servidores tuyos como tu base de datos) están accesibles y con qué latencia. Sirve para decidir si conviene conectarse o mostrar "sin conexión" y reintentar.
afipAccesible (tu "¿puedo facturar?" de un vistazo) y el detalle de cada servidor.Tiene su propia guía: /ping explicado en lenguaje natural ›
Un chequeo de salud más completo. Te dice si la API está bien, si ARCA responde (con el estado de sus tres servidores internos: aplicación, base de datos y autenticación) y un resumen de cuántos CUIT tenés autenticados. Ideal para un tablero de "¿está todo OK?".
/ping: /ping es un chequeo liviano de "¿hay conexión?"; /health le pregunta a ARCA de verdad "¿estás funcionando?".Detalle: referencia de /health ›
¿Cómo está mi sesión con ARCA? Le pasás un CUIT y te dice si su credencial está activa, cuándo vence y cuántos minutos le quedan. Útil para saber si vas a poder operar o si conviene re-loguearte.
Detalle: referencia de /status ›
La lista de todo lo que tenés autenticado. Muestra qué CUIT están cargados y en qué ambiente. Es una herramienta de diagnóstico — la usás cuando algo no anda y querés ver el estado interno.
Detalle: referencia de /cache ›
El último número que usaste. Le decís el punto de venta y el tipo de comprobante, y te dice cuál fue el último número autorizado por ARCA. Así sabés cuál sigue.
0 — y eso está bien: quiere decir que la próxima factura será la número 1.Detalle: referencia de /ultimo ›
El corazón de todo: emitís un comprobante. Le mandás los datos (importes, IVA, tipo de comprobante, datos del cliente…) y ARCA te devuelve el CAE, su fecha de vencimiento y el número asignado. Eso es la factura autorizada.
1), servicios (2) o ambos (3). Para servicios, ARCA pide además las fechas del período.ok. Si ARCA rechaza el comprobante, viene ok:false con el motivo. Un CAE en la respuesta = aprobado.Detalle completo (todos los campos): referencia de /emitir ›
Traer una factura que ya emitiste. Le das el punto de venta, el tipo y el número, y te devuelve todos sus datos más el CAE. Sirve para reimprimir, verificar o mostrar un comprobante viejo.
ok:false.Detalle: referencia de /consultar ›
Un listado de lo que emitiste en un rango de números (del X al Y), con un totalizador al final (cuántos, cuánto suman). Bueno para conciliar o armar un reporte.
Detalle: referencia de /resumen-emitidos ›
¿Quién es este CUIT y qué factura emite? Le das un CUIT (el tuyo o el de un tercero, ej. un cliente) y te dice su condición fiscal (monotributo, responsable inscripto, etc.), sus datos, y si está habilitado a emitir Factura A.
/emitir (ARCA rechaza si el tipo no corresponde). Además, el CUIT que consulta necesita tener habilitado ese servicio de padrón en ARCA.Detalle: referencia de /padron/constancia ›
ARCA maneja todo con códigos (Factura B es el 6, DNI es el 96, 21% de IVA es el 5…). Estos endpoints te traen las listas oficiales y actualizadas de esos códigos, para llenar los combos de tu sistema o validar valores.
{ cuit, produccion } y te devuelven una lista de { Id, Descripcion }. Para novatos: los valores más comunes ya están en la tabla de códigos de la referencia; estos endpoints son cuando querés la lista completa y al día.| Endpoint | Te trae la lista de… |
|---|---|
| /puntos-venta | Tus puntos de venta habilitados |
| /tipos-comprobante | Tipos de comprobante (Factura A/B/C, notas, etc.) |
| /tipos-documento | Tipos de documento (CUIT, DNI, CUIL…) |
| /tipos-concepto | Conceptos (productos / servicios / ambos) |
| /tipos-iva | Alícuotas de IVA (21%, 10,5%…) |
| /tipos-moneda | Monedas habilitadas |
| /tipos-tributo | Tipos de tributo (percepciones, otros) |
| /tipos-opcional | Campos opcionales |
| /condiciones-iva-receptor | Condición de IVA del cliente (RG 5616) |
| /actividades | Tus actividades económicas registradas |
Detalle y ejemplo: referencia de las tablas ›
La cotización oficial de una moneda según ARCA (ej. el dólar). La usás cuando facturás en moneda extranjera: ARCA espera que informes el valor que él considera oficial, y este endpoint te lo da.
Detalle: referencia de /cotizacion ›
Cuando ya tengas la idea general, saltá al detalle técnico: cada endpoint con su JSON exacto de entrada y respuesta.
Referencia técnica de endpoints ›/ping en detalle ›
Ejemplos por lenguaje ›
Descargar afiPAPI ›