Emisión de CFDI para sector primario

Contenido

Características generales

Reachcore ofrece el servicio para la emisión de CFDI para sector primario en su calidad de Proveedor de Certificación de Expedición de CFDI a través del adquirente de Bienes o Servicio PCECFDI. Para poder emitir este tipo de comprobantes, considera que debes contar con lo siguiente:

  • Contrato de servicios con Reachcore. En caso de no tener uno, por favor envía un correo a sales-mexico@sovos.com
  • Cuenta Reachcore configurada para emisión de Sector Primario. Si necesitas esta funcionalidad, por favor contáctanos a través de MEX-soporte@sovos.com
  • API Key en tu cuenta Reachcore, ya que éste es un identificador que te autentica en los Web Services de la plataforma. Para generar el API Key, puedes consultar este artículo: Generar API Key para Web Services.
  • Registro en el portal de Reachcore del RFC del Emisor del Comprobante, junto con el Certificado de Sello Digital correspondiente. Para llevar a cabo este proceso, puedes consultar el siguiente artículo: Agregar una razón social (emisor de comprobantes).
  • XML del Comprobante considerando que éste cumpla con el esquema (estructura) de un CFDI 3.3 según Anexo 20, así como respetar las reglas de emisión definidas dentro del Anexo 20 y las distintas guías de llenado que publica el SAT.
  • Permisos y privilegios para invocar un web service publicado en internet mediante una conexión segura (SSL).

Además, considera que:

  • Los PCECFDI solicitamos al SAT aprobación para la emisión de cada una de las facturas que se solicitan.
  • En caso de rechazo, es posible que el RFC del productor o minero tenga obligaciones adicionales o distintas a las de este sector y por ende, no es sujeto de la facilidad para emisión de Sector Primario. En todo caso, deberás solicitar al productor o minero que acuda a la Administración Desconcentrada de Servicios al Contribuyente que le corresponda para que solicite orientación y aclare o regularice su situación.

La autoridad proporciona el siguiente link a manera de orientación:

Todas las peticiones de Emisión de CFDI de Sector Primario que se manejan dentro de Reachcore asumen que el Emisor y el Receptor ya se encuentran dentro del padrón de Sector Primario. Reachcore no lleva a cabo la inscripción en el padrón de Sector Primario.

Emisión de CFDI de Sector Primario

A diferencia de un CFDI, el CFDI de Sector Primario es sellado con el Certificado Especial de Sello Digital (CESD) y certificado por medio del CSD del PCECFDI. En este sentido, el CSD del Emisor del CFDI de Sector Primario (el Receptor) no es visible dentro del XML del CFDI de Sector Primario y no entra en el esquema de Timbrado tradicional. Para llevar a cabo la consulta dentro del Padrón de Sector Primario se requiere del CSD del Emisor del CFDI de Sector Primario (el Receptor del CFDI).

Un CFDI de Sector Primario toma la base de un CFDI, por lo que todas las reglas de validación para la emisión de un CFDI aplican también para CFDI de Sector Primario: las validaciones incluyen que los RFC involucrados en la emisión existan dentro de la lista de RFC Inscritos no cancelados.

Por medio del servicio web de emisión, y un TransactionProperty dentro de la petición de emisión, se puede hacer la emisión de un CFDI de Sector Primario. El TransactionProperty se envía dentro de la estructura TransactionProperties del servicio de emisión con un Key con nombre PSECFDI y el Value en true.

