Automatizaciones
CCMA
CCMA
Esta automatización ingresa al servicio "CCMA - Cuenta Corriente de Contribuyentes Monotributistas y Autónomos" de ARCA y devuelve el resumen del cálculo de deuda junto con los movimientos agrupados por período.
Requisitos previos
Para poder usar esta automatización, primero necesitarás:
Nombre
ccma
Parametros
cuitstring
CUIT a usar en la página de ARCA.usernamestring
CUIT para loguearse en la página de ARCA. Normalmente es el mismo CUIT que el parámetro 'cuit', pero si administrás una sociedad, el CUIT que usás para loguearte es tu propio CUIT.passwordstring
Contraseña para loguearse en la página de ARCA.periodoDesdestringOpcional
Período inicial a consultar en formato MM/YYYY.periodoHastastringOpcional
Período final a consultar en formato MM/YYYY.fechaCalculostringOpcional
Fecha para recalcular la deuda en formato DD/MM/YYYY.tipoContribuyentestringOpcional
Filtro del tipo de contribuyente visible en CCMA.impuestostringOpcional
Filtro de impuesto visible en CCMA. Valores típicos: `Todos`, `020`, `AUT`.Solicitud
LOCAL loHttp, loUrl, loData, loResponse
DECLARE Sleep IN kernel32 INTEGER
* Aqui deben cambiar los datos de params por los que correspondan.
* Esta request de ejemplo incluye todos posibles
* valores para ejecutar la automatizacion ccma,
* puede que algun valor sea opcional.
LOCAL loDataObject
loDataObject = CREATEOBJECT("JSONObject")
loDataObject.set("automation", "ccma")
LOCAL params
params = CREATEOBJECT("JSONObject")
loDataObject.set("params", params)
params.set("cuit", "20111111112")
params.set("username", "20111111112")
params.set("password", "contraseña#segura?")
params.set("periodoDesde", "01/2025")
params.set("periodoHasta", "04/2026")
params.set("fechaCalculo", "23/04/2026")
params.set("tipoContribuyente", "Monotributo")
params.set("impuesto", "020")
* Convertimos el objeto en JSON
loData = json_encode(loDataObject)
* Creamos un cliente HTTP para llamar a la API
loHttp = CREATEOBJECT("Msxml2.XMLHTTP")
loUrl = "https://app.afipsdk.com/api/v1/automations"
* Realizamos la llamada a la API
loHttp.Open("POST", loUrl, .F.)
loHttp.setRequestHeader("Content-Type", "application/json")
* Reemplazar con tu access_token obtenido de https://app.afipsdk.com
LOCAL accessToken
accessToken = "TU_TOKEN_AQUI"
loHttp.setRequestHeader("Authorization", "Bearer " + accessToken)
loHttp.Send(loData)
* En caso de error lo mostramos por pantalla
IF loHttp.Status <> 200
? loHttp.responseText
RETURN
ENDIF
* Convertimos la respuesta en un objeto
loResponse = json_decode(loHttp.responseText)
* Mostramos la respuesta por pantalla
? loHttp.responseText
* Expera maxima de 120 segundos (5 segundos * 24)
lnRetries = 24
DO WHILE lnRetries >= 0
lnRetries = lnRetries - 1
* Creamos un cliente HTTP para llamar a la API
loHttp = CREATEOBJECT("Msxml2.XMLHTTP")
loUrl = "https://app.afipsdk.com/api/v1/automations/" + loResponse.get("id")
* Realizamos la llamada a la API
loHttp.Open("GET", loUrl, .F.)
loHttp.setRequestHeader("Content-Type", "application/json")
loHttp.setRequestHeader("Authorization", "Bearer " + accessToken)
loHttp.Send()
* En caso de error lo mostramos por pantalla
IF loHttp.Status <> 200
? loHttp.responseText
RETURN
ENDIF
* Convertimos la respuesta en un objeto
loResponse = json_decode(loHttp.responseText)
* Checkeamos si se ya finalizo
IF loResponse.get("status") == "complete"
* Mostramos la respuesta por pantalla
? loHttp.responseText
EXIT
ENDIF
* Esperamos 5 segundos antes de volver a pedir los detalles
Sleep(5000)
ENDDORespuesta
{
"id": "0c31d74f-d672-4677-a00b-7dc865396c69",
"status": "complete",
"data": {
"contribuyente": {
"cuit": "20-99999999-1",
"tipoContribuyente": "MONOTRIBUTISTA | AUTONOMO",
"apellidoNombre": "PERSONA DE PRUEBA",
"domicilio": "CALLE FALSA 123 - CABA - BUENOS AIRES",
"dependencia": "AGENCIA-SEDE N.1 CABA",
"fechaConsulta": "23/4/2026 - 13:42"
},
"resumen": {
"fechaCalculo": "23/04/2026",
"periodoTotalCalculado": "01/2023 - 04/2026",
"totalSaldoDeudor": 0,
"totalSaldoAcreedor": 0,
"obligacionMensualDeudor": 0,
"obligacionMensualAcreedor": 0,
"accesoriosDeudor": 0,
"accesoriosAcreedor": 0
},
"consulta": {
"periodoDesde": "01/2023",
"periodoHasta": "04/2026",
"tipoContribuyente": "Todos",
"impuesto": "Todos",
"rangoPorPagina": 48,
"paginasRecorridas": 1,
"periodoMinimo": "01/2023",
"periodoMaximo": "04/2026"
},
"periodos": [
{
"periodo": "04/2026",
"saldo": -136628.92,
"saldoFechaCalculo": "23/04/2026",
"movimientos": [
{
"expandible": false,
"detalleDisponible": true,
"periodo": "04/2026",
"impuesto": "020",
"concepto": "019",
"subconcepto": "019",
"descripcion": "Obligacion Mensual Monot.",
"fechaMovimiento": "20/04/2026",
"debe": 122379.76,
"haber": null,
"saldo": null,
"detalle": {
"tipoDetalle": "OBLIG_PPAL",
"campos": {
"PERIODO": "01/04/2026",
"IMPUESTO (código)": "020",
"CONCEPTO (código)": "019",
"SUBCONCEPTO (código)": "019",
"DESCRIPCION": "OBLIGACION MENSUAL MONOT.",
"CATEGORIA": "G Locaciones de Servicio",
"ACTIVIDADES": "41",
"IMPORTE": "122,379.76",
"IMPORTE ORIGINAL": "122,379.76",
"FECHA DE VENCIMIENTO": "20/04/2026"
},
"valores": {
"periodo": "01/04/2026",
"impuestoCodigo": "020",
"conceptoCodigo": "019",
"subconceptoCodigo": "019",
"descripcion": "OBLIGACION MENSUAL MONOT.",
"categoria": "G Locaciones de Servicio",
"actividades": "41",
"importe": 122379.76,
"importeOriginal": 122379.76,
"fechaDeVencimiento": "20/04/2026"
}
}
},
{
"expandible": false,
"detalleDisponible": true,
"periodo": "04/2026",
"impuesto": "020",
"concepto": "019",
"subconcepto": "019",
"descripcion": "Pago Obligacion Mensual Monot.",
"fechaMovimiento": "01/04/2026",
"debe": null,
"haber": 122379.76,
"saldo": null
},
{
"expandible": true,
"detalleDisponible": true,
"periodo": "04/2026",
"impuesto": "AUT",
"concepto": "019",
"subconcepto": "019",
"descripcion": "Obligacion Mensual Autonomo.",
"fechaMovimiento": "05/05/2026",
"debe": 136628.92,
"haber": null,
"saldo": null
}
]
}
],
"movimientos": [
{
"expandible": false,
"detalleDisponible": true,
"periodo": "04/2026",
"impuesto": "020",
"concepto": "019",
"subconcepto": "019",
"descripcion": "Obligacion Mensual Monot.",
"fechaMovimiento": "20/04/2026",
"debe": 122379.76,
"haber": null,
"saldo": null,
"detalle": {
"tipoDetalle": "OBLIG_PPAL",
"campos": {
"PERIODO": "01/04/2026",
"IMPUESTO (código)": "020",
"CONCEPTO (código)": "019",
"SUBCONCEPTO (código)": "019",
"DESCRIPCION": "OBLIGACION MENSUAL MONOT.",
"CATEGORIA": "G Locaciones de Servicio",
"ACTIVIDADES": "41",
"IMPORTE": "122,379.76",
"IMPORTE ORIGINAL": "122,379.76",
"FECHA DE VENCIMIENTO": "20/04/2026"
},
"valores": {
"periodo": "01/04/2026",
"impuestoCodigo": "020",
"conceptoCodigo": "019",
"subconceptoCodigo": "019",
"descripcion": "OBLIGACION MENSUAL MONOT.",
"categoria": "G Locaciones de Servicio",
"actividades": "41",
"importe": 122379.76,
"importeOriginal": 122379.76,
"fechaDeVencimiento": "20/04/2026"
}
}
}
]
}
}