jueves, 5 de diciembre de 2013

Que es la cadena original de un CFDi?

Es una representación de todos los elementos de la factura en una cadena separada por pipes  "|" , estos llevan un orden especifico publicado en el Anexo 20.


Ejemplo de XML (CFD) sin Sellar


<?xml version="1.0" encoding="UTF-8"?>
                <cfdi:Comprobante xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                  xmlns:cfdi="http://www.sat.gob.mx/cfd/3"
                                  xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital"
                                  xsi:schemaLocation="http://www.sat.gob.mx/cfd/3
                                  http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd
                                  http://www.sat.gob.mx/TimbreFiscalDigital
                                  http://www.sat.gob.mx/sitio_internet/TimbreFiscalDigital/TimbreFiscalDigital.xsd"
                                  version="3.2"
                                 
                                  serie="A"
                                  folio="100"
                                  fecha="2013-12-05T00:07:30"
                                  formaDePago="PAGO EN UNA SOLA EXHIBICION"
                                  noCertificado="20001000000100005867"
                                  certificado="MIIEdDCCA1ygAwIBAgIUMjAwMDEwMDAwMDAxMDAwMDU4NjcwDQYJKoZIhvcNAQEFBQAwggFvMRgwFgYDVQQDDA9BLkMuIGRlIHBydWViYXMxLzAtBgNVBAoMJlNlcnZpY2lvIGRlIEFkbWluaXN0cmFjacOzbiBUcmlidXRhcmlhMTgwNgYDVQQLDC9BZG1pbmlzdHJhY2nDs24gZGUgU2VndXJpZGFkIGRlIGxhIEluZm9ybWFjacOzbjEpMCcGCSqGSIb3DQEJARYaYXNpc25ldEBwcnVlYmFzLnNhdC5nb2IubXgxJjAkBgNVBAkMHUF2LiBIaWRhbGdvIDc3LCBDb2wuIEd1ZXJyZXJvMQ4wDAYDVQQRDAUwNjMwMDELMAkGA1UEBhMCTVgxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVyYWwxEjAQBgNVBAcMCUNveW9hY8OhbjEVMBMGA1UELRMMU0FUOTcwNzAxTk4zMTIwMAYJKoZIhvcNAQkCDCNSZXNwb25zYWJsZTogSMOpY3RvciBPcm5lbGFzIEFyY2lnYTAeFw0xMjA3MjcxNzAyMDBaFw0xNjA3MjcxNzAyMDBaMIHbMSkwJwYDVQQDEyBBQ0NFTSBTRVJWSUNJT1MgRU1QUkVTQVJJQUxFUyBTQzEpMCcGA1UEKRMgQUNDRU0gU0VSVklDSU9TIEVNUFJFU0FSSUFMRVMgU0MxKTAnBgNVBAoTIEFDQ0VNIFNFUlZJQ0lPUyBFTVBSRVNBUklBTEVTIFNDMSUwIwYDVQQtExxBQUEwMTAxMDFBQUEgLyBIRUdUNzYxMDAzNFMyMR4wHAYDVQQFExUgLyBIRUdUNzYxMDAzTURGUk5OMDkxETAPBgNVBAsTCFVuaWRhZCAxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2TTQSPONBOVxpXv9wLYo8jezBrb34i/tLx8jGdtyy27BcesOav2c1NS/Gdv10u9SkWtwdy34uRAVe7H0a3VMRLHAkvp2qMCHaZc4T8k47Jtb9wrOEh/XFS8LgT4y5OQYo6civfXXdlvxWU/gdM/e6I2lg6FGorP8H4GPAJ/qCNwIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQUFAAOCAQEATxMecTpMbdhSHo6KVUg4QVF4Op2IBhiMaOrtrXBdJgzGotUFcJgdBCMjtTZXSlq1S4DG1jr8p4NzQlzxsdTxaB8nSKJ4KEMgIT7E62xRUj15jI49qFz7f2uMttZLNThipunsN/NF1XtvESMTDwQFvas/Ugig6qwEfSZc0MDxMpKLEkEePmQwtZD+zXFSMVa6hmOu4M+FzGiRXbj4YJXn9Myjd8xbL/c+9UIcrYoZskxDvMxc6/6M3rNNDY3OFhBK+V/sPMzWWGt8S1yjmtPfXgFs1t65AZ2hcTwTAuHrKwDatJ1ZPfa482ZBROAAX1waz7WwXp0gso7sDCm2/yUVww=="
                                  subTotal="1000.00"
                                  descuento="0.00"
                                  total="1160.00"
                                  metodoDePago="EFECTIVO"
                                  tipoDeComprobante="ingreso"
                                  TipoCambio="1.0000"
                                  Moneda="MXN"
                                    LugarExpedicion="MONTERREY"
                                    >
       
                  <cfdi:Emisor
                         rfc="AAA010101AAA"
                         nombre="ACCEM SERVICIOS EMPRESARIALES SC">
                    <cfdi:DomicilioFiscal
                                calle="JUAREZ"
                                noExterior="100"
                               
                                colonia="CENTRO"
                                localidad="MONTERREY"
                                municipio="MONTERREY"
                                estado="NUEVO LEON"
                                pais="MEXICO"
                                codigoPostal="01234" />
                    <cfdi:ExpedidoEn
                                calle="HIDALGO"
                                noExterior="240"
                               
                                colonia="LAS CUMBRES 3 SECTOR"
                                localidad="MONTERREY"
                                municipio="MONTERREY"
                                estado="NUEVO LEON"
                                pais="MEXICO"
                                codigoPostal="64610" />
                    <cfdi:RegimenFiscal Regimen="MI REGIMEN" />
                  </cfdi:Emisor>
               
                  <cfdi:Receptor
                        rfc="SOHM7509289MA"
                        nombre="MIGUEL ANGEL SOSA HERNANDEZ">
                    <cfdi:Domicilio
                        calle="PERIFERICO"
                        noExterior="1024"
                        noInterior="B"
                        colonia="SAN ANGEL"
                        localidad="CIUDAD DE MÉXICO"
                        municipio="ALVARO OBREGON"
                        estado="DISTRITO FEDERAL"
                        pais="MEXICO"
                        codigoPostal="23010" />
                  </cfdi:Receptor>
               
                  <cfdi:Conceptos>
        <cfdi:Concepto cantidad="1" unidad="PIEZA" noIdentificacion="COD1" descripcion="PRODUCTO PRUEBA 1" valorUnitario="100.00" importe="100.00"></cfdi:Concepto>
                <cfdi:Concepto cantidad="1" unidad="PIEZA" noIdentificacion="COD2" descripcion="PRODUCTO PRUEBA 2" valorUnitario="100.00" importe="100.00"></cfdi:Concepto>
                <cfdi:Concepto cantidad="1" unidad="PIEZA" noIdentificacion="COD3" descripcion="PRODUCTO PRUEBA 3" valorUnitario="100.00" importe="100.00"></cfdi:Concepto>
                <cfdi:Concepto cantidad="1" unidad="PIEZA" noIdentificacion="COD4" descripcion="PRODUCTO PRUEBA 4" valorUnitario="100.00" importe="100.00"></cfdi:Concepto>
                <cfdi:Concepto cantidad="1" unidad="PIEZA" noIdentificacion="COD5" descripcion="PRODUCTO PRUEBA 5" valorUnitario="100.00" importe="100.00"></cfdi:Concepto>
                <cfdi:Concepto cantidad="1" unidad="PIEZA" noIdentificacion="COD6" descripcion="PRODUCTO PRUEBA 6" valorUnitario="100.00" importe="100.00"></cfdi:Concepto>
                <cfdi:Concepto cantidad="1" unidad="PIEZA" noIdentificacion="COD7" descripcion="PRODUCTO PRUEBA 7" valorUnitario="100.00" importe="100.00"></cfdi:Concepto>
                <cfdi:Concepto cantidad="1" unidad="PIEZA" noIdentificacion="COD8" descripcion="PRODUCTO PRUEBA 8" valorUnitario="100.00" importe="100.00"></cfdi:Concepto>
                <cfdi:Concepto cantidad="1" unidad="PIEZA" noIdentificacion="COD9" descripcion="PRODUCTO PRUEBA 9" valorUnitario="100.00" importe="100.00"></cfdi:Concepto>
                <cfdi:Concepto cantidad="1" unidad="PIEZA" noIdentificacion="COD10" descripcion="PRODUCTO PRUEBA 10" valorUnitario="100.00" importe="100.00"></cfdi:Concepto>
                           
                  </cfdi:Conceptos>
                  <cfdi:Impuestos totalImpuestosTrasladados="160.00">
                    <cfdi:Traslados>
                      <cfdi:Traslado impuesto="IVA" tasa="16.00" importe="160.00" />
                    </cfdi:Traslados>
                  </cfdi:Impuestos>
                </cfdi:Comprobante>


