Entorno de pruebas para enviar facturas electrónicas a la AEAT


Como ya he comentado hace unos días, entre las novedades recientes de la eFactura de la AEAT está la posibilidad de utilizar el entorno de pruebas que permite probar el sistema a las empresas proveedoras de la AEAT.

En este POST recojo las principales características del entorno.

La comunicación se lleva a cabo con protocolo SOAP. El cliente se genera a partir del WSDL publicado a continuación.

En la página de la AEAT hay  un ejemplo válido de e-factura así como un modelo de hoja de estilo para una visualización del xml más amigable  los tags (etiquetas XML)  obligatorios y el esquema de la respuesta de la AEAT. Están todos empaquetados en un fichero zip para facilitar su descarga.

También se indica la descripción de campos y una política de firma simplificada.

La AEAT solo admite una factura por petición. Si se quieren incluir varias facturas en un mismo Lote no hay más que indicar el mismo número del Lote en cada petición, correspondiendo a cada número de factura.

Cada esquema en sus distintas versiones se tomará de la página de CCI dedicada a la eFactura.

Aunque ya se ha publicado la versión 2.0 del formato XML-CCI,  para las pruebas con la AEAT se utiliza en esta fase la Versión 1.2.

El tag <Emisor> se rellena con

<Emisor>
    <IdentificacionFiscal>
           <TipoPersona>F</TipoPersona>
            <TipoResidencia>R</TipoResidencia>
            <NumeroDocumento>99999999R</NumeroDocumento>
     </IdentificacionFiscal>
    <PersonaFisica>
         <Nombre>Juan Español Español</Nombre>
         <PrimerApellido />
         <DireccionNacional>
               <Direccion>La que sea</Direccion>
               <CP>El que sea</CP>
               <Poblacion>La que sea</Poblacion>
               <Provincia>La que sea</Provincia>
              <CodigoPais>ESP</CodigoPais>
          </DireccionNacional>
   </PersonaFisica>
</Emisor>

El tag <Receptor> se rellena con

<Receptor>
     <IdentificacionFiscal>
         <TipoPersona>J</TipoPersona>
         <TipoResidencia>R</TipoResidencia>
         <NumeroDocumento>Q2826000H</NumeroDocumento>
     </IdentificacionFiscal>
     <Centros>
        <Centro>
            <Numero>Si se pone habrá que poner uno válido como por ejemplo 19054</Numero>
            <DireccionNacional>
               <Direccion>Calle Sta María Magdalena 16</Direccion>
               <CP>28018</CP>
               <Poblacion>Madrid</Poblacion>
               <Provincia>Madrid</Provincia>
               <CodigoPais>ESP</CodigoPais>
            </DireccionNacional>
        </Centro>
     </Centros>
     <PersonaJuridica>
        <RazonSocial>AEAT</RazonSocial>
        <DireccionNacional>
           <Direccion>Calle Sta Maria Magdalena 16</Direccion>
           <CP>28016</CP>
           <Poblacion>Madrid</Poblacion>
           <Provincia>Madrid</Provincia>
           <CodigoPais>ESP</CodigoPais>
        </DireccionNacional>
     </PersonaJuridica>
</Receptor>

Se firma con cualquier certificado de persona física o jurídica perteneciente a alguna de los prestadores de servicios de certificación validados por la AEAT.  Los datos del certificado utilizado que identifican al firmante (NIF/CIF, nombre…), cuando no sea el propio obligado tributario emisor se incluyen en la etiqueta (tag) XML opcional «<Tercero>».

El envío de la petición de pruebas se lleva a cabo hacerse mediante un POST http a la URL de la AEAT  https://www5.aeat.es/L/WI00WID4P0D6/

Respuesta:

1) Una respuesta correcta aparecería como

