CFDI por dividendos

CFDI de Retenciones con el complemento de Dividendos

El complemento de Dividendos se agrega al CFDI de Retenciones e Información de Pagos cuando una persona moral reparte dividendos o utilidades a sus socios o accionistas. Se timbra con la clave de retención 14 (Dividendos o utilidades distribuidas) e informa el origen de la utilidad distribuida y los datos del impuesto asociado al pago.

Quién lo emite

Quién debe emitirel complemento de Dividendos

Sociedades que reparten utilidades

Personas morales que pagan dividendos a sus socios o accionistas.

Reembolsos y reducciones de capital

Sociedades que devuelven capital a sus socios.

Liquidación de la sociedad

Sociedades que reparten el remanente al disolverse.

Tres personas en una cafetería revisan información en una laptop

Qué datos lleva

Qué datos llevael complemento de Dividendos

  1. Origen de la utilidad

    CveTipDivOUtil

    De dónde provienen las utilidades que se reparten, por ejemplo de la CUFIN.

  2. Impuesto ya pagado

    MontISRAcredRetMexico

    El ISR acreditable o retenido en México por ese dividendo.

  3. Tipo de sociedad

    TipoSocDistrDiv

    Si la sociedad que reparte es nacional o extranjera.

  4. Monto acumulable

    MontDivAcumNal

    La parte del dividendo que se acumula para el socio.

¿Eres socio y solo recibiste tu constancia? No tienes que emitir nada: la emite la sociedad que te pagó. Para entender cómo tributa, consulta la guía del régimen de ingresos por dividendos.

Ejemplo

Ejemplo de CFDIpor dividendos

Una sociedad aprueba repartir utilidades entre tres socios. Para cada socio la empresa emite un CFDI de Retenciones: elige la clave 14, indica el origen de la utilidad en el complemento y registra la retención que determinó. Cada socio recibe el suyo con el monto que le corresponde.

Si el socio es persona física, la sociedad le retiene un 10 % de ISR sobre los dividendos de utilidades generadas a partir de 2014 (artículo 140 de la LISR). A una persona moral residente en México no se le aplica esa retención.

Formulario de Nueva Retención en Facturama con la clave 14, Dividendos o utilidades distribuidas
Facturama

Ejemplo de CFDI
emitido para el socio


Receptor
Socio o accionista
Clave de retención
14 - Dividendos o utilidades distribuidas
Complemento
Dividendos
Impuestos retenidos
Según el origen de la utilidad
Resultado
CFDI con UUID para cada socio

Para developers

Emisión por API del complemento de Dividendos

Si ya tienes tu propio sistema o ERP, puedes timbrar el CFDI de retenciones por dividendos directamente desde tu software con la API de CFDI de retenciones de Facturama.

Ver documentación API
POSThttps://apisandbox.facturama.mx/2/retenciones
$usuario  = 'TU_USUARIO_API';
$password = 'TU_PASSWORD_API';

$payload = [
    'CveRetenc' => '14',
    'FechaExp' => '2026-10-01T12:41:43',
    'DescRetenc' => 'No aplica',
    'LugarExpRetenc' => '42501',
    'Folio' => null,
    'Emisor' => [
        'RfcEmisor' => 'EKU9003173C9',
        'NomDenRazSocE' => 'ESCUELA KEMPER URGATE',
        'RegimenFiscalE' => '601',
    ],
    'Receptor' => [
        'Nacionalidad' => 'Nacional',
        'Nacional' => [
            'RfcRecep' => 'CACX7605101P8',
            'NomDenRazSocR' => 'XOCHILT CASAS CHAVEZ',
            'CurpR' => null,
            'DomicilioFiscalR' => '36257',
        ],
    ],
    'Periodo' => [
        'MesIni' => 1,
        'MesFin' => 1,
        'Ejerc' => 2026,
    ],
    'Totales' => [
        'MontoTotOperacion' => 200,
        'MontoTotGrav' => 200,
        'MontoTotExent' => 0,
        'MontoTotRet' => 20,
        'ImpRetenidos' => [
            [
                'BaseRet' => 200,
                'Impuesto' => '01',
                'MontoRet' => 20,
                'TipoPagoRet' => '03',
            ],
        ],
    ],
    'Complemento' => [
        'Dividendos' => [
            'Version' => '1.0',
            'DividOUtil' => [
                'CveTipDivOUtil' => 'Item01',
                'TipoSocDistrDiv' => 'SociedadNacional',
                'MontISRAcredRetMexico' => 100,
                'MontISRAcredRetExtranjero' => 100,
                'MontRetExtDivExt' => 300,
                'MontRetExtDivExtSpecified' => true,
                'MontISRAcredNal' => 300,
                'MontISRAcredNalSpecified' => true,
                'MontDivAcumNal' => 200,
                'MontDivAcumNalSpecified' => true,
                'MontDivAcumExt' => 200,
                'MontDivAcumExtSpecified' => true,
            ],
        ],
    ],
];