Ejemplo de cadena generada


||3.2|2013-12-05T00:07:30|ingreso|PAGO EN UNA SOLA EXHIBICION|1000.00|0.00|1.0000|MXN|1160.00|EFECTIVO|MONTERREY|AAA010101AAA|ACCEM SERVICIOS EMPRESARIALES SC|JUAREZ|100|CENTRO|MONTERREY|MONTERREY|NUEVO LEON|MEXICO|01234|HIDALGO|240|LAS CUMBRES 3 SECTOR|MONTERREY|MONTERREY|NUEVO LEON|MEXICO|64610|MI REGIMEN|SOHM7509289MA|MIGUEL ANGEL SOSA HERNANDEZ|PERIFERICO|1024|B|SAN ANGEL|CIUDAD DE MéXICO|ALVARO OBREGON|DISTRITO FEDERAL|MEXICO|23010|1|PIEZA|COD1|PRODUCTO PRUEBA 1|100.00|100.00|1|PIEZA|COD2|PRODUCTO PRUEBA 2|100.00|100.00|1|PIEZA|COD3|PRODUCTO PRUEBA 3|100.00|100.00|1|PIEZA|COD4|PRODUCTO PRUEBA 4|100.00|100.00|1|PIEZA|COD5|PRODUCTO PRUEBA 5|100.00|100.00|1|PIEZA|COD6|PRODUCTO PRUEBA 6|100.00|100.00|1|PIEZA|COD7|PRODUCTO PRUEBA 7|100.00|100.00|1|PIEZA|COD8|PRODUCTO PRUEBA 8|100.00|100.00|1|PIEZA|COD9|PRODUCTO PRUEBA 9|100.00|100.00|1|PIEZA|COD10|PRODUCTO PRUEBA 10|100.00|100.00|IVA|16.00|160.00|160.00||


