Servicio de firma electrónica múltiple para XML

Contenido

Características generales

El servicio de firma proporcionado por Sovos tiene por objetivo:

  1. Recibir un XML bien formado.
  2. Realizará la firma electrónica del XML con el estándar XAdES-BES, con el número de certificado definido en la solicitud; el certificado debe estar registrado en la plataforma de Sovos para poder realizar la firma electrónica.
  3. Poder firmar el XML por diferentes firmantes, basado en el número de certificado.

Estándar de firma XAdES-BES

El servicio de Sovos para realizar la firma de un XML, basado en el estándar XML Advanced Electronic Signatures - Basic Electronic Signature (Firma electrónica avanzada XML - firma electrónica básica) XAdES-BES publicado por ETSI (European Telecommunications Standards Institute).

En la siguiente liga encontrará información relacionada con el estándar de firma electrónica de XML XAdES-BES.

¿Qué necesito?

Autenticación

Para poder utilizar el servicio de firma por web service, es necesario contar con un API Key con el cual se realiza la autenticación al servicio. El API Key lo generas desde el portal de Sovos. En este artículo se indica como se genera un API Key en tu cuenta: Generar API Key

Interfaz de Integración

Esta funcionalidad se provee por medio de el Web Service

Cargar certificado de firma

Para poder realizar la firma electrónica, los certificados deben ser custodiados y guardados en la plataforma Sovos, para lo cual es necesario registrar el certificado en la plataforma. La contraseña es requerida cuando se registre un .PFX; la contraseña puede ser opcional cuando se registre el .CER y .KEY; en caso de no registrar la contraseña, será requerido enviarla en la solicitud de firma.

Ubicación del Servicio

La ubicación del web service del servicio de firma de XML son:

Ambiente Ubicación de WSDL
Pruebas https://oat.reachcore.com/api/ws/signature/XmlMultiSignature.svc?wsdl
Producción https://go.reachcore.com/api/ws/signature/XmlMultiSignature.svc?wsdl

Método [MultiSignXml]: Firma múltiple de XML

En este método se realiza la firma de un XML, ya sea una vez o múltiples ocasiones, basado en el número de serie del certificado el cual debe estar registrado en la plataforma Sovos.

Solicitud MultiSignXml

