API DEL COMPLEMENTO DE INTERESES
Miles de constancias de intereses, en un proceso batch
Si pagas intereses a tus clientes, cada enero te toca emitirles su constancia. La API convierte esa temporada en un script.
¿Qué es el complemento de intereses?
Es la extensión del CFDI de retenciones que se usa cuando lo que pagaste fueron intereses: rendimientos de una cuenta, de un pagaré, de un instrumento de inversión. Además del monto retenido, el SAT te pide desglosar el interés nominal, el interés real y, si la hubo, la pérdida.
Quien lo emite: bancos, sofipos, fintechs de inversión, casas de bolsa, cajas de ahorro. Cualquiera que le pague rendimientos a personas físicas y tenga que retenerles ISR.
¿No vas a integrarlo por API? Puedes emitir la constancia desde la plataforma web con el complemento de intereses del Módulo de Retenciones.
El endpoint
Es el mismo de retenciones 2.0 — el complemento viaja dentro del comprobante, no en una ruta aparte:
El body
Fíjate en dos cosas: CveRetenc va en "16", que es la clave de
intereses del catálogo del SAT, y el complemento cuelga de
Complemento.Intereses.
{
"FolioInt": "216647",
"FechaExp": "2021-10-04T08:08:01-06:00",
"CveRetenc": "16",
"Emisor": {
"RFCEmisor": "EKU9003173C9",
"NomDenRazSocE": "Xenon_Industrial_Articles"
},
"Receptor": {
"Nacionalidad": "Nacional",
"Nacional": {
"RFCRecep": "MISC491214B86",
"NomDenRazSocR": "MIGUEL SANCHEZ CARRILLO"
}
},
"Periodo": {
"MesIni": "01",
"MesFin": "12",
"Ejerc": "2021"
},
"Totales": {
"montoTotOperacion": "1681.06",
"montoTotGrav": "1681.06",
"montoTotExent": "0.00",
"montoTotRet": "16.8106"
},
"Complemento": {
"Intereses": {
"Version": "1.0",
"SistFinanciero": "SI",
"RetiroAORESRetInt": "NO",
"OperFinancDerivad": "SI",
"MontIntNominal": 134.48,
"MontIntReal": 16.81,
"Perdida": 100
}
}
}
Periodo de una constancia anual va de MesIni 01 a
MesFin 12. Es de los campos que más se copia mal del ejemplo de la
documentación, donde suele aparecer un solo mes.
Nominal, real y pérdida
Los tres campos que definen este complemento, y donde conviene tener clara la diferencia antes de mapear tus datos:
-
MontIntNominal— los intereses que efectivamente pagaste, sin ajustar. -
MontIntReal— los intereses una vez descontado el efecto de la inflación. Es el que sirve de base para la retención. -
Perdida— cuando la inflación se comió el rendimiento y el interés real resulta negativo, la pérdida se declara aquí.
Ese último campo es el que sorprende a quien viene de otros esquemas: sí, un instrumento puede generar una pérdida fiscal aunque haya pagado intereses. Si tu sistema solo guarda el interés bruto, te va a faltar información para llenar el complemento — y eso es un problema de modelo de datos, no de integración.
Los tres campos de bandera —SistFinanciero,
RetiroAORESRetInt y OperFinancDerivad— van en
"SI" o "NO" según qué tipo de entidad seas y qué operación
estés reportando.
Por qué esto se automatiza siempre
El complemento de intereses tiene una característica que lo distingue del resto: casi nadie emite uno. Se emiten miles, todos en las mismas semanas de enero y febrero, uno por cada cliente que tuvo rendimientos el año anterior.
A esa escala la plataforma web no es una opción, y hacerlo con hojas de cálculo es cómo se producen los errores que luego hay que cancelar de uno en uno. El patrón habitual es un proceso batch que recorre la cartera, arma un payload por cliente y guarda el UUID resultante junto al registro.
Dos consejos de quien ya pasó por ahí: guarda el Id de cada constancia
en tu base de datos —lo vas a necesitar cuando alguien pida que se la reenvíes— y
haz una corrida completa en sandbox contra datos reales del año anterior
antes de timbrar en producción. Detectar un campo mal mapeado en 4.000 constancias ya
timbradas es una semana perdida.
Lo demás del ciclo de vida
Con el Id que devuelve el timbrado puedes consultar el detalle, descargar el
XML o el PDF, enviarlo por correo al receptor y cancelarlo. El envío por correo es
especialmente útil aquí: en vez de montar tu propio mailing de constancias, disparas el
envío desde la misma API.
Preguntas frecuentes
¿Qué clave de retención corresponde a intereses?
La 16 del catálogo c_CveRetenc del SAT. Va en el campo
CveRetenc del comprobante.
¿Cuál es la diferencia entre interés nominal y real?
El nominal es lo que pagaste sin ajustar. El real descuenta el efecto inflacionario y es sobre el que se calcula la retención de ISR.
¿Qué pongo en Perdida si no hubo?
El campo solo aplica cuando el interés real es negativo. Si el rendimiento superó a la inflación, no hay pérdida que declarar.
¿Puedo emitir constancias de varios ejercicios a la vez?
Cada comprobante cubre un periodo, definido por MesIni, MesFin y
Ejerc. Para dos ejercicios necesitas dos constancias.
Prueba tu batch antes de enero
El sandbox no consume folios: puedes correr tu cartera completa de prueba las veces que haga falta.
Crear cuenta y probar Hablar con un ingeniero