<?xml version=»1.0″ encoding=»UTF-8″ ?>
   <env:Envelope xmlns:env=»http://schemas.xmlsoap.org/soap/envelope/«>
      <env:Header>
         <ds:Signature xmlns:ds=»http://www.w3.org/2000/09/xmldsig#»>
            <ds:SignedInfo>
               <ds:CanonicalizationMethod Algorithm=»http://www.w3.org/TR/2001/RECxml-c14n-20010315» />
               <ds:SignatureMethod Algorithm=»http://www.w3.org/2000/09/xmldsig#rsa-sha1» />
               <ds:Reference URI=»#AEATWID4P0D420061212094104159″>
                  <ds:Transforms>
                     <ds:Transform Algorithm=»http://www.w3.org/2000/09/xmldsig#enveloped-signature» />
                     <ds:Transform Algorithm=»http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments» />
                  </ds:Transforms>
                  <ds:DigestMethod Algorithm=»http://www.w3.org/2000/09/xmldsig#sha1» />
                     <ds:DigestValue>W9Ho8XV15BlcfjL+S6nk+8MCKFk=</ds:DigestValue>
               </ds:Reference>
            </ds:SignedInfo>
         <ds:SignatureValue>WHsu8zBunrxl84LBfLBOblPHxbGHvFP0qbuc8/p/K1mAOCuYgMZFYA6W0dflVaR6zVaH7RwciIBg
            tZ0XymrIMlYMVNOhVYz1x6HJpFkV15+Y3Po8eMToyIYK4xwTB444zzevRRj7qdHjsKZkYxivR7RxPgWCaBMYe0BHM2mu4/I=</ds:SignatureValue>
         <ds:KeyInfo>
            <ds:X509Data>
               <ds:X509Certificate>
                  MIIFHjCCBIegAwIBAgIEPHms0DANBgkqhkiG9w0BAQUFADA2MQswCQYDVQQGEwJFUzENMAsGA1UE
                  ChMERk5NVDEYMBYGA1UECxMPRk5NVCBDbGFzZSAyIENBMB4XDTA0MDQwNjE0MDQwN1oXDTA3MDQw
                  NjE0MDQwN1owgYAxCzAJBgNVBAYTAkVTMQ0wCwYDVQQKEwRGTk1UMRgwFgYDVQQLEw9GTk1UIENs
                  YXNlIDIgQ0ExEjAQBgNVBAsTCTUwMDA1MzA3NTE0MDIGA1UEAxQrTk9NQlJFIEVTUEHxT0wgRVNQ
                  QfFPTCBKVUFOIC0gTklGIDk5OTk5OTk5UjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAo5Jv
                  M9KS6FIAOanyikv6cJXK8FLzp7HDMimyl3PXvWBIcw7L7O6uET9Fj7lMFVMPUmvJ1ytGNQ/X5GM/  
                  ZmUTsp3wvAY8GPLhqV3efe/5NhRHNTmiqN32mqowy/99AT3Pxf7xRdDtCcc0gC19il0k4eCm8IkX
                  BsQGdh/HATis1LECAwEAAaOCAuwwggLoMGwGA1UdEQRlMGOkYTBfMRgwFgYJKwYBBAGsZgEEEwk5
                  OTk5OTk5OVIxFjAUBgkrBgEEAaxmAQMUB0VTUEHxT0wxFjAUBgkrBgEEAaxmAQIUB0VTUEHxT0wx
                  EzARBgkrBgEEAaxmAQETBEpVQU4wCQYDVR0TBAIwADArBgNVHRAEJDAigA8yMDA0MDQwNjE0MDQw
                  N1qBDzIwMDcwNDA2MTQwNDA3WjALBgNVHQ8EBAMCBaAwEQYJYIZIAYb4QgEBBAQDAgWgMB0GA1Ud
                  DgQWBBRuqaIGgbzAGisYYmNwwcYRbm+mlDAfBgNVHSMEGDAWgBRAmnZEl3QHxKwUyx6NTzpFfDDX
                  YTCCATEGA1UdIASCASgwggEkMIIBIAYJKwYBBAGsZgMFMIIBETA0BggrBgEFBQcCARYoaHR0cDov
                  L3d3dy5jZXJ0LmZubXQuZXMvY29udmVuaW8vZHBjLnBkZjCB2AYIKwYBBQUHAgIwgcsagchDZXJ0
                  aWZpY2FkbyBSZWNvbm9jaWRvIGV4cGVkaWRvIHNlZ/puIGxlZ2lzbGFjafNuIHZpZ2VudGUuVXNv
                  IGxpbWl0YWRvIGEgbGEgQ29tdW5pZGFkIEVsZWN0cvNuaWNhIHBvciB2YWxvciBt4XhpbW8gZGUg
                  MTAwIGUgc2Fsdm8gZXhjZXBjaW9uZXMgZW4gRFBDLkNvbnRhY3RvIEZOTVQ6Qy9Kb3JnZSBKdWFu
                  IDEwNi0yODAwOS1NYWRyaWQtRXNwYfFhLjAdBgkrBgEEAaxmASEEEBYOUEVSU09OQSBGSVNJQ0Ew
                  LwYIKwYBBQUHAQMEIzAhMAgGBgQAjkYBATAVBgYEAI5GAQIwCxMDRVVSAgFkAgEAMFsGA1UdHwRU
                  MFIwUKBOoEykSjBIMQswCQYDVQQGEwJFUzENMAsGA1UEChMERk5NVDEYMBYGA1UECxMPRk5NVCBD
                  bGFzZSAyIENBMRAwDgYDVQQDEwdDUkwxMjUyMA0GCSqGSIb3DQEBBQUAA4GBABJ9cQScVFdSF6ph
                  13bZO9cqIcPFxOllMnBgJyR2UlZ8o9vzlFkhLkgX3GcGVM19NVd6f9JUCnngI6GfWDBSDAYxeN3W
                  mXJIbOeLg2kxbXsq6/POg++ul8w1KHrbDqqGWC7IYBO88e/b63DvtpkbbCgIVJ6UcHc1x9WbI1b6hC9C
               </ds:X509Certificate>
            </ds:X509Data>
         </ds:KeyInfo>
      </ds:Signature>
   </env:Header>
 <env:Body Id=»AEATWID4P0D420061212094104159″>
    <RespFacturas>
       <Lote>LoteDioni001</Lote>
    <Emisor>
       <TipoDocumento>F</TipoDocumento>
       <Documento>A81069197</Documento>
    </Emisor>
    <FechaRecepcion>2006-12-12</FechaRecepcion>
    <NumeroFacturas>1</NumeroFacturas>
    <Retorno>
       <CodigoRetorno>0000</CodigoRetorno>
       <Descripcion>Correcto</Descripcion>
       <NumeroFactura>001</NumeroFactura>
    </Retorno>
    <CodigoElectronico>257262242DA9759D</CodigoElectronico>
    <RegistroAEAT />
  </RespFacturas>
 </env:Body>
