Facturación CFDI 4.0 con Carta Porte 3.1
Emisión de comprobantes fiscales digitales ante el SAT vía FacturAPI, con vista previa, validación previa y manejo de errores específicos del catálogo SAT.
Tipos de factura que emite el sistema
Carta Porte
CFDI tipo "I" (Ingreso) con complemento Carta Porte 3.1 para embarques nacionales o internacionales.
Servicio Logístico
CFDI tipo "I" sin complemento Carta Porte. Se usa cuando se factura solo el servicio.
Nota de Crédito
CFDI tipo "E" (Egreso) para devolución parcial o total de una factura emitida.
Complemento de Pago
CFDI tipo "P" para acreditar pagos de facturas con método PPD (Pago en Parcialidades o Diferido).
Flujo de emisión
Pre-factura
Desde el detalle del embarque, abre Pre-factura. El sistema arma el borrador con cliente, conceptos, impuestos y datos de Carta Porte.
Vista previa
Se muestra el JSON que se enviará a FacturAPI con todos los campos editables. Puedes ajustar mercancía, vehículo, ubicaciones, régimen aduanero y más antes de timbrar.
Validación previa
El servicio CartaPorteValidacionService revisa que los datos cumplan con el catálogo SAT (c_Estado, c_Municipio, c_Localidad, c_TipoMateria, etc.) y bloquea el timbrado si detecta problemas conocidos.
Timbrado
Se llama a FacturAPI. Si responde con éxito, el sistema descarga el PDF y XML, los guarda y marca el embarque como Facturado.
Entrega al cliente
El usuario con permiso facturacion.send puede enviar la factura por correo al cliente con PDF y XML adjuntos.
Multi-RFC emisor
El sistema soporta varias razones sociales emisoras simultáneamente. Cada RazonSocialEmisora tiene sus propias credenciales de FacturAPI o Facturama, encriptadas en base de datos.
Al crear un embarque, eliges qué razón social timbrará. Esto permite operar múltiples entidades fiscales desde un solo TMS.
Validación contra el catálogo SAT
Antes de timbrar, el sistema valida campos contra los catálogos oficiales del SAT. Los más críticos:
| Campo | Catálogo SAT |
|---|---|
| Estado | c_Estado (32 entidades) |
| Municipio | c_Municipio |
| Localidad | c_Localidad |
| Código postal | c_CodigoPostal |
| Material peligroso | c_MaterialPeligroso |
| Tipo de embalaje | c_TipoEmbalaje |
| Tipo de materia | c_TipoMateria |
| Régimen aduanero | c_RegimenAduanero |
| Clave de producto | c_ClaveProdServ |
| Clave de unidad | c_ClaveUnidad |
Los códigos postales se cargan de forma masiva desde el catálogo SAT con php artisan sat:importar-codigos-postales. Esto permite validar la combinación CP + colonia + localidad sin pegarle al SAT en cada timbrado.
Errores SAT que el sistema traduce
Cuando FacturAPI o el SAT responden con un error específico de Carta Porte, TMS lo traduce a una explicación accionable dentro de la propia pre-factura.
El nodo RegimenesAduaneros es obligatorio cuando TranspInternac="Sí" y prohibido cuando es "No". Verifica que el tipo de servicio del embarque sea correcto.
El código de colonia no pertenece al CP en el catálogo SAT. Edita la ubicación o deja la colonia vacía.
La combinación estado/municipio/localidad no existe en el catálogo. Deja la localidad vacía o corrígela según c_Localidad.
El PesoBrutoTotal debe ser exactamente la suma de los PesoEnKg de cada mercancía. Edita el peso en los datos de Carta Porte.
El valor declarado en MaterialPeligroso no coincide con lo esperado para el BienesTransp de la mercancía. Verifica el catálogo.
TipoMateria se incluyó en un transporte nacional. Verifica que el embarque no esté marcado como internacional o quita el campo del XML.
DescripcionMateria solo se permite cuando TipoMateria="05". Elimínala o ajusta el TipoMateria.
DocumentacionAduanera (pedimento) se incluyó en un transporte nacional. Quita el pedimento o usa Carta Porte Propia.
Cada uno de estos errores tiene su propia página en Solución de Problemas con causa y pasos detallados.
Cancelación de facturas
Selecciona la factura
Abre el listado de facturas emitidas y elige Cancelar en la factura objetivo.
Captura motivo SAT
Selecciona uno de los motivos oficiales del SAT (01, 02, 03 o 04). Si el motivo es 01, captura el UUID de la factura sustituta.
Envío a FacturAPI
El sistema envía la solicitud de cancelación. Si requiere aceptación del receptor, queda en estado En proceso.
Verificación periódica
El comando cancelaciones:verificar-pendientes consulta el SAT regularmente para actualizar el estatus de la cancelación.
Notas de crédito
Las notas de crédito (CFDI tipo "E") se emiten desde el detalle de una factura emitida. Permiten devolver parcial o totalmente una factura, dejando un saldo pendiente que se aplica contra cobranza.
Consultar estatus SAT
El job ConsultarEstatusSatJob y el comando cancelaciones:verificar-pendientes mantienen sincronizado el estatus de cancelación entre FacturAPI y el SAT real, sin bloquear la interfaz del usuario.
Permisos relacionados
| Permiso | Función |
|---|---|
facturas.view | Ver facturas emitidas |
facturas.create | Emitir CFDI desde un embarque |
facturas.cancel | Cancelar factura ante el SAT |
facturas.viewXML | Descargar XML |
facturas.download | Descargar PDF |
facturas.reenviar | Reenviar factura por correo |
facturas.consultarSAT | Consultar estatus en el SAT |
facturas.notaCredito | Generar nota de crédito |
facturacion.send | Enviar al cliente final |
Last updated today
Built with Documentation.AI