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:
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).
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>
- En la petición de emisión, se debe hacer uso de los siguientes
TransactionProperty
dentro de la sección deTransactionProperties
:
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:
- El XML firmado, debe ser un XML conforme la definición de la consulta que se realiza hacia el SAT.
- Los RFC del XML firmado, deben corresponder a los especificados dentro del comprobante.
- Se verifica la firma criptográficamente.
- Se verifica que el certificado con el que se ha firmado pertenezca al RFC Receptor y que haya sido emitido por el SAT.
- Se verifica que el valor del atributo
tsSolicitud
, no esté en el futuro ni exceda las 72 horas al momento del procesamiento.
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