meta data de esta página
  •  

Método EnviarRetencion()

El request del método es el siguiente:

Request: Parámetro a enviar
Tipo Identificador Descripción
String RUC Proporcionado por el cliente.
String Usuario Proporcionado por The Factory HKA.
String Password Proporcionado por The Factory HKA.
Object Documento xml siguiente

OBJETO EJEMPLO
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:wsec="http://schemas.datacontract.org/2004/07/WSEcuadorService.Request" xmlns:ecu="http://schemas.datacontract.org/2004/07/EcuadorLibraryObject" xmlns:ecu1="http://schemas.datacontract.org/2004/07/EcuadorLibraryObject.Other" xmlns:ecu2="http://schemas.datacontract.org/2004/07/EcuadorLibraryObject.Common.Detail" xmlns:ecu3="http://schemas.datacontract.org/2004/07/EcuadorLibraryObject.Common.Body">
   <soapenv:Header/>
   <soapenv:Body>
      <tem:EnviarRetencion>
         <!--Optional:-->
         <tem:data>
            <!--Optional:-->
            <wsec:Clave>?</wsec:Clave>
            <!--Optional:-->
            <wsec:RUC>?</wsec:RUC>
            <!--Optional:-->
            <wsec:Usuario>?</wsec:Usuario>
            <!--Optional:-->
            <wsec:Documento>
               <!--Optional:-->
               <ecu:CPCliente>?</ecu:CPCliente>
               <!--Optional:-->
               <ecu:CampoAdicional>
                  <!--Zero or more repetitions:-->
                  <ecu1:infoAdicional>
                     <!--Optional:-->
                     <ecu2:Nombre>?</ecu2:Nombre>
                     <!--Optional:-->
                     <ecu2:Valor>?</ecu2:Valor>
                  </ecu1:infoAdicional>
               </ecu:CampoAdicional>
               <!--Optional:-->
               <ecu:CorreoNegociable>?</ecu:CorreoNegociable>
               <!--Optional:-->
               <ecu:CorreoNotificar>?</ecu:CorreoNotificar>
               <!--Optional:-->
               <ecu:DirCliente>?</ecu:DirCliente>
               <!--Optional:-->
               <ecu:Impuestos>
                  <!--Zero or more repetitions:-->
                  <ecu2:ImpuestoDetalleRetencion>
                     <!--Optional:-->
                     <ecu2:BaseImponible>?</ecu2:BaseImponible>
                     <!--Optional:-->
                     <ecu2:Codigo>?</ecu2:Codigo>
                     <!--Optional:-->
                     <ecu2:CodigoPorRet>?</ecu2:CodigoPorRet>
                     <!--Optional:-->
                     <ecu2:Valor>?</ecu2:Valor>
                     <!--Optional:-->
                     <ecu2:CodDocSustento>?</ecu2:CodDocSustento>
                     <!--Optional:-->
                     <ecu2:FechaEmisionDocSustento>?</ecu2:FechaEmisionDocSustento>
                     <!--Optional:-->
                     <ecu2:NumDocSustento>?</ecu2:NumDocSustento>
                     <!--Optional:-->
                     <ecu2:PorcentajeRetener>?</ecu2:PorcentajeRetener>
                  </ecu2:ImpuestoDetalleRetencion>
               </ecu:Impuestos>
               <!--Optional:-->
               <ecu:InfoRetencion>
                  <!--Optional:-->
                  <ecu3:ContribuyenteEspecial>?</ecu3:ContribuyenteEspecial>
                  <!--Optional:-->
                  <ecu3:DirEstablecimiento>?</ecu3:DirEstablecimiento>
                  <!--Optional:-->
                  <ecu3:FechaEmision>?</ecu3:FechaEmision>
                  <!--Optional:-->
                  <ecu3:IdentificacionSujetoRetenido>?</ecu3:IdentificacionSujetoRetenido>
                  <!--Optional:-->
                  <ecu3:ObligadoContabilidad>?</ecu3:ObligadoContabilidad>
                  <!--Optional:-->
                  <ecu3:PeriodoFiscal>?</ecu3:PeriodoFiscal>
                  <!--Optional:-->
                  <ecu3:RazonSocialSujetoRetenido>?</ecu3:RazonSocialSujetoRetenido>
                  <!--Optional:-->
                  <ecu3:TipoIdentificacionSujetoRetenido>?</ecu3:TipoIdentificacionSujetoRetenido>
               </ecu:InfoRetencion>
               <!--Optional:-->
               <ecu:InfoTributaria>
                  <!--Optional:-->
                  <ecu3:AgenteRetencion>?</ecu3:AgenteRetencion>
                  <!--Optional:-->
                  <ecu3:CodigoNumerico>?</ecu3:CodigoNumerico>
                  <!--Optional:-->
                  <ecu3:DirMatriz>?</ecu3:DirMatriz>
                  <!--Optional:-->
                  <ecu3:Estab>?</ecu3:Estab>
                  <!--Optional:-->
                  <ecu3:NombreComercial>?</ecu3:NombreComercial>
                  <!--Optional:-->
                  <ecu3:PtoEmi>?</ecu3:PtoEmi>
                  <!--Optional:-->
                  <ecu3:RazonSocial>?</ecu3:RazonSocial>
                  <!--Optional:-->
                  <ecu3:RegimenMicroempresas>?</ecu3:RegimenMicroempresas>
                  <!--Optional:-->
                  <ecu3:Secuencial>?</ecu3:Secuencial>
               </ecu:InfoTributaria>
               <!--Optional:-->
               <ecu:Maquinafiscal>
                  <!--Optional:-->
                  <ecu1:marca>?</ecu1:marca>
                  <!--Optional:-->
                  <ecu1:modelo>?</ecu1:modelo>
                  <!--Optional:-->
                  <ecu1:serie>?</ecu1:serie>
               </ecu:Maquinafiscal>
               <!--Optional:-->
               <ecu:Notificar>?</ecu:Notificar>
               <!--Optional:-->
               <ecu:TelefonoCliente>?</ecu:TelefonoCliente>
               <!--Optional:-->
               <ecu:Version>?</ecu:Version>
            </wsec:Documento>
         </tem:data>
      </tem:EnviarRetencion>
   </soapenv:Body>
