Post on 03-Mar-2021
ESTE DOCUMENTO DESCRIBE EL FUNCIONAMIENTO DEL
WEBSERVICE DE DESCARGA CFDI CON EL CUAL SE PUEDE
REALIZAR LA DESCARGA DE CFDI ’S
O METADATA DEL SAT .
AUTORIZACIÓN
POR ENCABEZADO HTTP . AUTHORIZATION : BASIC .
OPERACIONES
/SOLICITUDESSERVICE .SVC /GENERARSOLICITUD
GENERA UNA SOLICITUD DE DESCARGA DE CFDI ’S /
METADATA PARA SU POSTERIOR SEGUIMIENTO .
MÉTODO
MÉTODO
MÉTODO
MÉTODO
/SOLICITUDESSERVICE .SVC /VERIF ICARSOLICITUD
VERIF ICA QUE LA SOLICITUD GENERADA PREVIAMENTE
ESTÉ DISPONIBLE PARA SU DESCARGA .
/SOLICITUDESSERVICE .SVC /DESCARGARSOLICITUD
OBTIENE EL ARCHIVO ZIP QUE CONTIENE LOS ARCHIVOS
GENERADOS POR LA SOLICITUD IN IC IAL .
/SOLICITUDESSERVICE .SVC /ALMACENACERKEY
PERMITE ALMACENAR EL PAR DE CLAVES (PÚBLICA Y
PRIVADA ) PARA SU POSTERIOR USO .
GENERAR SOLICITUDEl método sirve para crear una solicitud dedescarga de CFDI’s / Metadata con ciertos parámetros. La respuesta incluyeunidentificador con el que se da posterior seguimiento en el métodoVerificarSolicitud. El request es de tipo SolicitudRequest.
PARÁMETROS :
Tipo de dato complejo quedescribe al emisor de los
comprobantes.
Nombre Descripción Tipo de dato
Emisor tns:Emisor
Fecha de inicio de los archivossolicitados.
xml:dateTimeFechaInicial
FechaFinal Fecha de fin de los archivossolicitados.
xml:dateTime
TipoSolicitudTipo de dato complejo quedescribe el tipo de solicitud
que está realizando.tns:TipoSolicitud
TipoComprobante
Tipo de dato complejo quedescribe los comprobantes que
se obtendrán en la solicitud.tns:TipoComprobante
Identificador de lasolicitud devuelto por el SAT.
Nombre Descripción Tipo de dato
IdSolicitud xml:string
Tipo de dato complejo quedescribe el resultado a detalle.
tns:ResultadoResultado
SOLICITUDREQUEST :
SOLICITUDRESPONSE :
VERIFICAR SOLICITUD
PARÁMETROS :
Tipo de dato complejoque describe al Emisor de los
comprobantes.
Nombre Descripción Tipo de dato
IdSolicitud xml:stringIdentificador de la
solicitud que devuelve elmétodo GenerarSolicitud.
tns:EmisorEmisor
Identificador de el(los)paquete(s) que resultaron de lasolicitud hecha anteriormente y
devuelto por elSAT.
Nombre Descripción Tipo de dato
xml:ArrayofstringIdPaquete
El método sirve para verificar que está listala descarga de el(los) archivo(s) correspondientes a la solicitud hechaanteriormente. La respuesta puede contener uno o variosidentificadores de paquete, esto depende de cuánta información se deseadescargar, el SAT decide cuántos paquetes habrá de servir posteriormente. El request es de tipo VerificaRequest
Parámetros:La respuesta es de tipo VerificaResponse.
Tipo de dato complejoque describe el Resultado a
detalle.
Resultado tns:Resultado
VERIF ICAREQUEST :
VERIF ICARESPONSE :
DESCARGAR SOLICITUDEl método sirve para obtener el paquete quecontiene los archivos devueltos por el SAT y que corresponden a la solicitudhecha previamente. Aunque haya varios paquetes en la solicitud,la descarga se hace individualmente, para ello se necesita cada identificadorde paquete obtenido en la respuesta del método VerificarSolicitud. Sedevuelve una cadenacodificada en base 64 y que representan los bytes de un archivo comprimidozip.
PARÁMETROS :
Tipo de dato complejoque describe al Emisor de los
comprobantes.
Nombre Descripción Tipo de dato
IdPaquete xml:stringIdentificador del paquete que
devuelve el métodoVerificarSolicitud.
tns:EmisorEmisor
RESPUESTA :
Cadena en formato base64que representa el archivo
comprimido zip que contieneel(los) archivo(s) delpaquete solicitado.
Nombre Descripción Tipo de dato
Resultado
xml:string
Tipo de dato complejoque describe el Resultado a
detalle.
ArchivoBase64
tns:Resultado
El request es de tipo DescargaRequest
El request es de tipo DescargaResponse
DESCARGAREQUEST
DESCARGARESPONSE
ALMACENACERKEYEl método permite almacenar el par de archivos.cer (llave pública) y .key (llave privada) de la e.firma para su posterioruso.La contraseña de la llave privada es requeridaúnicamente para propósitos de validación ya que no se almacena en elsistema.
El request es de tipo Emisor.
RESPUESTA :
TIPOS DE DATOS COMPLEJOS
La respuesta es de tipo Resultado.
Emisor:Este objeto representa a un solicitante. Losdatos de RFC, y archivos de e.firma se combinan para realizar la petición alSAT,por lo tanto deben corresponder ya sea al Emisor o al Receptor de loscomprobantes o Metadata solicitados.
El RFC debe estar previamente registrados enel sistema de Descarga CFDI, losarchivos de la e.firma pueden estar almacenados en Descarga CFDI, encuyo caso no es necesario especificarlos en cada petición.
El registro federal decontribuyentes del emisorregistrado en el sistema.
Nombre Descripción Tipo de dato
RFC xml:string
Cadena en formato base64que representa el archivo .cer
(llave pública) del emisor.
ArchivoCerBase64
ArchivoKeyBase64Cadena en formato base64
que representa el archivo .key(llave privada) del emisor.
ContrasenaKeyContraseña del archivo .key
del emisor.
NumeroCertificadoNúmero de certificado del
archivo .cer del emisor.
xml:string
xml:string
xml:string
xml:string
ReSULTADO:Este objeto contiene el detalle del resultadode las peticiones, se usa también en las excepciones para especificar lacausadel error.
Código numéricoidentificador del mensaje de
respuesta.
Nombre Descripción Tipo de dato
Codigo xml:int
Descripción del códigonumérico del mensaje de
respuesta.Mensaje
EsValido Valor si el mensaje derespuesta es correcto o no.
DatosDatos adicionales del
mensaje de respuesta.
xml:string
xml:boolean
xml:ArrayOfKeyValueOfstringanyType
Especifica que la solicitud es paraobtener los archivos XML que
representan los CFDI’s.
Nombre Descripción Tipo de dato
Metadata
Especifica que lasolicitud debe incluir el archivo
TXT con los metadatos quecoinciden con la
solicitud.
xml:enumerationCFDI
xml:enumeration
TipoSolicitudLista con los posibles valores paraespecificar si se trata de una solicitud de CFDI’s o Metadata.
Especifica que el RFCemisor es el mismo de la
solicitud.
Nombre Descripción Tipo de dato
RecibidasEspecifica que el RFC
emisor es el receptor de lasolicitud.
xml:enumerationEmitidas
xml:enumeration
TipoComprobanteLista con los posibles valores paraespecificar si se trata de una solicitud de CFDI’s / Metadata emitidos orecibidos por el solicitante.
EXCEPCIONES
FaultException<Resultado>Es un tipo de excepción nativo de WCF, se añade el objeto Resultadocomo detalle.
MessageSecurityException.Este error sólo ocurre cuando la autenticaciónfalla, ya sea por un usuario inexistente o una contraseña errónea. ExceptionEs el tipo de excepción genérico.
CATÁLOGO DE ERRORES
Los errores contienen un código numérico únicoy un mensaje que sirve como descripción de la causa del error. A continuación se detallan los errores que seobtienen del WebService del SAT. Estos errores corresponden a problemasrelacionados con el procesamiento de la solicitud de descarga.
Usuario No Válido
Código Mensaje Descripción
302 Sello mal formado
300Este código de error se regresa cuando elrequest posee información inválida,ejemplo: un RFC de receptor no válido.
301 XML mal formado
El error se devuelve cuando hay un erroral sellar la petición al SAT usando losarchivos de la e.firma.
303Sello no corresponde
con RfcSolicitanteEl error ocurre cuandoel sello formado no es el mismo que elRFC que se especificó como el solicitante.
304Certificado Revocado
o CaducoEl certificado fue revocado o bien la fechade vigencia expiró
Certificado Inválido
5001 Tercero no autorizado
305El certificado puede serinválido por múltiples razones como son eltipo, codificación incorrecta, etc.
404 Error no ControladoError genérico, en casode presentarse realizar nuevamente lapetición.
5002Se agotó lassolicitudesde por vida
Para el caso de descargade tipo CFDI, se tiene un límite máximopara solicitudes con los mismosparámetros (Fecha Inicial, Fecha Final,RfcEmisor, RfcReceptor)
5003 Tope máximo
Indica que en base a losparámetros de consulta se estásuperando el tope máximo de CFDI oMetadata, por solicitud de descargamasiva.
5004No se encontró la
informaciónNo se encontró nada para descargar conla información proporcionada.
5005 Solicitud duplicadaEn caso de que ya existauna solicitud vigente con los mismosparámetros (Fecha Inicial, Fecha Final,RfcEmisor, RfcReceptor, TipoSolicitud).
5007 No existe el paquetesolicitado
Este error ocurre cuandose intenta descargar un paquete con unidentificador válido después de 72 horasde haber sido generado.
5008 Máximo de descargaspermitidas
Un paquete solo puededescargarse un total de 2 veces, una vezagotadas, ya no se podrá volver adescargar.