$ch = curl_init('https://apisandbox.facturama.mx/2/retenciones');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_USERPWD, "$usuario:$password");
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$respuesta = curl_exec($ch);
curl_close($ch);

echo $respuesta;
const usuario  = 'TU_USUARIO_API';
const password = 'TU_PASSWORD_API';

const payload = {
  CveRetenc: '14',
  FechaExp: '2026-10-01T12:41:43',
  DescRetenc: 'No aplica',
  LugarExpRetenc: '42501',
  Folio: null,
  Emisor: {
    RfcEmisor: 'EKU9003173C9',
    NomDenRazSocE: 'ESCUELA KEMPER URGATE',
    RegimenFiscalE: '601',
  },
  Receptor: {
    Nacionalidad: 'Nacional',
    Nacional: {
      RfcRecep: 'CACX7605101P8',
      NomDenRazSocR: 'XOCHILT CASAS CHAVEZ',
      CurpR: null,
      DomicilioFiscalR: '36257',
    },
  },
  Periodo: {
    MesIni: 1,
    MesFin: 1,
    Ejerc: 2026,
  },
  Totales: {
    MontoTotOperacion: 200,
    MontoTotGrav: 200,
    MontoTotExent: 0,
    MontoTotRet: 20,
    ImpRetenidos: [
      {
        BaseRet: 200,
        Impuesto: '01',
        MontoRet: 20,
        TipoPagoRet: '03',
      },
    ],
  },
  Complemento: {
    Dividendos: {
      Version: '1.0',
      DividOUtil: {
        CveTipDivOUtil: 'Item01',
        TipoSocDistrDiv: 'SociedadNacional',
        MontISRAcredRetMexico: 100,
        MontISRAcredRetExtranjero: 100,
        MontRetExtDivExt: 300,
        MontRetExtDivExtSpecified: true,
        MontISRAcredNal: 300,
        MontISRAcredNalSpecified: true,
        MontDivAcumNal: 200,
        MontDivAcumNalSpecified: true,
        MontDivAcumExt: 200,
        MontDivAcumExtSpecified: true,
      },
    },
  },
};

fetch('https://apisandbox.facturama.mx/2/retenciones', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    Authorization: 'Basic ' + btoa(`${usuario}:${password}`),
  },
  body: JSON.stringify(payload),
})
  .then((res) => res.json())
  .then((data) => console.log(data.Complemento.TimbreFiscalDigital.UUID));
import requests
from requests.auth import HTTPBasicAuth

usuario  = 'TU_USUARIO_API'
password = 'TU_PASSWORD_API'