Ejemplo de emisión de CFDI

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://www.reachcore.com/CFDI/customHeaders" xmlns:urn="urn:reachcore.com:services:api:ws:pacservices:6.0">
   <soapenv:Header>
      <cus:ApiKey>?</cus:ApiKey>
   </soapenv:Header>
   <soapenv:Body>
      <urn:EmitirComprobanteRequest>
         <urn:Comprobante><![CDATA[<cfdi:Comprobante Version="3.3" Fecha="2018-11-22T11:35:00" Sello="" FormaPago="01" NoCertificado="" Certificado="" SubTotal="10000.00" Moneda="MXN" Total="10000.00" TipoDeComprobante="I" MetodoPago="PUE" LugarExpedicion="06600" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd" xmlns:cfdi="http://www.sat.gob.mx/cfd/3">
	<cfdi:Emisor Rfc="AAQM610917QJA" Nombre="CARLOS FERNANDO Virtual SANCHEZ" RegimenFiscal="601" />
	<cfdi:Receptor Rfc="LAN7008173R5" Nombre="CINDEMEX SA DE CV" UsoCFDI="P01" />
	<cfdi:Conceptos>
		<cfdi:Concepto ClaveProdServ="84111506" Cantidad="1" ClaveUnidad="EA" Descripcion="Bien o servicio a facturar" ValorUnitario="10000.00" Importe="10000.00" />
	</cfdi:Conceptos>
</cfdi:Comprobante>]]></urn:Comprobante>
         <urn:TransactionProperties>
            <urn:TransactionProperty Key="PSECFDI" Value="true"/>
         </urn:TransactionProperties>
      </urn:EmitirComprobanteRequest>
   </soapenv:Body>
</soapenv:Envelope>

Emisión por medio de firma de origen

El servicio de emisión requiere tener del CSD del Receptor del CFDI (el Emisor del CFDI de Sector Primario). Para escenarios en donde no sea posible registrar el CSD a través del Portal de administración de Reachcore, se ha implementado la funcionalidad de recibir una solicitud firmada de origen, es decir: no es requisito registrar en Reachcore la llave pública, privada ni la contraseña del Certificado de Sello Digital (CSD).

La firma de origen contiene la estructura XML para llevar a cabo la consulta al padrón de Sector Primario en el SAT para obtener la autorización correspondiente y así poder emitir y timbrar el CFDI de Sector Primario. La firma del XML se lleva a cabo con el CSD del Receptor del CFDI.

Para hacer uso de la firma de origen, se debe de considerar lo siguiente:

  • Se debe generar un XML con la siguiente estructura. Es importante que en el atributo rfcPrestadorAutorizado el valor siempre sea: ASE0201179X0
<ConsultaSectorPrimario rfcEmisor="AAQM610917QJA" rfcReceptor="LAN7008173R5" rfcPrestadorAutorizado="ASE0201179X0" tsSolicitud="2018-11-22T18:36:30" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.sat.gob.mx/idc/consulta/SectorPrimario"/>
  • Se debe firmar el XML con el estándar XML-Signature, para que se genere un XML similar al siguiente:
<ConsultaSectorPrimario rfcEmisor="AAQM610917QJA" rfcReceptor="LAN7008173R5" rfcPrestadorAutorizado="ASE0201179X0" tsSolicitud="2018-11-22T18:36:30" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.sat.gob.mx/idc/consulta/SectorPrimario">
	<Signature Id="SelloReceptor" xmlns="http://www.w3.org/2000/09/xmldsig#">
		<SignedInfo>
			<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
			<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
			<Reference URI="">
				<Transforms>
					<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
				</Transforms>
				<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
				<DigestValue>76z5m3SKkyPbAqx22d1PnCEsAEw=</DigestValue>
			</Reference>
		</SignedInfo>
		<SignatureValue>JiNw/02UeQOotQ3z6oVS1vgZwc1tC37FJ1DjuqhtLdUrB6wlsqeMqkinBuLw1h9r5HcwgrkSM1KuaC/FsCXX6vfP5DNGz++ZR/uIfGjJ8z2Tj5zTMyfuSHIPoaqL6qU1EfEHcl+lRG7h3jfiWSX0SGzPBPG3tgZVxkAWCMvQU6wzKSLl8kFTXf/x9PqciItNC34Tx54ysetO53/vRdDBZG1wlEXP77ZtxkJyvLgXaz1i2tnFHDxqtiShsO91RTxdVtdnKI1/GjsZtn3AW5QL1ENMx0lmAyEwn/L/yD6deymrwT3wS5qMhTJC306Rq0XCX4uqdan5WCFzE4E/fSC1yA==</SignatureValue>
		<KeyInfo>
			<KeyName>20001000000300022815</KeyName>
			<KeyValue>
				<RSAKeyValue>
					<Modulus>gvvCiCFDFVaYX7xdVRhp/38ULWto/LKDSZy1yrXKpaqFXqERJWF78YHKf3N5GBoXgzwFPuDX+5kvY5wtYNxx/Owu2shNZqFFh6EKsysQMeP5rz6kE1gFYenaPEUP9zj+h0bL3xR5aqoTsqGF24mKBLoiaK44pXBzGzgsxZishVJVM6XbzNJVonEUNbI25DhgWAd86f2aU3BmOH2K1RZx41dtTT56UsszJls4tPFODr/caWuZEuUvLp1M3nj7Dyu88mhD2f+1fA/g7kzcU/1tcpFXF/rIy93APvkU72jwvkrnprzs+SnG81+/F16ahuGsb2EZ88dKHwqxEkwzhMyTbQ==</Modulus>
					<Exponent>AQAB</Exponent>
				</RSAKeyValue>
			</KeyValue>
		</KeyInfo>
	</Signature>