</soapenv:Envelope>

Proceso para consumo EnviarRetencion

  • Se inicializa un objeto ServiceClient o Servicio
  • Se inicializa un objeto PeticionRetencion donde se ingresan el RUC, el usuario de Integración ,clave de Integración y Documento
  • Se hace consumo del método EnviarRetencion contenido en el objeto serviceClient y se coloca como parámetro la petición anterior, la respuesta estará contenida en un objeto llamado RespuestaPeticion, la respuesta tendrá los parámetros Código , Mensaje y Archivo
Codigo Ejemplo .NET
         try
            {
                ServiceClient servicio = new ServiceClient();
                PeticionRetencion pet = new PeticionRetencion()
                {
                    Clave = "claveintegracion",
                    RUC = "1792412345678",
                    Usuario = "usuariointegracion"
                };
 
                pet.Documento = new ComprobanteRetencion();
                ComprobanteRetencion ret = new ComprobanteRetencion();
 
 
                //******************************INFOTRIBUTARIA*********************************
                ret.InfoTributaria = new InfoTributaria();
                ret.InfoTributaria = InformacionTrib();
                ret.CorreoNotificar = textBox76.Text;
                ret.DirCliente = "Direccioncliente";
                ret.CPCliente = "CPcliente";
                ret.TelefonoCliente = "234567890";
 
 
 
                //**************************************INFO RETENCION*********************************
 
 
                ret.InfoRetencion = new InfoCompRetencion()
                {
                    ContribuyenteEspecial = "contrubuyebte",
                    DirEstablecimiento = "direstableciemie",
                    FechaEmision = textBox1.Text,
                    IdentificacionSujetoRetenido = textBox7.Text,
                    ObligadoContabilidad = "SI",
                    PeriodoFiscal = "09/2021",
                    RazonSocialSujetoRetenido = "razon social sujeto detenido",
                    TipoIdentificacionSujetoRetenido = "04"
 
                };
 
                ret.Impuestos = new List<ImpuestoDetalleRetencion>();
                ImpuestoDetalleRetencion imp = new ImpuestoDetalleRetencion
                {                    
                    CodDocSustento = "01",
                    BaseImponible = "100.00",
                    Codigo = "3",
                    CodigoPorRet = "346",                  
                    Valor = "1.75",
                    FechaEmisionDocSustento = "05/09/2021",
                    NumDocSustento = "001002333444555",
                    PorcentajeRetener = "1",
 
                };
 
 
                ret.Impuestos.Add(imp);
                ret.Impuestos.Add(imp);
                ret.Version = "1.0.0";
                pet.Documento = ret;
 
                var resp = servicio.EnviarRetencion(pet);
                servicio.Close();
 
                richTextBox1.Text = "Codigo: " + resp.Codigo + "\n\r" + "Mensaje: " + resp.Mensaje + "\r\n" + resp.Archivo;
            }
            catch (Exception ex)
            {
 
                MessageBox.Show("Mensaje error: " + ex);
            }
ARCHIVOS RETENCIÓN XML/XSD

En este enlace se encuentran disponibles los xml y xsd de Retencion

xml_y_xsd_comprobante_de_retencion.zip