payload = {
    'CveRetenc': '14',
    'FechaExp': '2026-10-01T12:41:43',
    'DescRetenc': 'No aplica',
    'LugarExpRetenc': '42501',
    'Folio': None,
    'Emisor': {
        'RfcEmisor': 'EKU9003173C9',
        'NomDenRazSocE': 'ESCUELA KEMPER URGATE',
        'RegimenFiscalE': '601',
    },
    'Receptor': {
        'Nacionalidad': 'Nacional',
        'Nacional': {
            'RfcRecep': 'CACX7605101P8',
            'NomDenRazSocR': 'XOCHILT CASAS CHAVEZ',
            'CurpR': None,
            'DomicilioFiscalR': '36257',
        },
    },
    'Periodo': {
        'MesIni': 1,
        'MesFin': 1,
        'Ejerc': 2026,
    },
    'Totales': {
        'MontoTotOperacion': 200,
        'MontoTotGrav': 200,
        'MontoTotExent': 0,
        'MontoTotRet': 20,
        'ImpRetenidos': [
            {
                'BaseRet': 200,
                'Impuesto': '01',
                'MontoRet': 20,
                'TipoPagoRet': '03',
            },
        ],
    },
    'Complemento': {
        'Dividendos': {
            'Version': '1.0',
            'DividOUtil': {
                'CveTipDivOUtil': 'Item01',
                'TipoSocDistrDiv': 'SociedadNacional',
                'MontISRAcredRetMexico': 100,
                'MontISRAcredRetExtranjero': 100,
                'MontRetExtDivExt': 300,
                'MontRetExtDivExtSpecified': True,
                'MontISRAcredNal': 300,
                'MontISRAcredNalSpecified': True,
                'MontDivAcumNal': 200,
                'MontDivAcumNalSpecified': True,
                'MontDivAcumExt': 200,
                'MontDivAcumExtSpecified': True,
            },
        },
    },
}

respuesta = requests.post(
    'https://apisandbox.facturama.mx/2/retenciones',
    json=payload,
    auth=HTTPBasicAuth(usuario, password),
)

print(respuesta.json())
String usuario  = "TU_USUARIO_API";
String password = "TU_PASSWORD_API";
String credenciales = Base64.getEncoder()
    .encodeToString((usuario + ":" + password).getBytes());

String payload = """
      {
        "CveRetenc": "14",
        "FechaExp": "2026-10-01T12:41:43",
        "DescRetenc": "No aplica",
        "LugarExpRetenc": "42501",
        "Folio": null,
        "Emisor": {
          "RfcEmisor": "EKU9003173C9",
          "NomDenRazSocE": "ESCUELA KEMPER URGATE",
          "RegimenFiscalE": "601"
        },
        "Receptor": {
          "Nacionalidad": "Nacional",
          "Nacional": {
            "RfcRecep": "CACX7605101P8",
            "NomDenRazSocR": "XOCHILT CASAS CHAVEZ",
            "CurpR": null,
            "DomicilioFiscalR": "36257"
          }
        },
        "Periodo": {
          "MesIni": 1,
          "MesFin": 1,
          "Ejerc": 2026
        },
        "Totales": {
          "MontoTotOperacion": 200,
          "MontoTotGrav": 200,
          "MontoTotExent": 0,
          "MontoTotRet": 20,
          "ImpRetenidos": [
            {
              "BaseRet": 200,
              "Impuesto": "01",
              "MontoRet": 20,
              "TipoPagoRet": "03"
            }
          ]
        },
        "Complemento": {
          "Dividendos": {
            "Version": "1.0",
            "DividOUtil": {
              "CveTipDivOUtil": "Item01",
              "TipoSocDistrDiv": "SociedadNacional",
              "MontISRAcredRetMexico": 100,
              "MontISRAcredRetExtranjero": 100,
              "MontRetExtDivExt": 300,
              "MontRetExtDivExtSpecified": true,
              "MontISRAcredNal": 300,
              "MontISRAcredNalSpecified": true,
              "MontDivAcumNal": 200,
              "MontDivAcumNalSpecified": true,
              "MontDivAcumExt": 200,
              "MontDivAcumExtSpecified": true
            }
          }
        }
      }
    """;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://apisandbox.facturama.mx/2/retenciones"))
    .header("Content-Type", "application/json")
    .header("Authorization", "Basic " + credenciales)
    .POST(HttpRequest.BodyPublishers.ofString(payload))
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
var usuario  = "TU_USUARIO_API";
var password = "TU_PASSWORD_API";

