1. Home
  2. [Descarga Masiva SAT] Authenticacion

[Descarga Masiva SAT] Authenticacion

Está guía está dirigida para la generación del XML de la petición. En nuestro GitHub, puedes encontrar ejemplos para C# y PHP, donde cada uno tiene sus propios requisitos.

Requisitos

  • Certificado (*.cer) de nuestra FIEL
  • Llave privada (*.key) de nuestra FIEL
  • Password de llave privada

Si tomamos el XML que aparece en la guía que nos proporciona el SAT para el consumo de esté Web Service, tendríamos algo como el siguiente XML

Calcular datos necesarios

Fecha inicial: Fecha actual de inicio, declaradas como UTC unix. Puedes consultar la fecha actual en dicho formato en la siguiente página

Fecha final: Fecha hasta cuando será válido el token, declarada como UTC unix.

Certificado: Al igual que en CFDI 3.3, tomar los bytes del archivo .cer de la FIEL y hacer un encode utilizando base64.

UUID: Calcular un UUID en formato V4, para efectos prácticos consulta un ejemplo en la siguiente web: https://www.uuidgenerator.net/version4

Una vez calculado, añadir al principio “#uuid-” y al final “-1”, para tener algo como lo siguiente: “#uuid-99683976-cee9-4130-b198-b20654a524dc-1”

DigestValue: Se debe calcular el SHA1 en formato binario del siguiente texto (obviamente la fecha cambiará)

Cuando digo texto, es el nodo con el namespace, pero dicho nodo debe ir sin espacios

Y los bytes que obtienes codearlos a base64.

Utilizando este nodo, el resultado tiene que ser: 5iiWNNO7aJndihjEU6ROuDK1gzE=

SignatureValue: Se debe calcular un algoritmo de digestión SHA1 utilizando la llave privada de la FIEL y el siguiente texto:

Tener en consideración que el DigestValue anteriormente calculado aparece en dicho texto.

Una vez hecha la digestión, el resultado en bytes lo codeamos en base64.

Utilizando la llave privada de la FIEL de pruebas “AUAC4601138F9”, el resultado tiene que ser: Hp12xl1pE3MvdxJx7uNmmJRt+bS8vR9Kw9LLHDqD3g9LfoMwwXpFyO/MB4Ah9oKxWIFuOVWhDiwH4GzeUJ9SPx4ao6VfxW32aH2QnBBE/+2c4kjyaUY7MFyEOAXwdw1drCW30Lns52+flvSKTeaeFS9vHQLmbktD+9Cpcy0mUiRRV/hBEdunoirAf9Zy9QPVbtrAvDrMTiWfth9vvuZExMCg9QjKl33XWbQnz0NaDJkkOxS5rbkNaznEDTPnWeljYW6C2fzzXQlpIe8+WMJAswB31kSb13H8Y+cARxp7+G2gGc7WNZz5LlnJgrLHiOWvh3IlBZG3h9ZGx8lu7fwz6g==

Llenado de campos

Una vez que tengamos los datos anteriormente calculados, procederíamos a ponerlos sobre la plantilla del XML que se debe enviar al SAT.

Fecha Inicial y Fecha Final: Estos campos, irán su correspondiente nodo que está dentro del nodo Timestamp

  • Fecha Inicial va en el nodo Created
  • Fecha Final va en el nodo Expires

UUID: debe ir en las siguientes 2 posiciones

  1. s:Envelope/s:Header/o:Security/o:BinarySecurityToken[@u:Id]
  2. s:Envelope/s:Header/o:Security/Signature/KeyInfo/o:SecurityTokenReference /o:Reference[@URI]

Certificado: Es el texto que en el nodo s:Envelope/s:Header/o:Security/o:BinarySecurityToken

DigestValue: Es el texto que en el nodo s:Envelope/s:Header/o:Security/Signature/SignedInfo/Reference/DigestValue

SignatureValue: Es el texto que va en el nodo s:Envelope/s:Header/o:Security/Signature/SignatureValue

Documento Final

Después de hacer el cálculo y llenado de los datos, tendríamos el siguiente XML de ejemplo.

Dicho ejemplo fue realizado con la FIEL del certificado de pruebas “AUAC4601138F9”, disponible para su descarga en este enlace.

Response exitoso

 

Response con error

 

Siguientes Pasos: 

Updated on enero 11, 2019

Was this article helpful?