</ConsultaSectorPrimario>
La firma se muestra formateada para efectos ilustrativos. La firma que se espera debe venir en una sóla línea
  • En la petición de emisión, se debe hacer uso de los siguientes TransactionProperty dentro de la sección de TransactionProperties:
Propiedad Valores en Key y Value Descripción
PSECFDI <TransactionProperty Key="PSECFDI" Value="true"> Siempre se debe enviar esta propiedad con el valor true
Firma_PSECFDI <TransactionProperty Key="Firma_PSECFDI" Value="{xml en BASE64}"> Contiene el XML de ConsultaSectorPrimario firmado con el CSD del RFC Receptor del CFDI. El XML firmado debe viajar en BASE64
CertificadoReceptor_PSECFDI <TransactionProperty Key="CertificadoReceptor_PSECFDI" Value="{certificado en BASE64}"> Llave pública del CSD (archivo con extensión .CER) con la cual se realizó la firma del XML en BASE64.


Antes de emitir el Comprobante, se realizan las siguientes validaciones:

  1. El XML firmado, debe ser un XML conforme la definición de la consulta que se realiza hacia el SAT.
  2. Los RFC del XML firmado, deben corresponder a los especificados dentro del comprobante.
  3. Se verifica la firma criptográficamente.
  4. Se verifica que el certificado con el que se ha firmado pertenezca al RFC Receptor y que haya sido emitido por el SAT.
  5. Se verifica que el valor del atributo tsSolicitud, no esté en el futuro ni exceda las 72 horas al momento del procesamiento.
Las validaciones vigentes para emisión de un CFDI 3.3 según Anexo 20 siguen aplicando y no son excluyentes a estas validaciones

