Ir al contenido

Sistemas de ARCA

Cada endpoint de la API corresponde a un servicio distinto de ARCA. Esta página explica qué es cada uno y cómo interpretar lo que devuelve. Para el detalle campo por campo, andá a la Referencia.

Es el servicio de ARCA que registra las facturas electrónicas de un CUIT. Afippi lo expone dividido en dos endpoints porque son dos consultas distintas en ARCA:

  • Emitidos — lo que el CUIT le facturó a terceros. Cada comprobante trae un receptor.
  • Recibidos — lo que terceros le facturaron al CUIT. Cada comprobante trae un emisor.

El resto de los campos es idéntico entre los dos.

Sin parámetros de fecha, ambos endpoints devuelven el mes en curso (en UTC). Para consultar otro período, mandá from_date y to_date juntas, en formato YYYY-MM-DD:

Ventana de terminal
curl "https://api.afippi.com/v1/cuits/20123456789/mis-comprobantes/emitidos?from_date=2026-01-01&to_date=2026-06-30" \
-H "Authorization: Bearer $AFIPPI_API_TOKEN"

Mandar una sola de las dos es un error: o van las dos, o ninguna. La respuesta te confirma el período que se usó realmente en filters, que es especialmente útil cuando no mandaste fechas y querés saber qué mes te tocó.

{
"data": [
{
"fecha": "2026-07-14T00:00:00.000Z",
"puntoVenta": "1",
"numeroDesde": "145",
"numeroHasta": "145",
"tipo": "11",
"impNetoGravado": 281600,
"impNetoNoGravado": 0,
"impOpExentas": 0,
"otrosTributos": 0,
"iva": 0,
"tipoCambio": 1,
"importeOriginal": 281600,
"monedaOriginal": "ARS",
"importe": 281600,
"receptor": {
"tipoDocumento": "80",
"numeroDocumento": "30712345678",
"nombre": "Distribuidora Norte S.A."
}
}
],
"pagination": { "limit": 50, "offset": 0, "total": 118 },
"filters": { "fromDate": "2026-07-01", "toDate": "2026-07-31" },
"syncedAt": "2026-07-20T14:32:11.000Z"
}

importeOriginal y monedaOriginal son lo que dice el comprobante; importe es el monto convertido a pesos usando tipoCambio. Para un comprobante en pesos, tipoCambio es 1 y los dos importes coinciden.

tipo es el código de tipo de comprobante de ARCA (1 factura A, 11 factura C, y así). La API lo pasa tal cual, sin traducir.

El SCT es la cuenta corriente impositiva del contribuyente en ARCA. El endpoint /sct devuelve tres listas bajo data:

  • deuda — obligaciones vencidas e impagas. Trae saldo más los intereses discriminados en intResarcitorios e intPunitorios. El total real a pagar es la suma de los tres.
  • vencimientos — obligaciones futuras, con su detalle.
  • ddjj — declaraciones juradas presentadas o pendientes.

Los tres comparten la forma de identificar la obligación: impuesto, concepto, subconcepto, periodo (formato AAAAMM) y antCuota.

{
"data": {
"deuda": [
{
"establecimiento": "0",
"impuesto": "REGIMEN SIMPLIFICADO",
"concepto": "Componente Impositivo",
"subconcepto": "Componente Impositivo",
"periodo": "202412",
"antCuota": "0",
"vencimiento": "2025-01-20T00:00:00.000Z",
"saldo": 18000,
"intResarcitorios": 1200,
"intPunitorios": 600
}
],
"vencimientos": [],
"ddjj": []
},
"syncedAt": "2026-07-20T14:32:11.000Z"
}

La Cuenta Corriente de Monotributistas y Autónomos. El endpoint /ccma es el más chico de la API: devuelve dos saldos.

{
"data": { "saldoDeudor": 15320.5, "saldoAcreedor": 4200.75 },
"syncedAt": "2026-07-20T14:32:11.000Z"
}

saldoDeudor es lo que el contribuyente debe; saldoAcreedor, lo que tiene a favor. Los dos pueden ser null si ARCA no informó ese saldo, que no es lo mismo que informar cero.

El endpoint /ccma/movimientos lista los movimientos que componen esos saldos. La paginación es por período, del más reciente al más antiguo: limit y offset cuentan períodos, total es la cantidad de períodos que tiene la cuenta y cada página devuelve todos los movimientos de sus períodos, ordenados por orden.

{
"data": [
{
"orden": 0,
"periodo": "07/2026",
"impuesto": "020",
"concepto": "019",
"subconcepto": "019",
"descripcion": "Obligacion Mensual Monot.",
"fechaMovimiento": "2026-07-20T00:00:00.000Z",
"debe": 18000,
"haber": null,
"saldo": -18000
}
],
"pagination": { "limit": 50, "offset": 0, "total": 14 },
"syncedAt": "2026-07-20T14:32:11.000Z"
}

Cada movimiento trae debe o haber, nunca los dos. saldo es el saldo acumulado después del movimiento: un valor negativo es saldo deudor.

El buzón oficial donde ARCA notifica al contribuyente. El endpoint /dfe lista las notificaciones, de la más reciente a la más antigua.

{
"data": [
{
"arcaId": "12345",
"tipo": "Vista Electrónica",
"asunto": "Nueva comunicación",
"organismo": "AFIP",
"fechaRecepcion": "2026-07-18T10:00:00.000Z",
"fechaNotificacion": "2026-07-17T00:00:00.000Z",
"leidaAt": null
}
],
"pagination": { "limit": 1, "offset": 2, "total": 23 },
"syncedAt": "2026-07-20T14:32:11.000Z"
}

Hay tres fechas y conviene no confundirlas:

  • fechaNotificacion — cuándo ARCA emitió la notificación. Es la que corre los plazos legales.
  • fechaRecepcion — cuándo entró al domicilio electrónico.
  • leidaAt — cuándo se marcó como leída en Afippi. Es null si nadie la abrió todavía. No refleja el estado de lectura en ARCA.

organismo puede ser AFIP u otro organismo adherido, y tipo es la clasificación que le pone ARCA. Ambos pueden venir null.

Todos estos endpoints devuelven syncedAt, y en todos, un resultado vacío puede significar dos cosas muy distintas. Leé Sincronización antes de construir algo encima de estos datos.