Búsqueda de RFC en Listas Negras del SAT

Búsqueda de RFC en Listas Negras del SAT

Esta transacción permite la búsqueda de un RFC particular en las Listas Negras del SAT. La respuesta es una, o dos listas (en dependencia del parámetro de búsqueda especificado), con el detalle de cada registro encontrado.

OBTENER_INFO_LN_SAT

Los parámetros de la solicitud se especificarán todos en Data1 (Data2 y Data3 vacíos). Los parámetros serán indicados en formato string (el ya conocido NamedStringDictionary), y codificado Base64.

Ejemplo de valor para el parámetro Data1 (se muestra en varias líneas y plano para que se entienda mejor, debe especificarse en una sola y codificado Base64):
  1. <Dictionary name="Params">
      <Entry k="SearchType" v="ALL"/>
      <Entry k="TaxID" v="RFC A BUSCAR"/>
    </Dictionary>

Definición de etiquetas Key:

SearchType: Indica en cuáles de las listas disponibles se realizará la búsqueda (valores posibles: BL69B, BL69 y ALL); obligatorio.

TaxID: Indica el RFC a buscar; obligatorio.

SOLICITUD

A continuación se muestra la manera en que debe realizarse la solicitud:
  1. <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ws="http://www.fact.com.mx/schema/ws">
       <soap:Header/>
       <soap:Body>
          <ws:RequestTransaction>
             <ws:Requestor>0c320b03-d4f1-47bc-9fb4-77995f9bf33e</ws:Requestor>
             <ws:Transaction>OBTENER_INFO_LN_SAT</ws:Transaction>
             <ws:Country>MX</ws:Country>
             <ws:Entity>JES900109Q90</ws:Entity>
             <ws:User>0c320b03-d4f1-47bc-9fb4-77995f9bf33e</ws:User>
             <ws:UserName>Jan_Test</ws:UserName>
             <ws:Data1>XML Dictionary en Base64</ws:Data1>
             <ws:Data2></ws:Data2>
             <ws:Data3></ws:Data3>
          </ws:RequestTransaction>
       </soap:Body>
    </soap:Envelope>

RESPUESTA
  1. <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
       <soap:Body>
          <RequestTransactionResponse xmlns="http://www.fact.com.mx/schema/ws">
             <RequestTransactionResult>
                <Request>
                   <Requestor>00000000-0000-0000-0000-000000000000</Requestor>
                   <RequestorActive>true</RequestorActive>
                   <Transaction>OBTENER_INFO_LN_SAT</Transaction>
                   <Country>MX</Country>
                   <Entity>JES900109Q90</Entity>
                   <User>00000000-0000-0000-0000-000000000000</User>
                   <UserName>Jan_Test</UserName>
                   <Id>30d4c057-f744-428c-b097-4df230d10f1f</Id>
                   <TimeStamp>2020-05-21T12:45:33.5547096-05:00</TimeStamp>
                </Request>
                <Response>
                   <Result>true</Result>
                   <TimeStamp>2020-05-21T12:45:34.6484305-05:00</TimeStamp>
                   <LastResult/>
                   <Code>1</Code>
                   <Description/>
                   <Hint/>
                   <Data>903 30d4c057-f744-428c-b097-4df230d10f1f</Data>
                   <Processor>TEST-BACK02</Processor>
                </Response>
                <ResponseData>
                   <ResponseData1>XML de respuesta codificado en Base64</ResponseData1>
                   <ResponseData2/>
                   <ResponseData3/>
                </ResponseData>
             </RequestTransactionResult>
          </RequestTransactionResponse>
       </soap:Body>
    </soap:Envelope>

La respuesta, en caso de que los datos sean válidos, siempre será exitosa (Result con valor true). Esto no indica que el RFC haya sido encontrado o no, lo cual tendrá que ser confirmado en lo que se devuelve en ResponseData1.