Ejemplo de emisión de CFDI de Sector Primario con firma de origen

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://www.reachcore.com/CFDI/customHeaders" xmlns:urn="urn:reachcore.com:services:api:ws:pacservices:6.0">
   <soapenv:Header>
      <cus:ApiKey>?</cus:ApiKey>
   </soapenv:Header>
   <soapenv:Body>
      <urn:EmitirComprobanteRequest>
         <urn:Comprobante><![CDATA[<cfdi:Comprobante Version="3.3" Fecha="2018-11-22T11:35:00" Sello="" FormaPago="01" NoCertificado="" Certificado="" SubTotal="10000.00" Moneda="MXN" Total="10000.00" TipoDeComprobante="I" MetodoPago="PUE" LugarExpedicion="06600" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd" xmlns:cfdi="http://www.sat.gob.mx/cfd/3">
	<cfdi:Emisor Rfc="AAQM610917QJA" Nombre="CARLOS FERNANDO Virtual SANCHEZ" RegimenFiscal="601" />
	<cfdi:Receptor Rfc="LAN7008173R5" Nombre="CINDEMEX SA DE CV" UsoCFDI="P01" />
	<cfdi:Conceptos>
		<cfdi:Concepto ClaveProdServ="84111506" Cantidad="1" ClaveUnidad="EA" Descripcion="Bien o servicio a facturar" ValorUnitario="10000.00" Importe="10000.00" />
	</cfdi:Conceptos>
</cfdi:Comprobante>]]></urn:Comprobante>
         <urn:TransactionProperties>
            <urn:TransactionProperty Key="PSECFDI" Value="true"/>
            <urn:TransactionProperty Key="Firma_PSECFDI" Value="PENvbnN1bHRhU2VjdG9yUHJpbWFyaW8gcmZjRW1pc29yPSJBQVFNNjEwOTE3UUpBIiByZmNSZWNlcHRvcj0iTEFONzAwODE3M1I1IiByZmNQcmVzdGFkb3JBdXRvcml6YWRvPSJBU0UwMjAxMTc5WDAiIHRzU29saWNpdHVkPSIyMDE4LTExLTIyVDE4OjM2OjMwIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3d3dy5zYXQuZ29iLm14L2lkYy9jb25zdWx0YS9TZWN0b3JQcmltYXJpbyI+PFNpZ25hdHVyZSBJZD0iU2VsbG9SZWNlcHRvciIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxTaWduZWRJbmZvPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMteG1sLWMxNG4tMjAwMTAzMTUiIC8+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSIgLz48UmVmZXJlbmNlIFVSST0iIj48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiIC8+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSIgLz48RGlnZXN0VmFsdWU+NzZ6NW0zU0treVBiQXF4MjJkMVBuQ0VzQUV3PTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPjxTaWduYXR1cmVWYWx1ZT5KaU53LzAyVWVRT290UTN6Nm9WUzF2Z1p3YzF0QzM3RkoxRGp1cWh0TGRVckI2d2xzcWVNcWtpbkJ1THcxaDlyNUhjd2dya1NNMUt1YUMvRnNDWFg2dmZQNUROR3orK1pSL3VJZkdqSjh6MlRqNXpUTXlmdVNISVBvYXFMNnFVMUVmRUhjbCtsUkc3aDNqZmlXU1gwU0d6UEJQRzN0Z1pWeGtBV0NNdlFVNnd6S1NMbDhrRlRYZi94OVBxY2lJdE5DMzRUeDU0eXNldE81My92UmREQlpHMXdsRVhQNzdadHhrSnl2TGdYYXoxaTJ0bkZIRHhxdGlTaHNPOTFSVHhkVnRkbktJMS9HanNadG4zQVc1UUwxRU5NeDBsbUF5RXduL0wveUQ2ZGV5bXJ3VDN3UzVxTWhUSkMzMDZScTBYQ1g0dXFkYW41V0NGekU0RS9mU0MxeUE9PTwvU2lnbmF0dXJlVmFsdWU+PEtleUluZm8+PEtleU5hbWU+MjAwMDEwMDAwMDAzMDAwMjI4MTU8L0tleU5hbWU+PEtleVZhbHVlPjxSU0FLZXlWYWx1ZT48TW9kdWx1cz5ndnZDaUNGREZWYVlYN3hkVlJocC8zOFVMV3RvL0xLRFNaeTF5clhLcGFxRlhxRVJKV0Y3OFlIS2YzTjVHQm9YZ3p3RlB1RFgrNWt2WTV3dFlOeHgvT3d1MnNoTlpxRkZoNkVLc3lzUU1lUDVyejZrRTFnRlllbmFQRVVQOXpqK2gwYkwzeFI1YXFvVHNxR0YyNG1LQkxvaWFLNDRwWEJ6R3pnc3haaXNoVkpWTTZYYnpOSlZvbkVVTmJJMjVEaGdXQWQ4NmYyYVUzQm1PSDJLMVJaeDQxZHRUVDU2VXNzekpsczR0UEZPRHIvY2FXdVpFdVV2THAxTTNuajdEeXU4OG1oRDJmKzFmQS9nN2t6Y1UvMXRjcEZYRi9ySXk5M0FQdmtVNzJqd3Zrcm5wcnpzK1NuRzgxKy9GMTZhaHVHc2IyRVo4OGRLSHdxeEVrd3poTXlUYlE9PTwvTW9kdWx1cz48RXhwb25lbnQ+QVFBQjwvRXhwb25lbnQ+PC9SU0FLZXlWYWx1ZT48L0tleVZhbHVlPjwvS2V5SW5mbz48L1NpZ25hdHVyZT48L0NvbnN1bHRhU2VjdG9yUHJpbWFyaW8+"/>
            <urn:TransactionProperty Key="CertificadoReceptor_PSECFDI" Value="MIIFxTCCA62gAwIBAgIUMjAwMDEwMDAwMDAzMDAwMjI4MTUwDQYJKoZIhvcNAQELBQAwggFmMSAwHgYDVQQDDBdBLkMuIDIgZGUgcHJ1ZWJhcyg0MDk2KTEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMSkwJwYJKoZIhvcNAQkBFhphc2lzbmV0QHBydWViYXMuc2F0LmdvYi5teDEmMCQGA1UECQwdQXYuIEhpZGFsZ28gNzcsIENvbC4gR3VlcnJlcm8xDjAMBgNVBBEMBTA2MzAwMQswCQYDVQQGEwJNWDEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDESMBAGA1UEBwwJQ295b2Fjw6FuMRUwEwYDVQQtEwxTQVQ5NzA3MDFOTjMxITAfBgkqhkiG9w0BCQIMElJlc3BvbnNhYmxlOiBBQ0RNQTAeFw0xNjEwMjUyMTUyMTFaFw0yMDEwMjUyMTUyMTFaMIGxMRowGAYDVQQDExFDSU5ERU1FWCBTQSBERSBDVjEaMBgGA1UEKRMRQ0lOREVNRVggU0EgREUgQ1YxGjAYBgNVBAoTEUNJTkRFTUVYIFNBIERFIENWMSUwIwYDVQQtExxMQU43MDA4MTczUjUgLyBGVUFCNzcwMTE3QlhBMR4wHAYDVQQFExUgLyBGVUFCNzcwMTE3TURGUk5OMDkxFDASBgNVBAsUC1BydWViYV9DRkRJMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgvvCiCFDFVaYX7xdVRhp/38ULWto/LKDSZy1yrXKpaqFXqERJWF78YHKf3N5GBoXgzwFPuDX+5kvY5wtYNxx/Owu2shNZqFFh6EKsysQMeP5rz6kE1gFYenaPEUP9zj+h0bL3xR5aqoTsqGF24mKBLoiaK44pXBzGzgsxZishVJVM6XbzNJVonEUNbI25DhgWAd86f2aU3BmOH2K1RZx41dtTT56UsszJls4tPFODr/caWuZEuUvLp1M3nj7Dyu88mhD2f+1fA/g7kzcU/1tcpFXF/rIy93APvkU72jwvkrnprzs+SnG81+/F16ahuGsb2EZ88dKHwqxEkwzhMyTbQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAJ/xkL8I+fpilZP+9aO8n93+20XxVomLJjeSL+Ng2ErL2GgatpLuN5JknFBkZAhxVIgMaTS23zzk1RLtRaYvH83lBH5E+M+kEjFGp14Fne1iV2Pm3vL4jeLmzHgY1Kf5HmeVrrp4PU7WQg16VpyHaJ/eonPNiEBUjcyQ1iFfkzJmnSJvDGtfQK2TiEolDJApYv0OWdm4is9Bsfi9j6lI9/T6MNZ+/LM2L/t72Vau4r7m94JDEzaO3A0wHAtQ97fjBfBiO5M8AEISAV7eZidIl3iaJJHkQbBYiiW2gikreUZKPUX0HmlnIqqQcBJhWKRu6Nqk6aZBTETLLpGrvF9OArV1JSsbdw/ZH+P88RAt5em5/gjwwtFlNHyiKG5w+UFpaZOK3gZP0su0sa6dlPeQ9EL4JlFkGqQCgSQ+NOsXqaOavgoP5VLykLwuGnwIUnuhBTVeDbzpgrg9LuF5dYp/zs+Y9ScJqe5VMAagLSYTShNtN8luV7LvxF9pgWwZdcM7lUwqJmUddCiZqdngg3vzTactMToG16gZA4CWnMgbU4E+r541+FNMpgAZNvs2CiW/eApfaaQojsZEAHDsDv4L5n3M1CC7fYjE/d61aSng1LaO6T1mh+dEfPvLzp7zyzz+UgWMhi5Cs4pcXx1eic5r7uxPoBwcCTt3YI1jKVVnV7/w="/>
         </urn:TransactionProperties>
      </urn:EmitirComprobanteRequest>
   </soapenv:Body>
</soapenv:Envelope>

Regresar