Elemento Uso Descripción
ApiKey Requerido Identificador de autenticación, que se genera en el portal de Sovos.
Certificates Requerido Arreglo de certificados con los cuales se firmará el XML. Cada certificado se declara en el elemento Certificate en donde se indica:
  • CertificateSerialNumber.- el número de certificado con el cual se realizará la firma
  • PasswordB64.- el password de la llave privada en base64 para realizar la firma electrónica. Será opcional si la contraseña fue registrada en la plataforma.
  • TrackingId Opcional Información de contenido libre de hasta 200 caracteres Unicode que puede ser usada como dato de referencia del cliente. Por ejemplo un número o folio de documento en un sistema externo.
    Xml Requerido El XML que se firmará, el cual debe estar bien formado, que se enviará dentro de <![CDATA[...]]>


    Para los siguientes ejemplos, el XML que se firmará es el siguiente:

    <MultiSign>Demo</MultiSign>

    El ejemplo para la solicitud para firmar el XML con el certificado con número de serie 02, será la siguiente:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://www.reachcore.com/CFDI/customHeaders" xmlns:urn="urn:schemas.reachcore.com:signature">
       <soapenv:Header>
          <cus:ApiKey>gf7hut8anehdyza6xqjm...wvncktr8kcu5uwas</cus:ApiKey>
       </soapenv:Header>
       <soapenv:Body>
          <urn:MultiSignXmlRequest>
             <urn:Certificates>
                <urn:Certificate>
                   <urn:CertificateSerialNumber>02</urn:CertificateSerialNumber>
                </urn:Certificate>
             </urn:Certificates>
             <urn:Xml><![CDATA[<MultiSign>Demo</MultiSign>]]></urn:Xml>
          </urn:MultiSignXmlRequest>
       </soapenv:Body>
    </soapenv:Envelope>

    A continuación la solicitud para firmar con los certificados 02 y 03. Debido a que el valor de PasswordB64 es opcional, solo es requerido enviarla, en caso de la no se haya registrado en la plataforma Sovos. La firma se realizará en el orden que de establezcan los certificados en la solicitud.

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://www.reachcore.com/CFDI/customHeaders" xmlns:urn="urn:schemas.reachcore.com:signature">
       <soapenv:Header>
          <cus:ApiKey>51e9d1097f634f20be62ad638bd7c31a71644c406d9e405d933f769303391008</cus:ApiKey>
       </soapenv:Header>
       <soapenv:Body>
          <urn:MultiSignXmlRequest>
             <urn:Certificates>
                <urn:Certificate>
                   <urn:CertificateSerialNumber>02</urn:CertificateSerialNumber>
                </urn:Certificate>
                <urn:Certificate>
                   <urn:CertificateSerialNumber>03</urn:CertificateSerialNumber>
                   <urn:PasswordB64>MXFheiQxcWF6</urn:PasswordB64>
                </urn:Certificate>
             </urn:Certificates>
             <urn:TrackingId>TrackingId_MultiSign</urn:TrackingId>
             <urn:Xml><![CDATA[<MultiSign>Documento XML</MultiSign>]]></urn:Xml>
             <urn:TransactionProperties>
                <urn:TransactionProperty Key="Key" Value="Value"/>
             </urn:TransactionProperties>
          </urn:MultiSignXmlRequest>
       </soapenv:Body>
    </soapenv:Envelope>

    Respuesta MultiSignXml

    Elemento Descripción
    Error
  • false: Transacción exitosa.
  • true: Error en la transacción.
  • Errors Conjunto de mensajes de error, se contendrá elementos Error tenga el valor true. En cada elemento Error se mostrará:
  • ErrorCode.- indicará el código del error. Para referencia, la lista de códigos de error de firma
  • ErrorMessage.- indicará la descripción del error.
  • SignedXml El XML resultado del proceso de firmado. Se devuelve en un <![CDATA[...]]>
    TransactionId Número único de transacción asignado por Sovos. Puede ser utilizado en el futuro para referirse a una transacción en particular, con motivos de soporte.


    Ejemplo de respuesta exitosa al firmar el XML el certificado con número de serie 02:

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
       <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          <MultiSignXmlResponse xmlns="urn:schemas.reachcore.com:signature">
             <Error>false</Error>
             <Errors/>
             <TransactionId>20058c60-9076-4e74-beb2-de2e75d12baa</TransactionId>
             <SignedXml><![CDATA[<MultiSign Id="id-3737370363">Demo<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-705588820">
        <ds:SignedInfo>
            <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></ds:CanonicalizationMethod>
            <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></ds:SignatureMethod>
            <ds:Reference Id="Reference-ID-214013142" URI="#id-3737370363">
                <ds:Transforms>
                    <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></ds:Transform>
                </ds:Transforms>
                <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod>
                <ds:DigestValue>Dq8EJOMTi3KIJ/pRbOpYistCb6A=</ds:DigestValue>
            </ds:Reference>
            <ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#SignedProperties-928477832">
                <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod>
                <ds:DigestValue>pnvtT3OsPGycENOUBOPMob3Mz4w=</ds:DigestValue>
            </ds:Reference>
        </ds:SignedInfo>
        <ds:SignatureValue>
    yFizAWq2hcvqywsc/utxrx0mHnyl3zWoE0BxIS5MYWk0yfKN+TQQpL3vTDmq9Rhn
    0oImP/9F8/KlHUJkCTv28r+/YzEZPL5UjDoFsO3I7JY3zI+/Jf8ppdRlg8FXgqhC
    5JcHUtj5fDTsSV4hNYuAjumzhPnafTS+GmeEFGGPJH9fRljPTeZcMwrBCtsTtZNr
    y+bu53HryJk4a4yXAXJcj9bn7LbXyN4ENHCl04JGopdUvCAVa5h1gc6xPCHLCcBv
    VC0jVN8FMrhMF/yRsvDSxsjxnI8PR6JI2u6kiXgkNscZx8RHB5TuxjE8b/vIvv0c
    /+NUChCQBBxf6ABDv+x6wA==
        </ds:SignatureValue>
        <ds:KeyInfo>
            <ds:KeyValue>
                <ds:RSAKeyValue>
                    <ds:Modulus>
    3KSNCmaJH/Q0+HsxMKEn3KYQBd7V8dHsn0ZkX20TGdE3kwoyKFmr1rpjYSj6zx0d
    LeuH0D3fd4cBapSWp2YYbsLDbQ8XN81QJapVyLg7UVoFFDQLWZcW1IHQ3V6bWndN
    0MCSqxEh4prkFcDtGGw3x4EBQtcklJJZX/DA/nTDWujYQRWkgLZOOHNXxEFCt+Xe
    SI3Fpej5idSYv6sLACt9Vlg8RX4hU125UmUH2X2p0w5q6ivSONJ20p1cktCQ4H1u
    w9ZddLbM9bg1ftowP5WmzLXu/yon27gNbV7abRXjku8c5hZBlxZICLbx3dQi6NAD
    yP+K8DGRthVlr8BLb4/XGQ==
                    </ds:Modulus>
                    <ds:Exponent>AQAB</ds:Exponent>
                </ds:RSAKeyValue>
            </ds:KeyValue>
            <ds:X509Data>
                <ds:X509IssuerSerial>
                    <ds:X509IssuerName>CN=Reachcore R&amp;D CA4 Root, O=Reachcore, L=Mexico, ST=DF, C=MX</ds:X509IssuerName>
                    <ds:X509SerialNumber>2</ds:X509SerialNumber>
                </ds:X509IssuerSerial>
                <ds:X509SubjectName>CN=AC4Firma01, O=Reachcore, L=Mexico, ST=DF, C=MX</ds:X509SubjectName>
                <ds:X509Certificate>
    MIID5jCCAs6gAwIBAgIBAjANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJNWDEL
    MAkGA1UECAwCREYxDzANBgNVBAcMBk1leGljbzESMBAGA1UECgwJUmVhY2hjb3Jl
    MR8wHQYDVQQDDBZSZWFjaGNvcmUgUiZEIENBNCBSb290MB4XDTE2MDQwNzAwMzk0
    NloXDTI2MDQwNTAwMzk0NlowVDELMAkGA1UEBhMCTVgxCzAJBgNVBAgMAkRGMQ8w
    DQYDVQQHDAZNZXhpY28xEjAQBgNVBAoMCVJlYWNoY29yZTETMBEGA1UEAwwKQUM0
    RmlybWEwMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANykjQpmiR/0
    NPh7MTChJ9ymEAXe1fHR7J9GZF9tExnRN5MKMihZq9a6Y2Eo+s8dHS3rh9A933eH
    AWqUlqdmGG7Cw20PFzfNUCWqVci4O1FaBRQ0C1mXFtSB0N1em1p3TdDAkqsRIeKa
    5BXA7RhsN8eBAULXJJSSWV/wwP50w1ro2EEVpIC2TjhzV8RBQrfl3kiNxaXo+YnU
    mL+rCwArfVZYPEV+IVNduVJlB9l9qdMOauor0jjSdtKdXJLQkOB9bsPWXXS2zPW4
    NX7aMD+Vpsy17v8qJ9u4DW1e2m0V45LvHOYWQZcWSAi28d3UIujQA8j/ivAxkbYV
    Za/AS2+P1xkCAwEAAaOBtjCBszAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1P
    cGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUIKnBCa9xXL9U
    jZh6+MuIv7OZ7hUwHwYDVR0jBBgwFoAURzF83CiDmtfR5kOB3poGlHNMtR0wOAYI
    KwYBBQUHAQEELDAqMCgGCCsGAQUFBzABhhxodHRwOi8vY2EucmVhY2hjb3JlLm5l
    dDoxMzIzMA0GCSqGSIb3DQEBCwUAA4IBAQA413A6qEj/afubOIpcm9Vfd0Gmp128
    DFFf4HpLUqfbZSdvoHybJAt3ThniFvRxsTMtZ8lLozIys0/ClPh6S/LWg4cFrDWw
    kUNIICT/hh4nSj+KE8QAgQCS9MckJ4yxttY3AlgiwV7742JzMfwTHXlsL5ZgVJmk
    84hSHzLJmGd2H5EOEZjjxEy4Oh+fu1jr1f5n9B8Yq97BwNHHIORpCtcbVNoHMbIx
    iwhzaasVLnB9N/43HRmfDH50cVbigPQWRe2X02yqlaRiUD1HKrWurZLUA/c/SE+8
    yPfCRNeHgVvzZIRB8N6z8aFs6/TMyXIuwdL4nILsMfafeEK3AuB9cF3Q
                </ds:X509Certificate>
            </ds:X509Data>
        </ds:KeyInfo>
        <ds:Object>
            <etsi:QualifyingProperties xmlns:etsi="http://uri.etsi.org/01903/v1.3.2#" Target="#Signature-705588820">
                <etsi:SignedProperties Id="SignedProperties-928477832">
                <etsi:SignedSignatureProperties>
                        <etsi:SigningTime>2016-08-03T19:05:44.635Z</etsi:SigningTime>
                        <etsi:SigningCertificate>
                            <etsi:Cert>
                                <etsi:CertDigest>
                                    <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod>
                                    <ds:DigestValue>IYOe+fEMiecrlOkjpB2DBzXm/to=</ds:DigestValue>
                                </etsi:CertDigest>
                                <etsi:IssuerSerial>
                                    <ds:X509IssuerName>CN=Reachcore R&amp;D CA4 Root, O=Reachcore, L=Mexico, ST=DF, C=MX</ds:X509IssuerName>
                                    <ds:X509SerialNumber>2</ds:X509SerialNumber>
                                </etsi:IssuerSerial>
                            </etsi:Cert>
                        </etsi:SigningCertificate>
                    </etsi:SignedSignatureProperties>
                    <etsi:SignedDataObjectProperties>
                        <etsi:DataObjectFormat ObjectReference="#Reference-ID-214013142">
                            <etsi:Description>contenido documento</etsi:Description>
                            <etsi:MimeType>text/xml</etsi:MimeType>
                        </etsi:DataObjectFormat>
                    </etsi:SignedDataObjectProperties>
                </etsi:SignedProperties>
            </etsi:QualifyingProperties>
        </ds:Object>
    </ds:Signature></MultiSign>]]></SignedXml>
             <TransactionProperties/>
          </MultiSignXmlResponse>
       </s:Body>
    </s:Envelope>

    Ejemplo de respuesta exitosa al firmar el XML con los certificados con número de serie 02 y 03:

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
       <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          <MultiSignXmlResponse xmlns="urn:schemas.reachcore.com:signature">
             <Error>false</Error>
             <Errors/>
             <TransactionId>f8588e15-7237-42b1-bc45-722e893d7806</TransactionId>
             <SignedXml><![CDATA[<MultiSign Id="id-1120328315">Documento XML<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-2089225821">
       <ds:SignedInfo>
          <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></ds:CanonicalizationMethod>
          <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></ds:SignatureMethod>
          <ds:Reference Id="Reference-ID-3208006074" URI="#id-1120328315">
             <ds:Transforms>
                <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></ds:Transform>
             </ds:Transforms>
             <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod>
             <ds:DigestValue>EPVMbU0y4+DBlu6EcY8HrntjyRA=</ds:DigestValue>
          </ds:Reference>
          <ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#SignedProperties-285281959">
             <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod>
             <ds:DigestValue>V5ZfLBrlOp/xybRzIZwBA4NQ72I=</ds:DigestValue>
          </ds:Reference>
       </ds:SignedInfo>
       <ds:SignatureValue>
    Dyj9waxGGdBEplUKNQmSJFpQXViFY4jDahpFLD5jlDnX5PIm2bRZ/aSxsVL7yACr
    oQIX0PwsI5/3pHGiGVGtZfRsi4uOqQYai25slrjb+bt3gYvUSG7jvYEhNlzVIOtM
    tofz8EBvhLn9AIYph50Lw2vxs8B6LV2B8N7hKHi4Cr1NOcT/uU5KJMEznvTeISk8
    3hVDr9praLs8a3iOonjb+qkfYfRXrF6ZExFD1vNlYpySKnEigS5Aqr/tV6oVO9Lq
    W1asBy8/OPQTmWL4v7vDaimERTDtcut064G+2Zd97K+UzhWAHabMYsS1QDZ4BDst
    ov0FjSrOE2reZtc2ci0qcA==
       </ds:SignatureValue>
       <ds:KeyInfo>
          <ds:KeyValue>
             <ds:RSAKeyValue>
                <ds:Modulus>
    3KSNCmaJH/Q0+HsxMKEn3KYQBd7V8dHsn0ZkX20TGdE3kwoyKFmr1rpjYSj6zx0d
    LeuH0D3fd4cBapSWp2YYbsLDbQ8XN81QJapVyLg7UVoFFDQLWZcW1IHQ3V6bWndN
    0MCSqxEh4prkFcDtGGw3x4EBQtcklJJZX/DA/nTDWujYQRWkgLZOOHNXxEFCt+Xe
    SI3Fpej5idSYv6sLACt9Vlg8RX4hU125UmUH2X2p0w5q6ivSONJ20p1cktCQ4H1u
    w9ZddLbM9bg1ftowP5WmzLXu/yon27gNbV7abRXjku8c5hZBlxZICLbx3dQi6NAD
    yP+K8DGRthVlr8BLb4/XGQ==
                </ds:Modulus>
                <ds:Exponent>AQAB</ds:Exponent>
             </ds:RSAKeyValue>
          </ds:KeyValue>
          <ds:X509Data>
             <ds:X509IssuerSerial>
                <ds:X509IssuerName>CN=Reachcore R&amp;D CA4 Root, O=Reachcore, L=Mexico, ST=DF, C=MX</ds:X509IssuerName>
                <ds:X509SerialNumber>2</ds:X509SerialNumber>
             </ds:X509IssuerSerial>
             <ds:X509SubjectName>CN=AC4Firma01, O=Reachcore, L=Mexico, ST=DF, C=MX</ds:X509SubjectName>
             <ds:X509Certificate>
    MIID5jCCAs6gAwIBAgIBAjANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJNWDEL
    MAkGA1UECAwCREYxDzANBgNVBAcMBk1leGljbzESMBAGA1UECgwJUmVhY2hjb3Jl
    MR8wHQYDVQQDDBZSZWFjaGNvcmUgUiZEIENBNCBSb290MB4XDTE2MDQwNzAwMzk0
    NloXDTI2MDQwNTAwMzk0NlowVDELMAkGA1UEBhMCTVgxCzAJBgNVBAgMAkRGMQ8w
    DQYDVQQHDAZNZXhpY28xEjAQBgNVBAoMCVJlYWNoY29yZTETMBEGA1UEAwwKQUM0
    RmlybWEwMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANykjQpmiR/0
    NPh7MTChJ9ymEAXe1fHR7J9GZF9tExnRN5MKMihZq9a6Y2Eo+s8dHS3rh9A933eH
    AWqUlqdmGG7Cw20PFzfNUCWqVci4O1FaBRQ0C1mXFtSB0N1em1p3TdDAkqsRIeKa
    5BXA7RhsN8eBAULXJJSSWV/wwP50w1ro2EEVpIC2TjhzV8RBQrfl3kiNxaXo+YnU
    mL+rCwArfVZYPEV+IVNduVJlB9l9qdMOauor0jjSdtKdXJLQkOB9bsPWXXS2zPW4
    NX7aMD+Vpsy17v8qJ9u4DW1e2m0V45LvHOYWQZcWSAi28d3UIujQA8j/ivAxkbYV
    Za/AS2+P1xkCAwEAAaOBtjCBszAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1P
    cGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUIKnBCa9xXL9U
    jZh6+MuIv7OZ7hUwHwYDVR0jBBgwFoAURzF83CiDmtfR5kOB3poGlHNMtR0wOAYI
    KwYBBQUHAQEELDAqMCgGCCsGAQUFBzABhhxodHRwOi8vY2EucmVhY2hjb3JlLm5l
    dDoxMzIzMA0GCSqGSIb3DQEBCwUAA4IBAQA413A6qEj/afubOIpcm9Vfd0Gmp128
    DFFf4HpLUqfbZSdvoHybJAt3ThniFvRxsTMtZ8lLozIys0/ClPh6S/LWg4cFrDWw
    kUNIICT/hh4nSj+KE8QAgQCS9MckJ4yxttY3AlgiwV7742JzMfwTHXlsL5ZgVJmk
    84hSHzLJmGd2H5EOEZjjxEy4Oh+fu1jr1f5n9B8Yq97BwNHHIORpCtcbVNoHMbIx
    iwhzaasVLnB9N/43HRmfDH50cVbigPQWRe2X02yqlaRiUD1HKrWurZLUA/c/SE+8
    yPfCRNeHgVvzZIRB8N6z8aFs6/TMyXIuwdL4nILsMfafeEK3AuB9cF3Q
             </ds:X509Certificate>
          </ds:X509Data>
       </ds:KeyInfo>
       <ds:Object>
          <etsi:QualifyingProperties xmlns:etsi="http://uri.etsi.org/01903/v1.3.2#" Target="#Signature-2089225821">
             <etsi:SignedProperties Id="SignedProperties-285281959">
                <etsi:SignedSignatureProperties>
                   <etsi:SigningTime>2016-08-08T19:32:01.801Z</etsi:SigningTime>
                   <etsi:SigningCertificate>
                      <etsi:Cert>
                         <etsi:CertDigest>
                            <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod>
                            <ds:DigestValue>IYOe+fEMiecrlOkjpB2DBzXm/to=</ds:DigestValue>
                         </etsi:CertDigest>
                         <etsi:IssuerSerial>
                            <ds:X509IssuerName>CN=Reachcore R&amp;D CA4 Root, O=Reachcore, L=Mexico, ST=DF, C=MX</ds:X509IssuerName>
                            <ds:X509SerialNumber>2</ds:X509SerialNumber>
                         </etsi:IssuerSerial>
                      </etsi:Cert>
                   </etsi:SigningCertificate>
                </etsi:SignedSignatureProperties>
                <etsi:SignedDataObjectProperties>
                   <etsi:DataObjectFormat ObjectReference="#Reference-ID-3208006074">
                      <etsi:Description>contenido documento</etsi:Description>
                      <etsi:MimeType>text/xml</etsi:MimeType>
                   </etsi:DataObjectFormat>
                </etsi:SignedDataObjectProperties>
             </etsi:SignedProperties>
          </etsi:QualifyingProperties>
       </ds:Object>
    </ds:Signature><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-445812160">
       <ds:SignedInfo>
          <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></ds:CanonicalizationMethod>
          <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></ds:SignatureMethod>
          <ds:Reference Id="Reference-ID-3464383522" URI="#id-1120328315">
             <ds:Transforms>
                <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></ds:Transform>
             </ds:Transforms>
             <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod>
             <ds:DigestValue>EPVMbU0y4+DBlu6EcY8HrntjyRA=</ds:DigestValue>
          </ds:Reference>
          <ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#SignedProperties-1729820472">
             <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod>
             <ds:DigestValue>KPmrcj2FKbkVYniF1OP7T38Q72M=</ds:DigestValue>
          </ds:Reference>
       </ds:SignedInfo>
       <ds:SignatureValue>
    vTJ7WiDJImeQNsjmRLOHgWIhFxs7pw0I+fweI0VJNa9fl2WISt3fZ8JaC8mkzYEG
    pSd7g3H4z+JXSpMT0Zf3rBCm9Pe5ZpLCcC0dkCzLXrXgaUeT41nSWF4bgBGDd3Rf
    8wVSx6f6iIydmcHenKUFflUDIPkAYypyZnr7pTp6B5+YXyIl+TxcRgcrHE7iRRww
    vo2bcWsjOLHOGQzJdtX0abR0GLvL6EVaenfcCVcBBKhhu0YTxEEJSIYEqj5q2pOP
    tCLf3XD5FD4bCxOAxwbQCJ3V3EeJOpmfvpQ/Q3veJAN8S/4WgDHV40uQGeOMNBB2
    Qm7tROSMuG1/BTzm9muiQg==
       </ds:SignatureValue>
       <ds:KeyInfo>
          <ds:KeyValue>
             <ds:RSAKeyValue>
                <ds:Modulus>
    wHsdoAmA5dUob7A5ZBhWAMpM+FjBLlXicCCrImF1uRlcm/oxGv7YcGKs1HOkdo3f
    oMG2tHUDcb58LHu2fhDrvgti/uInANvetv1UFmNLWrkIfiy0bzTXWw6yA65eP2SY
    rGS3JvTvOh6LAOw2dk2Xqjflfb5dad1d9Qjr3x8LPhVg8CYKtvV+nD+/edO+EXBH
    9Ky1SwTQpzyuvH+UrqCn7ojmMkKcqVMwYaTwhpnQvbSXpDeRi2w7FLLs8XOqOmQ2
    646zEmozdUfk4NXoy9DHZtXYoagSczrFfj/VQD9++bMA+jbT6dafOb6ouOd4JytB
    LSKN7scb0VQJJxWVutEU6w==
                </ds:Modulus>
                <ds:Exponent>AQAB</ds:Exponent>
             </ds:RSAKeyValue>
          </ds:KeyValue>
          <ds:X509Data>
             <ds:X509IssuerSerial>
                <ds:X509IssuerName>CN=Reachcore R&amp;D CA4 Root, O=Reachcore, L=Mexico, ST=DF, C=MX</ds:X509IssuerName>
                <ds:X509SerialNumber>3</ds:X509SerialNumber>
             </ds:X509IssuerSerial>
             <ds:X509SubjectName>CN=AC4Firma02, O=Reachcore, L=Mexico, ST=DF, C=MX</ds:X509SubjectName>
             <ds:X509Certificate>
    MIID5jCCAs6gAwIBAgIBAzANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJNWDEL
    MAkGA1UECAwCREYxDzANBgNVBAcMBk1leGljbzESMBAGA1UECgwJUmVhY2hjb3Jl
    MR8wHQYDVQQDDBZSZWFjaGNvcmUgUiZEIENBNCBSb290MB4XDTE2MDQwNzAwMzk0
    N1oXDTI2MDQwNTAwMzk0N1owVDELMAkGA1UEBhMCTVgxCzAJBgNVBAgMAkRGMQ8w
    DQYDVQQHDAZNZXhpY28xEjAQBgNVBAoMCVJlYWNoY29yZTETMBEGA1UEAwwKQUM0
    RmlybWEwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMB7HaAJgOXV
    KG+wOWQYVgDKTPhYwS5V4nAgqyJhdbkZXJv6MRr+2HBirNRzpHaN36DBtrR1A3G+
    fCx7tn4Q674LYv7iJwDb3rb9VBZjS1q5CH4stG8011sOsgOuXj9kmKxktyb07zoe
    iwDsNnZNl6o35X2+XWndXfUI698fCz4VYPAmCrb1fpw/v3nTvhFwR/SstUsE0Kc8
    rrx/lK6gp+6I5jJCnKlTMGGk8IaZ0L20l6Q3kYtsOxSy7PFzqjpkNuuOsxJqM3VH
    5ODV6MvQx2bV2KGoEnM6xX4/1UA/fvmzAPo20+nWnzm+qLjneCcrQS0ije7HG9FU
    CScVlbrRFOsCAwEAAaOBtjCBszAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1P
    cGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUVHTSAf+UE61Z
    OG0CNvANNGawn6cwHwYDVR0jBBgwFoAURzF83CiDmtfR5kOB3poGlHNMtR0wOAYI
    KwYBBQUHAQEELDAqMCgGCCsGAQUFBzABhhxodHRwOi8vY2EucmVhY2hjb3JlLm5l
    dDoxMzIzMA0GCSqGSIb3DQEBCwUAA4IBAQDiTe75XE6r6sJmATNFc5eWo1YpzFn6
    wt8AVSAVn9rv14urNah1so5F05oRbtPKXhuR2x4ToaA/G3Qhc6X94B+aZHCPN/6z
    Jjdv9ZOVKhZlkRcxisS469bSS9N0B/CFiJLN09hvyXy8PmPfnrhKEb1zdownhSA9
    aolnQxw82x8ZjPnyVAx/f53l3Qx5K4PBWUaQBbBcDgGewf45OcWoqjECNMp2ETmz
    M4fZFMaZunmjI4nQVKxnsz5y9rnvKeQNFHmaf4KsVMV/ZRWIR2NrvDPRHwmoPZSD
    GLa2/xh7YVu4k9g7a3pxTLv9eP0z5z8VEBNZjcdrwbFtcyWLGnYDwzmX
             </ds:X509Certificate>
          </ds:X509Data>
       </ds:KeyInfo>
       <ds:Object>
          <etsi:QualifyingProperties xmlns:etsi="http://uri.etsi.org/01903/v1.3.2#" Target="#Signature-445812160">
             <etsi:SignedProperties Id="SignedProperties-1729820472">
                <etsi:SignedSignatureProperties>
                   <etsi:SigningTime>2016-08-08T19:32:01.926Z</etsi:SigningTime>
                   <etsi:SigningCertificate>
                      <etsi:Cert>
                         <etsi:CertDigest>
                            <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod>
                            <ds:DigestValue>rJ3Rx6HdYG0dtTIy5HCquWd7QXo=</ds:DigestValue>
                         </etsi:CertDigest>
                         <etsi:IssuerSerial>
                            <ds:X509IssuerName>CN=Reachcore R&amp;D CA4 Root, O=Reachcore, L=Mexico, ST=DF, C=MX</ds:X509IssuerName>
                            <ds:X509SerialNumber>3</ds:X509SerialNumber>
                         </etsi:IssuerSerial>
                      </etsi:Cert>
                   </etsi:SigningCertificate>
                </etsi:SignedSignatureProperties>
                <etsi:SignedDataObjectProperties>
                   <etsi:DataObjectFormat ObjectReference="#Reference-ID-3464383522">
                      <etsi:Description>contenido documento</etsi:Description>
                      <etsi:MimeType>text/xml</etsi:MimeType>
                   </etsi:DataObjectFormat>
                </etsi:SignedDataObjectProperties>
             </etsi:SignedProperties>
          </etsi:QualifyingProperties>
       </ds:Object>
    </ds:Signature></MultiSign>]]></SignedXml>
             <TransactionProperties/>
          </MultiSignXmlResponse>
       </s:Body>
    </s:Envelope>

    Ejemplo de respuesta con error en el proceso de firmado cuando:

    No existe el certificado en la cuenta

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
       <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          <MultiSignXmlResponse xmlns="urn:schemas.reachcore.com:signature">
             <Error>true</Error>
             <Errors>
                <Error>
                   <ErrorCode>201</ErrorCode>
                   <ErrorMessage>No existe un certificado con número '01_CSD' para firmar este documento.</ErrorMessage>
                </Error>
             </Errors>
             <TransactionId>18279731-2658-4b94-bebf-70f559732563</TransactionId>
             <TransactionProperties/>
          </MultiSignXmlResponse>
       </s:Body>
    </s:Envelope>

    Contraseña incorrecta

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
       <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          <MultiSignXmlResponse xmlns="urn:schemas.reachcore.com:signature">
             <Error>true</Error>
             <Errors>
                <Error>
                   <ErrorCode>206</ErrorCode>
                   <ErrorMessage>Contraseña Incorrecta del certificado con número de serie: [02]</ErrorMessage>
                </Error>
             </Errors>
             <TransactionId>3eb1d6c2-2496-4c65-b628-d604061a05d0</TransactionId>
             <TransactionProperties/>
          </MultiSignXmlResponse>
       </s:Body>
    </s:Envelope>

    Códigos de error firma

    Los siguientes códigos se indicarán cuando no se ha podido realizar el firmado satisfactoriamente.

    Código Significado Descripción
    100 API Key Requerida El API Key es requerido
    101 API Key no válida No es válido el API Key proporcionado
    102 API Key inactivo El API Key esta inactivo
    111 No cuenta con funcionalidad activada de firma Su cuenta no tiene activada la funcionalidad de firma. Por favor contacte a Sovos
    201 Certificado no registrado El número de certificado en la solicitud no esta registrado en su cuenta.
    202 Certificado no activo El número de certificado en la solicitud no esta activo.
    203 Certificado no está vigente El número de certificado en la solicitud no esta vigente.
    204 Errores de Autoridad Certificadora (CA) Ocurrió un error al realizar la validación del certificado en la autoridad certificadora.
    205 Certificado no corresponde con llave privada La llave pública (.cer) no corresponde con la llave privada (.key)
    206 La contraseña es incorrecta para realizar la firma La contraseña proporcionada en la solicitud no es correcta
    301 XML mal formado El XML que se esta solicitando firmar, no esta bien formado.
    302 XML vacío No hay XML para firmar en la solicitud
    303 Numero serie certificado requerido Es requerido indicar el número de serie para firmar el XML
    304 Referencia de firma no válida Cuando un XML ha sido firmado previamente, antes de firmar se realiza la validación de la firma previa. Este error es cuando la firma previa es inválida.
    999 Error interno de plataforma Error interno de la plataforma. Notificar a soporte el TransactionId para el diagnóstico.

    Método [ValidateSignatureXML]: Validación de firma electrónica de XML

    En este método se realiza la validación criptográfica de las firmas electrónicas contenidas en el XML. Para ello es requerido tener configurado en su cuenta Sovos, el certificado raíz con el cual se firmó el XML, para poder realizar las validaciones de criptograficas correspondientes.

    Solicitud ValidateSignatureXML

    Los datos que se requieren enviar en la solicitud para la validación de la o las firmas de un XML al Web Service, son los siguientes:

    Elemento Uso Descripción
    ApiKey Requerido Identificador de autenticación, que se genera en el portal de Sovos.
    Xml Requerido XML firmado electrónicamente, al cual se realizará la validación, verificación de la firma electrónica. El XML se envía dentro de <![CDATA[...]]>


    Para los siguientes ejemplos, se tiene el siguiente esquema registrado, con el cual se realizará las validaciones correspondientes.

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://www.reachcore.com/CFDI/customHeaders" xmlns:urn="urn:schemas.reachcore.com:signature">
        <soapenv:Header>
            <cus:ApiKey>51e9d1097f634f20...33f769303391008</cus:ApiKey>
        </soapenv:Header>
        <soapenv:Body>
            <urn:ValidateSignatureXmlRequest>
                <urn:Xml>
                    <![CDATA[<MultiSign Id="id-872352006">Documento XML<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-1696984640"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></ds:CanonicalizationMethod><ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></ds:SignatureMethod><ds:Reference Id="Reference-ID-2648686705" URI="#id-872352006"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></ds:Transform></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod><ds:DigestValue>ut+GLimt964oF+gFtMld05e9vTE=</ds:DigestValue></ds:Reference><ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#SignedProperties-256468293"><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod><ds:DigestValue>1WxYwQBQ7L0cy8vH1t5hapQ/JYw=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>
    r0CXAJSnHvlLjZbOp9XWeHFwM/64lcIb1e06dk273UoS0wuSsbJzRatqB87o/y1q XTkJfAaoRYoTfm4R9dyiirfL9jcgaqVuVxBWBIz/chbQgvMl6CK8Tfqf5TW+Rns4 sGo4ibY6rjInbPv8XsIgf4Jwh21vBEM+9AJ2Bow4tLXZjwAi/yMyryi51xxISrFI dK9q7DVVOVMid5SspFrBhlHJE3JuKUr204BTGska3a0O5a+5xpZwwU+XtxO5afyK gP0sOg1jSyk+1HQh1dI3rZFTWQ3rCrExEQq7HqJW35wPg/MU2YZ0fWRw0xr3B6r7 zO/gZPNwrVo3DNv7opBU8g==
    	</ds:SignatureValue><ds:KeyInfo><ds:KeyValue><ds:RSAKeyValue><ds:Modulus>
    3KSNCmaJH/Q0+HsxMKEn3KYQBd7V8dHsn0ZkX20TGdE3kwoyKFmr1rpjYSj6zx0d LeuH0D3fd4cBapSWp2YYbsLDbQ8XN81QJapVyLg7UVoFFDQLWZcW1IHQ3V6bWndN 0MCSqxEh4prkFcDtGGw3x4EBQtcklJJZX/DA/nTDWujYQRWkgLZOOHNXxEFCt+Xe SI3Fpej5idSYv6sLACt9Vlg8RX4hU125UmUH2X2p0w5q6ivSONJ20p1cktCQ4H1u w9ZddLbM9bg1ftowP5WmzLXu/yon27gNbV7abRXjku8c5hZBlxZICLbx3dQi6NAD yP+K8DGRthVlr8BLb4/XGQ==
                    </ds:Modulus><ds:Exponent>AQAB</ds:Exponent></ds:RSAKeyValue></ds:KeyValue><ds:X509Data><ds:X509IssuerSerial><ds:X509IssuerName>CN=Reachcore R&amp;D CA4 Root, O=Reachcore, L=Mexico, ST=DF, C=MX</ds:X509IssuerName><ds:X509SerialNumber>2</ds:X509SerialNumber></ds:X509IssuerSerial><ds:X509SubjectName>CN=AC4Firma01, O=Reachcore, L=Mexico, ST=DF, C=MX</ds:X509SubjectName><ds:X509Certificate>
    MIID5jCCAs6gAwIBAgIBAjANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJNWDEL
    MAkGA1UECAwCREYxDzANBgNVBAcMBk1leGljbzESMBAGA1UECgwJUmVhY2hjb3Jl
    MR8wHQYDVQQDDBZSZWFjaGNvcmUgUiZEIENBNCBSb290MB4XDTE2MDQwNzAwMzk0
    NloXDTI2MDQwNTAwMzk0NlowVDELMAkGA1UEBhMCTVgxCzAJBgNVBAgMAkRGMQ8w
    DQYDVQQHDAZNZXhpY28xEjAQBgNVBAoMCVJlYWNoY29yZTETMBEGA1UEAwwKQUM0
    RmlybWEwMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANykjQpmiR/0
    NPh7MTChJ9ymEAXe1fHR7J9GZF9tExnRN5MKMihZq9a6Y2Eo+s8dHS3rh9A933eH
    AWqUlqdmGG7Cw20PFzfNUCWqVci4O1FaBRQ0C1mXFtSB0N1em1p3TdDAkqsRIeKa
    5BXA7RhsN8eBAULXJJSSWV/wwP50w1ro2EEVpIC2TjhzV8RBQrfl3kiNxaXo+YnU
    mL+rCwArfVZYPEV+IVNduVJlB9l9qdMOauor0jjSdtKdXJLQkOB9bsPWXXS2zPW4
    NX7aMD+Vpsy17v8qJ9u4DW1e2m0V45LvHOYWQZcWSAi28d3UIujQA8j/ivAxkbYV
    Za/AS2+P1xkCAwEAAaOBtjCBszAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1P
    cGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUIKnBCa9xXL9U
    jZh6+MuIv7OZ7hUwHwYDVR0jBBgwFoAURzF83CiDmtfR5kOB3poGlHNMtR0wOAYI
    KwYBBQUHAQEELDAqMCgGCCsGAQUFBzABhhxodHRwOi8vY2EucmVhY2hjb3JlLm5l
    dDoxMzIzMA0GCSqGSIb3DQEBCwUAA4IBAQA413A6qEj/afubOIpcm9Vfd0Gmp128
    DFFf4HpLUqfbZSdvoHybJAt3ThniFvRxsTMtZ8lLozIys0/ClPh6S/LWg4cFrDWw
    kUNIICT/hh4nSj+KE8QAgQCS9MckJ4yxttY3AlgiwV7742JzMfwTHXlsL5ZgVJmk
    84hSHzLJmGd2H5EOEZjjxEy4Oh+fu1jr1f5n9B8Yq97BwNHHIORpCtcbVNoHMbIx
    iwhzaasVLnB9N/43HRmfDH50cVbigPQWRe2X02yqlaRiUD1HKrWurZLUA/c/SE+8
    yPfCRNeHgVvzZIRB8N6z8aFs6/TMyXIuwdL4nILsMfafeEK3AuB9cF3Q
    			</ds:X509Certificate></ds:X509Data></ds:KeyInfo><ds:Object><etsi:QualifyingProperties xmlns:etsi="http://uri.etsi.org/01903/v1.3.2#" Target="#Signature-1696984640"><etsi:SignedProperties Id="SignedProperties-256468293"><etsi:SignedSignatureProperties><etsi:SigningTime>2016-08-03T20:38:25.252Z</etsi:SigningTime><etsi:SigningCertificate><etsi:Cert><etsi:CertDigest><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod><ds:DigestValue>IYOe+fEMiecrlOkjpB2DBzXm/to=</ds:DigestValue></etsi:CertDigest><etsi:IssuerSerial><ds:X509IssuerName>CN=Reachcore R&amp;D CA4 Root, O=Reachcore, L=Mexico, ST=DF, C=MX</ds:X509IssuerName><ds:X509SerialNumber>2</ds:X509SerialNumber></etsi:IssuerSerial></etsi:Cert></etsi:SigningCertificate></etsi:SignedSignatureProperties><etsi:SignedDataObjectProperties><etsi:DataObjectFormat ObjectReference="#Reference-ID-2648686705"><etsi:Description>contenido documento</etsi:Description><etsi:MimeType>text/xml</etsi:MimeType></etsi:DataObjectFormat></etsi:SignedDataObjectProperties></etsi:SignedProperties></etsi:QualifyingProperties></ds:Object></ds:Signature><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-606595304"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></ds:CanonicalizationMethod><ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></ds:SignatureMethod><ds:Reference Id="Reference-ID-1928026958" URI="#id-872352006"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></ds:Transform></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod><ds:DigestValue>ut+GLimt964oF+gFtMld05e9vTE=</ds:DigestValue></ds:Reference><ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#SignedProperties-1146043365"><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod><ds:DigestValue>7zwyJ3MfjfxGqMsvdtDAScvJVh8=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>
    esh4+ZUMoob+pbyEN/tekRT/UVhR1aLJQZqWEAPZtWQ6B0yBYW0ynQsiEqYTIbXw bWrfkegugAyhqVfHHQoMHKAxzKQKhpEBH1ten9A0+325GshpNEaFz+wcXDR5Lp6w 4h2z+zunuxCZt/C5V8QsA3eLdC4dkpDWbH2B8gdd1xoWnqh2Pp/6RXAakOPJKBY3 4D4PdP8GhCQKMw35hXF4K4SZ/eJyvrHmEPZwe8D2hOsQkIuLQvzRnyuvVDOBKTKp NNz4EIOmLjoLSxo27YbUAUhBD7Qy6ATv0y0ol08sgkoe/ZfxWly+vCYNJUHJxOeN k+z/flgXJ6OCbFP6PHSv5A==
    	</ds:SignatureValue><ds:KeyInfo><ds:KeyValue><ds:RSAKeyValue><ds:Modulus>
    3KSNCmaJH/Q0+HsxMKEn3KYQBd7V8dHsn0ZkX20TGdE3kwoyKFmr1rpjYSj6zx0d LeuH0D3fd4cBapSWp2YYbsLDbQ8XN81QJapVyLg7UVoFFDQLWZcW1IHQ3V6bWndN 0MCSqxEh4prkFcDtGGw3x4EBQtcklJJZX/DA/nTDWujYQRWkgLZOOHNXxEFCt+Xe SI3Fpej5idSYv6sLACt9Vlg8RX4hU125UmUH2X2p0w5q6ivSONJ20p1cktCQ4H1u w9ZddLbM9bg1ftowP5WmzLXu/yon27gNbV7abRXjku8c5hZBlxZICLbx3dQi6NAD yP+K8DGRthVlr8BLb4/XGQ==
                    </ds:Modulus><ds:Exponent>AQAB</ds:Exponent></ds:RSAKeyValue></ds:KeyValue><ds:X509Data><ds:X509IssuerSerial><ds:X509IssuerName>CN=Reachcore R&amp;D CA4 Root, O=Reachcore, L=Mexico, ST=DF, C=MX</ds:X509IssuerName><ds:X509SerialNumber>2</ds:X509SerialNumber></ds:X509IssuerSerial><ds:X509SubjectName>CN=AC4Firma01, O=Reachcore, L=Mexico, ST=DF, C=MX</ds:X509SubjectName><ds:X509Certificate>
    MIID5jCCAs6gAwIBAgIBAjANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJNWDEL
    MAkGA1UECAwCREYxDzANBgNVBAcMBk1leGljbzESMBAGA1UECgwJUmVhY2hjb3Jl
    MR8wHQYDVQQDDBZSZWFjaGNvcmUgUiZEIENBNCBSb290MB4XDTE2MDQwNzAwMzk0
    NloXDTI2MDQwNTAwMzk0NlowVDELMAkGA1UEBhMCTVgxCzAJBgNVBAgMAkRGMQ8w
    DQYDVQQHDAZNZXhpY28xEjAQBgNVBAoMCVJlYWNoY29yZTETMBEGA1UEAwwKQUM0
    RmlybWEwMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANykjQpmiR/0
    NPh7MTChJ9ymEAXe1fHR7J9GZF9tExnRN5MKMihZq9a6Y2Eo+s8dHS3rh9A933eH
    AWqUlqdmGG7Cw20PFzfNUCWqVci4O1FaBRQ0C1mXFtSB0N1em1p3TdDAkqsRIeKa
    5BXA7RhsN8eBAULXJJSSWV/wwP50w1ro2EEVpIC2TjhzV8RBQrfl3kiNxaXo+YnU
    mL+rCwArfVZYPEV+IVNduVJlB9l9qdMOauor0jjSdtKdXJLQkOB9bsPWXXS2zPW4
    NX7aMD+Vpsy17v8qJ9u4DW1e2m0V45LvHOYWQZcWSAi28d3UIujQA8j/ivAxkbYV
    Za/AS2+P1xkCAwEAAaOBtjCBszAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1P
    cGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUIKnBCa9xXL9U
    jZh6+MuIv7OZ7hUwHwYDVR0jBBgwFoAURzF83CiDmtfR5kOB3poGlHNMtR0wOAYI
    KwYBBQUHAQEELDAqMCgGCCsGAQUFBzABhhxodHRwOi8vY2EucmVhY2hjb3JlLm5l
    dDoxMzIzMA0GCSqGSIb3DQEBCwUAA4IBAQA413A6qEj/afubOIpcm9Vfd0Gmp128
    DFFf4HpLUqfbZSdvoHybJAt3ThniFvRxsTMtZ8lLozIys0/ClPh6S/LWg4cFrDWw
    kUNIICT/hh4nSj+KE8QAgQCS9MckJ4yxttY3AlgiwV7742JzMfwTHXlsL5ZgVJmk
    84hSHzLJmGd2H5EOEZjjxEy4Oh+fu1jr1f5n9B8Yq97BwNHHIORpCtcbVNoHMbIx
    iwhzaasVLnB9N/43HRmfDH50cVbigPQWRe2X02yqlaRiUD1HKrWurZLUA/c/SE+8
    yPfCRNeHgVvzZIRB8N6z8aFs6/TMyXIuwdL4nILsMfafeEK3AuB9cF3Q
                </ds:X509Certificate></ds:X509Data></ds:KeyInfo><ds:Object><etsi:QualifyingProperties xmlns:etsi="http://uri.etsi.org/01903/v1.3.2#" Target="#Signature-606595304"><etsi:SignedProperties Id="SignedProperties-1146043365"><etsi:SignedSignatureProperties><etsi:SigningTime>2016-08-03T20:38:26.673Z</etsi:SigningTime><etsi:SigningCertificate><etsi:Cert><etsi:CertDigest><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod><ds:DigestValue>IYOe+fEMiecrlOkjpB2DBzXm/to=</ds:DigestValue></etsi:CertDigest><etsi:IssuerSerial><ds:X509IssuerName>CN=Reachcore R&amp;D CA4 Root, O=Reachcore, L=Mexico, ST=DF, C=MX</ds:X509IssuerName><ds:X509SerialNumber>2</ds:X509SerialNumber></etsi:IssuerSerial></etsi:Cert></etsi:SigningCertificate></etsi:SignedSignatureProperties><etsi:SignedDataObjectProperties><etsi:DataObjectFormat ObjectReference="#Reference-ID-1928026958"><etsi:Description>contenido documento</etsi:Description><etsi:MimeType>text/xml</etsi:MimeType></etsi:DataObjectFormat></etsi:SignedDataObjectProperties></etsi:SignedProperties></etsi:QualifyingProperties></ds:Object></ds:Signature></MultiSign>]]>
                </urn:Xml>
            </urn:ValidateSignatureXmlRequest>
        </soapenv:Body>
    </soapenv:Envelope>

    Respuesta ValidateSignatureXML

    Elemento Descripción
    Error
  • false: Transacción exitosa.
  • true: Error al procesarse la transacción.
  • Errors En caso que el elemento Error tenga el valor true, se mostrara la descripción del error.
    ValidationResult/Valid
  • true: Firma válida.
  • false: Firma inválida.
  • Signatures Es un arreglo de elementos Signature indicando el detalle de las firmas en el XML, cuando ésta es válida.
  • Id.- identificador de la firma
  • Valid.- true si es válida la firma. false firma inválida.
  • Issuer
    • Timestamp.- fecha y hora en que ser realizó la firma.
    • SerialNumber.- Número de serie del certificado con el cual se realizó la firma.
    • Subject.- Información del sujeto contenido en certificado
    • Issuer.- información del emisor del certificado
  • TransactionId Número único de transacción asignado por Sovos.
    TransactionProperties Para futura funcionalidad.


    Ejemplo de respuesta en donde es válida la firma electrónica del XML.

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
       <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          <ValidateSignatureXmlResponse xmlns="urn:schemas.reachcore.com:signature">
             <Error>false</Error>
             <Errors/>
             <ValidationResult>
                <Valid>true</Valid>
             </ValidationResult>
             <Signatures>
                <Signature>
                   <Id>Signature-1696984640</Id>
                   <Valid>true</Valid>
                   <Messages/>
                   <SignerInfo>
                      <Timestamp>2016-08-03T20:38:25</Timestamp>
                      <SerialNumber>02</SerialNumber>
                      <Subject>CN=AC4Firma01, O=Reachcore, L=Mexico, ST=DF, C=MX</Subject>
                      <Issuer>CN=Reachcore R&amp;D CA4 Root, O=Reachcore, L=Mexico, ST=DF, C=MX</Issuer>
                   </SignerInfo>
                </Signature>
                <Signature>
                   <Id>Signature-606595304</Id>
                   <Valid>true</Valid>
                   <Messages/>
                   <SignerInfo>
                      <Timestamp>2016-08-03T20:38:26</Timestamp>
                      <SerialNumber>02</SerialNumber>
                      <Subject>CN=AC4Firma01, O=Reachcore, L=Mexico, ST=DF, C=MX</Subject>
                      <Issuer>CN=Reachcore R&amp;D CA4 Root, O=Reachcore, L=Mexico, ST=DF, C=MX</Issuer>
                   </SignerInfo>
                </Signature>
             </Signatures>
             <TransactionId>b7c2f395-d82e-4d3f-8d53-117128ba7423</TransactionId>
             <TransactionProperties/>
          </ValidateSignatureXmlResponse>
       </s:Body>
    </s:Envelope>

    Ejemplo de respuesta en donde no es válida la firma electrónica del XML.

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
       <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          <ValidateSignatureXmlResponse xmlns="urn:schemas.reachcore.com:signature">
             <Error>false</Error>
             <Errors/>
             <ValidationResult>
                <Valid>false</Valid>
             </ValidationResult>
             <Signatures>
                <Signature>
                   <Id>Signature-1999858748</Id>
                   <Valid>false</Valid>
                   <Messages>
                      <Message>
                         <Message>La firma xml no tiene referencia(s) válida(s).</Message>
                      </Message>
                   </Messages>
                   <SignerInfo/>
                </Signature>
             </Signatures>
             <TransactionId>f2b9916a-4cac-454b-a12a-e8c4913052f9</TransactionId>
             <TransactionProperties/>
          </ValidateSignatureXmlResponse>
       </s:Body>
    </s:Envelope>

    Códigos de error validación

    Los siguientes códigos se mostrarán cuando no se ha podido realizar la validación de firma satisfactoriamente.

    Código Significado Descripción
    100 API Key Requerida El API Key es requerido
    101 API Key no válida No es válido el API Key proporcionado
    102 API Key inactivo El API Key esta inactivo
    111 No cuenta con funcionalidad de firma activa Su cuenta no tiene activada la funcionalidad de firma. Por favor contacte a Sovos
    204 Errores de Autoridad Certificadora (CA) Ocurrió un error al realizar la validación del certificado en la autoridad certificadora.
    301 XML mal formado El XML que se esta solicitando validar, no esta bien formado.
    302 XML vacío No hay XML para validar en la solicitud
    999 Error interno de plataforma Error interno de la plataforma. Notificar a soporte el TransactionId para el diagnóstico.

    Para mayor información o aclaración de dudas relacionadas con esta guía, por favor envía un correo a MEX-soporte@sovos.com


    Regresar