Ejemplo de valor devuelto en ResponseData1, formato XML (aunque se muestra plano, y en varias líneas, el valor de ResponseData1 viene codificado en Base64):
  1. <?xml version="1.0" encoding="utf-8"?>
    <SatBLInfoRetrieverResult xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <TaxID>RFC</TaxID>
      <Ds69b>
        <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
          <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
            <xs:complexType>
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="Table1">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element name="No" type="xs:unsignedInt" minOccurs="0" />
                      <xs:element name="RFC" type="xs:string" minOccurs="0" />
                      <xs:element name="Name" type="xs:string" minOccurs="0" />
                      <xs:element name="SituacionContribuyente" type="xs:string" minOccurs="0" />
                      <xs:element name="NumeroFechaOficioGlobalPresuncion" type="xs:string" minOccurs="0" />
                      <xs:element name="PublicacionPaginaSatPresuntos" type="xs:string" minOccurs="0" />
                      <xs:element name="NumeroFechaOficioGlobalPresuncion1" type="xs:string" minOccurs="0" />
                      <xs:element name="PublicacionDofPresuntos" type="xs:string" minOccurs="0" />
                      <xs:element name="PublicacionPaginaSatDesvirtuados" type="xs:string" minOccurs="0" />
                      <xs:element name="NumeroFechaOficioGlobalContribuyenteDesvirtuado" type="xs:string" minOccurs="0" />
                      <xs:element name="PublicacionDofDesvirtuados" type="xs:string" minOccurs="0" />
                      <xs:element name="NumeroFechaOficioGlobalDefinitivos" type="xs:string" minOccurs="0" />
                      <xs:element name="PublicacionPaginaSatDefinitivos" type="xs:string" minOccurs="0" />
                      <xs:element name="PublicacionDofDefinitivos" type="xs:string" minOccurs="0" />
                      <xs:element name="NumeroFechaOficioGlobalSentenciaFavorable" type="xs:string" minOccurs="0" />
                      <xs:element name="PublicacionPaginaSatSentenciaFavorable" type="xs:string" minOccurs="0" />
                      <xs:element name="NumeroFechaOficioGlobalSentenciaFavorable1" type="xs:string" minOccurs="0" />
                      <xs:element name="PublicacionDofSentenciaFavorable" type="xs:string" minOccurs="0" />
                      <xs:element name="Source1" type="xs:int" minOccurs="0" />
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
              </xs:choice>
            </xs:complexType>
          </xs:element>
        </xs:schema>
        <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
          <NewDataSet>
            <Table1 diffgr:id="Table11" msdata:rowOrder="0">
              <No>5</No>
              <RFC>RFC</RFC>
              <Name>RAZÓN SOCIAL, S.A. DE CV.</Name>
              <SituacionContribuyente>Presunto</SituacionContribuyente>
              <NumeroFechaOficioGlobalPresuncion>500-05-2019-7349 de fecha 1 de abril de 2019</NumeroFechaOficioGlobalPresuncion>
              <PublicacionPaginaSatPresuntos>01/04/2019</PublicacionPaginaSatPresuntos>
              <NumeroFechaOficioGlobalPresuncion1>500-05-2019-7349 de fecha 1 de abril de 2019</NumeroFechaOficioGlobalPresuncion1>
              <PublicacionDofPresuntos>26/04/2019</PublicacionDofPresuntos>
              <PublicacionPaginaSatDesvirtuados />
              <NumeroFechaOficioGlobalContribuyenteDesvirtuado />
              <PublicacionDofDesvirtuados />
              <NumeroFechaOficioGlobalDefinitivos />
              <PublicacionPaginaSatDefinitivos />
              <PublicacionDofDefinitivos />
              <NumeroFechaOficioGlobalSentenciaFavorable />
              <PublicacionPaginaSatSentenciaFavorable />
              <NumeroFechaOficioGlobalSentenciaFavorable1 />
              <PublicacionDofSentenciaFavorable />
              <Source1>1000</Source1>
            </Table1>
          </NewDataSet>
        </diffgr:diffgram>
      </Ds69b>
      <Ds69>
        <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
          <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
            <xs:complexType>
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="Table1">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element name="Id" type="xs:unsignedInt" minOccurs="0" />
                      <xs:element name="RFC" type="xs:string" minOccurs="0" />
                      <xs:element name="Name" type="xs:string" minOccurs="0" />
                      <xs:element name="TipoPersona" type="xs:string" minOccurs="0" />
                      <xs:element name="Supuesto" type="xs:string" minOccurs="0" />
                      <xs:element name="FechasPrimeraPublicacion" type="xs:string" minOccurs="0" />
                      <xs:element name="Monto" type="xs:string" minOccurs="0" />
                      <xs:element name="FechaPublicacionConMonto" type="xs:string" minOccurs="0" />
                      <xs:element name="SinNombre1" type="xs:string" minOccurs="0" />
                      <xs:element name="SinNombre2" type="xs:string" minOccurs="0" />
                      <xs:element name="Source1" type="xs:int" minOccurs="0" />
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
              </xs:choice>
            </xs:complexType>
          </xs:element>
        </xs:schema>
        <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
          <NewDataSet>
            <Table1 diffgr:id="Table11" msdata:rowOrder="0">
              <Id>228634</Id>
              <RFC>RFC</RFC>
              <Name>RAZÓN SOCIAL, S.A. DE CV.</Name>
              <TipoPersona>M</TipoPersona>
              <Supuesto>FIRMES</Supuesto>
              <FechasPrimeraPublicacion>16/02/2016</FechasPrimeraPublicacion>
              <Source1>10</Source1>
            </Table1>
            <Table1 diffgr:id="Table12" msdata:rowOrder="1">
              <Id>532708</Id>
              <RFC>RFC</RFC>
              <Name>RAZÓN SOCIAL, S.A. DE CV.</Name>
              <TipoPersona>M</TipoPersona>
              <Supuesto>NO LOCALIZADOS</Supuesto>
              <FechasPrimeraPublicacion>01/10/2018</FechasPrimeraPublicacion>
              <Monto xml:space="preserve"></Monto>
              <Source1>11</Source1>
            </Table1>
          </NewDataSet>
        </diffgr:diffgram>
      </Ds69>
    </SatBLInfoRetrieverResult>