var payload = new
{
    CveRetenc = "14",
    FechaExp = "2026-10-01T12:41:43",
    DescRetenc = "No aplica",
    LugarExpRetenc = "42501",
    Folio = (string?)null,
    Emisor = new
    {
        RfcEmisor = "EKU9003173C9",
        NomDenRazSocE = "ESCUELA KEMPER URGATE",
        RegimenFiscalE = "601",
    },
    Receptor = new
    {
        Nacionalidad = "Nacional",
        Nacional = new
        {
            RfcRecep = "CACX7605101P8",
            NomDenRazSocR = "XOCHILT CASAS CHAVEZ",
            CurpR = (string?)null,
            DomicilioFiscalR = "36257",
        },
    },
    Periodo = new
    {
        MesIni = 1,
        MesFin = 1,
        Ejerc = 2026,
    },
    Totales = new
    {
        MontoTotOperacion = 200,
        MontoTotGrav = 200,
        MontoTotExent = 0,
        MontoTotRet = 20,
        ImpRetenidos = new[]
        {
            new
            {
                BaseRet = 200,
                Impuesto = "01",
                MontoRet = 20,
                TipoPagoRet = "03",
            },
        },
    },
    Complemento = new
    {
        Dividendos = new
        {
            Version = "1.0",
            DividOUtil = new
            {
                CveTipDivOUtil = "Item01",
                TipoSocDistrDiv = "SociedadNacional",
                MontISRAcredRetMexico = 100,
                MontISRAcredRetExtranjero = 100,
                MontRetExtDivExt = 300,
                MontRetExtDivExtSpecified = true,
                MontISRAcredNal = 300,
                MontISRAcredNalSpecified = true,
                MontDivAcumNal = 200,
                MontDivAcumNalSpecified = true,
                MontDivAcumExt = 200,
                MontDivAcumExtSpecified = true,
            },
        },
    },
};

using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Basic",
        Convert.ToBase64String(Encoding.UTF8.GetBytes($"{usuario}:{password}")));

var response = await client.PostAsJsonAsync("https://apisandbox.facturama.mx/2/retenciones", payload);
Console.WriteLine(await response.Content.ReadAsStringAsync());
require 'net/http'
require 'json'
require 'uri'

usuario  = 'TU_USUARIO_API'
password = 'TU_PASSWORD_API'

payload = {
  CveRetenc: '14',
  FechaExp: '2026-10-01T12:41:43',
  DescRetenc: 'No aplica',
  LugarExpRetenc: '42501',
  Folio: nil,
  Emisor: {
    RfcEmisor: 'EKU9003173C9',
    NomDenRazSocE: 'ESCUELA KEMPER URGATE',
    RegimenFiscalE: '601',
  },
  Receptor: {
    Nacionalidad: 'Nacional',
    Nacional: {
      RfcRecep: 'CACX7605101P8',
      NomDenRazSocR: 'XOCHILT CASAS CHAVEZ',
      CurpR: nil,
      DomicilioFiscalR: '36257',
    },
  },
  Periodo: {
    MesIni: 1,
    MesFin: 1,
    Ejerc: 2026,
  },
  Totales: {
    MontoTotOperacion: 200,
    MontoTotGrav: 200,
    MontoTotExent: 0,
    MontoTotRet: 20,
    ImpRetenidos: [
      {
        BaseRet: 200,
        Impuesto: '01',
        MontoRet: 20,
        TipoPagoRet: '03',
      },
    ],
  },
  Complemento: {
    Dividendos: {
      Version: '1.0',
      DividOUtil: {
        CveTipDivOUtil: 'Item01',
        TipoSocDistrDiv: 'SociedadNacional',
        MontISRAcredRetMexico: 100,
        MontISRAcredRetExtranjero: 100,
        MontRetExtDivExt: 300,
        MontRetExtDivExtSpecified: true,
        MontISRAcredNal: 300,
        MontISRAcredNalSpecified: true,
        MontDivAcumNal: 200,
        MontDivAcumNalSpecified: true,
        MontDivAcumExt: 200,
        MontDivAcumExtSpecified: true,
      },
    },
  },
}

uri  = URI.parse('https://apisandbox.facturama.mx/2/retenciones')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri.request_uri, { 'Content-Type' => 'application/json' })
request.basic_auth(usuario, password)
request.body = payload.to_json