</env:Envelope>

2) Una respuesta con error se generaría con el estándar SOAP FAULT como por ejemplo:

<?xml version=»1.0″ encoding=»UTF-8″ ?>
   <env:Envelope xmlns:env=»http://schemas.xmlsoap.org/soap/envelope/«>
      <env:Body>
         <env:Fault>
            <faultcode>env:Server</faultcode>
            <faultstring>[0305] Firma no válida</faultstring>
            <faultactor>WID4P0D4</faultactor>
            <detail>
               <IdPeticion />
               <NumElementos>1</NumElementos>
               <TimeStamp>2006-12-05-11.22.06.590229</TimeStamp>
            <Estado>
               <CodigoEstado>0305</CodigoEstado>
               <LiteralError>R-INSERT-WIGE03MEN. :Firma no válida</LiteralError>
               <TiempoEstimadoRespuesta />
            </Estado>
            <CodCertificado />
         </detail>
         </env:Fault>
      </env:Body>
   </env:Envelope>

 

4 comentarios en “Entorno de pruebas para enviar facturas electrónicas a la AEAT

  1. Pingback: Bricks and Bits » Mi otro blog

  2. Avatar de inzainza Autor

    Hola deincognito,

    Sí que tenemos estas aplicaciones. Soportan todo tipo de certificados.

    En los certificados reconocidos hay una pequeña integración para asegurar el entorno inmediato de firma en un «dispositivo seguro de creación de firma» (un HSM o una tarjeta chip).

    Para el libro sobre factura electrónica que hemos preparado para ASIMELEC y «Red.es» hemos creado una herramienta gratuita que llamamos «profirma» y que genera firmas en PKCS#7 en entornos windows a partir de claves y certificados incorporados al repositorio, de forma que sirve, por ejemplo, para firmar con el DNI electrónico.

    En cuanto se anuncie la disponibilidad del libro pondremos el programa a disposición de los usuarios a través del web del Grupo de Trabajo de eFactura de ASIMELEC http://www.efactura.org.es

    Otra herramienta muy interesante que hemos preparado permite firmar lotes de facturas PDF de forma sencilla y con rendimientos muy altos.

    Responder
  3. Avatar de deincognitodeincognito

    Julián,

    ¿Tenéis en Albalia Interactiva alguna aplicación de firma electrónica de lotes de documentos al estilo de la firma de lotes de facturas de la AEAT? ¿Qué certificados soporta?¿Avanzados y reconocidos?

    Como siempre, gracias

    Responder
  4. Avatar de sirventessirventes

    Genial!
    La administración española es una de las mejores del mundo en innovación electrónica. Cuando estaba en España trabajaba en el ramo. Deberías ver la cara de los extranjeros cuando veían el funcionamiento de la devolución del IVA de no residentes en un par de dias.
    Lo de la factura electrónica nunca lo llegué a ver funcionar, pero el proyecto me encantaba.
    En UK, incluso la declaración de la renta va por papelito, crucecitas y cálculos.

    Responder

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.