A esta cadena se le aplicarán los certificados para generar el Sello


Si no deseas batallar te recomiendo la librería de multifacturas.com , ingresas todos los elementos de la factura como parámetros y te genera el XML, lo sella, y regresa ya timbrado.

Espero te sirva.




5 comentarios:

  1. me podrias decir como puedo obtener el noAprobacion y anoAprobacion del certificado

    ResponderEliminar
  2. esos 2 datos solo son utilizados para facturacion CBB la cual ya no es valida, y esos te los proporcionaba el SAT al momento de solicitar autorizacion para un rango de folios

    ResponderEliminar
  3. podría poner cuál les son los datos exactos de la cadena generada.
    por ejemplo

    ||versión|fecha|Tipo de comprobante| ......||
    etc...

    ResponderEliminar
    Respuestas
    1. en la practica no te serviria mucho ya que los primeros elementos son algo fijos con muchos opcionales, los finales referentes a impuestos aparecen y desaparecen segun los tipos de impuestos que tenga la factura, al menos que solo te dediques a un solo formato en especial

      Eliminar
  4. hola buenas noches se que este no es un foro de ayuda pero tengo una duda estoy tratando de sellar la cadena original con SHA256 anteriormente lo hacia asi...
    $clave='archivos/claves.key.pem';
    $fp = fopen($clave, "r");
    $llave_privada = fread($fp, 8192);
    fclose($fp);
    $id_clave = openssl_get_privatekey($llave_privada);
    openssl_sign($cadena_original,$cadenafirmada,$id_clave,OPENSSL_ALGO_SHA1);
    $sello = base64_encode($cadenafirmada);
    y lo unico que quise cambiar fue el SHA1 por SHA256 pero a la hora de validar me dice que el sello es invalido y lo hago de otra pagina de prueba y si sella bien

    ResponderEliminar

Ejemplo de factura electrónica 2022 en Panamá (DGI)

Código fuente Facturación 2022 Panamá Panamá comenzó el proceso de migración a facturación electrónica,  actualmente ya salieron los primero...