Noten en la respuesta del ejemplo anterior que el RFC indicado existe una vez en la lista 69B y dos veces en la 69.

En ResponseData1 se devuelve una clase serializada, que contiene el elemento TaxID (su valor coincide con el RFC indicado como parámetro en TaxID), y dos NewDataSet serializados de la manera que siempre se ha entregado al front para transacciones de este tipo.

El primer NewDataSet, de nombre Ds69b, devuelve todos los registros encontrados en la Lista Negra del SAT 69B; por supuesto, eso en caso de que haya sido tenida en cuenta de acuerdo al valor indicado para el parámetro SearchType (BL69B y ALL).

El segundo NewDataSet, de nombre Ds69, devuelve todos los registros encontrados en la Lista Negra del SAT 69; por supuesto, eso en caso de que haya sido tenida en cuenta de acuerdo al valor indicado para el parámetro SearchType (BL69 y ALL).

Todos los parámetros que se especifican en el Dictionary son obligatorios; cualquiera que no sea indicado (o que su valor sea incorrecto contra lo especificado en este documento), generará un error cuyo mensaje indica el motivo.

A continuación encontrará ejemplos adjuntos utilizando esta transacción que le servirán de guía para llevar su integración de manera eficiente.
    • Related Articles

    • Búsqueda de RFC en Listas Negras del SAT

      Esta transacción permite la búsqueda de un RFC particular en las Listas Negras del SAT. La respuesta es una, o dos listas (en dependencia del parámetro de búsqueda especificado), con el detalle de cada registro encontrado. OBTENER_INFO_LN_SAT_HTML El ...
    • Búsqueda por RFC en Listas Negras

      SERVICIO API LISTAS NEGRAS SAT Documentación Técnica 1.- ALTA COMO DESARROLLADOR Para darse de alta y solicitar el enrolamiento como desarrollador debe ingresar a la siguiente URL: https://mysuiteapi.developer.azure-api.net/ Llenar la información ...
    • Recuperación de Lista de Alertas por Listas Negras del SAT

      Esta transacción permite recuperar la lista (paginada y que cumplan criterios de filtrado establecidos, así como un ordenamiento indicado), con los metadatos asociados a Alertas por operaciones con empresas publicadas en las Listas Negras del SAT. La ...
    • Recuperación de Lista de Alertas por Listas Negras del SAT

      Esta transacción permite recuperar la lista (paginada y que cumplan criterios de filtrado establecidos, así como un ordenamiento indicado), con los metadatos asociados a Alertas por operaciones con empresas publicadas en las Listas Negras del SAT. La ...
    • Cambio de Estado (Leída/No Leída), de Alerta en Listas Negras del SAT.

      Esta transacción permite cambiar el estado de Leída / No Leída a una alerta por operaciones con empresas publicadas en las Listas Negras del SAT. CAMBIAR_ESTADO_LEIDA_ALERTA_LN_HTML El valor suministrado en el parámetro jsonData es la serialización ...