puts http.request(request).body

Antes de timbrar

Errores frecuentes con el complemento de Dividendos

ERROR 01

Un solo CFDI para todos los socios

Causa

El comprobante tiene un solo receptor.

Solución

Emite un CFDI por cada socio, con su monto.

ERROR 02

Elegir mal el origen de la utilidad

Causa

No es lo mismo «Proviene de CUFIN» que «No proviene de CUFIN»: los dividendos que no salen de la CUFIN pagan ISR corporativo al distribuirse (artículo 10 de la LISR).

Solución

Confirma el origen en la CUFIN antes de elegir el tipo de dividendo.

ERROR 03

Olvidar la retención del 10 %

Causa

A las personas físicas se les retiene el 10 % sobre dividendos de utilidades generadas desde 2014.

Solución

Regístrala en impuestos retenidos. Si no se retiene, la sociedad es responsable solidaria por ese impuesto (artículo 26 del CFF).

Precio

Precio del complemento de Dividendos

El módulo se contrata una vez y desbloquea los complementos disponibles. Funciona distinto a los complementos individuales: esto es lo que cambia.

Módulo de Retenciones

$1,650 MXN / año

IVA incluido · vigencia de 12 meses a partir de la compra

Cuando uses los 25 folios incluidos, los que timbres se descuentan de tu suscripción principal.

Contratar ahora

Dudas

Preguntas frecuentes sobre el complemento de Dividendos

La 14, Dividendos o utilidades distribuidas, del catálogo c_CveRetenc del SAT. Sobre esa clave se agrega el complemento de Dividendos.

El 10 % sobre el monto del dividendo, cuando proviene de utilidades generadas a partir de 2014. Lo establecen el artículo 140 de la Ley del ISR y sus disposiciones transitorias de 2014, y tiene el carácter de pago definitivo. A los residentes en el extranjero también se les retiene un 10 % (artículo 164), salvo lo que disponga un tratado. El complemento no calcula la tasa: documenta la retención que determinaste.

La CUFIN, o cuenta de utilidad fiscal neta, acumula las utilidades por las que la empresa ya pagó ISR. Los dividendos que salen de ella no vuelven a pagar ISR corporativo; los que no provienen de la CUFIN sí, conforme al artículo 10 de la Ley del ISR.

Sí. El CFDI de Retenciones tiene un solo receptor, así que cada accionista recibe el suyo con el monto que le corresponde.

Va incluido en el Módulo de Retenciones: $1,650 MXN al año (IVA incluido), sin cobro adicional por complemento, e incluye 25 folios para timbrar. Cuando los uses, los folios se descuentan de tu plan de Facturación, que debe estar activo. Puedes probarlo antes en el sandbox de Facturama, que no tiene costo ni validez fiscal.

Sí. Cuando una persona moral paga honorarios o arrendamiento a una persona física, el CFDI de ingresos de esta, con la retención desglosada, puede servir como constancia de retención; esa facilidad no aplica a los dividendos: la sociedad que reparte y retiene sigue emitiendo el CFDI de Retenciones.

Incluidos en el mismo módulo

Otros complementos del CFDI de retenciones

Pagos a extranjeros

Residentes en el extranjero

Retenciones por pagos a residentes en el extranjero sin establecimiento permanente en México. Corresponde a la clave 18 de retención.

Ver complemento

Enajenación de acciones

Casas de bolsa e intermediarios bursátiles

Retenciones derivadas de la compraventa o enajenación de títulos accionarios. Corresponde a las claves 06 y 19 de retención.

Ver complemento

Premios

Rifas, sorteos y concursos

Captura entidad federativa, monto gravado y exento. Corresponde a la clave 20 de retención.

Ver complemento

Intereses

Bancos, fintechs y casas de bolsa

Interés nominal, real y pérdida. Corresponde a la clave 16 de retención.

Ver complemento

Solo para API

Plataformas tecnológicas

Marketplaces y apps que integran por API

Retenciones de ISR e IVA a quienes prestan servicios o venden a través de tu plataforma. Corresponde a la clave 26 de retención.

Ver complemento