API Cesión Electrónica Chile

Documentación Métodos PHP

Agregar referencia web en el proyecto: http://www.appoctava.cl/wscesion/WebService.php?wsdl


Registrar Cedente

El registro de la empresa es el primer paso para poder iniciar el proceso de Cesión, el cual nos brindará su Password de conexión al Web Service, obteniendo el resultado de esta forma:

<?php 
    
//Desahabilitar cache
    
ini_set("soap.wsdl_cache_enabled""0");

    
//Dirección donde se encuentra el servicio
    
$client = new SoapClient("http://www.appoctava.cl/wscesion/WebService.php?wsdl");

    
// Certificado Digital Codifica en base64.
    
$CD file_get_contents('MICD.pfx');
    
$CD_BASE64 = (base64_encode($CD));
    
    
    
//Parametros de entrada
    /*
    RUT                  = Rol Único Tributario o  identificación tributaria.
    RAZONSOCIAL          = Atributo legal que figura en la escritura o documento de constitución            
                           que permite identificar a una persona jurídica y demostrar su constitución legal.
    RUTAUTORIZADOSII     = RUT Autorizado o Representante Legaol.
    NOMBREAUTORIZADOSII  = Persona natural que actúa por cuenta de un contribuyente, sea éste persona natural
                           o jurídica, estando facultada para ello legal o por acuerdo entre las partes.
    CERTDIGBASE64        = CERTIFICADO DIGITAL,Esta firma es el equivalente electrónico de la cédula de
                           identidad, tiene el objetivo de permitir a los representantes de las empresas
                           autentificarse electrónicamente ante el SII.
    PASSCERTDIG          = Password de Certificado Digital.
    INTEGRADOR           = RUT del integrador que contrato el servicio api de cesión y re-cesión electrónica.
    PASSWORDINTEGRADOR   = PASSWORD del integrador que contrato el servicio api de cesión y re-cesión electrónica.
    */
    
    
$parametros = array("RUT" => "17571019-1","RAZONSOCIAL" => "Empresa fantasia",
    
"RUTAUTORIZADOSII" => "17571019-1",    "NOMBREAUTORIZADOSII" => "Mombre Autorizado",
    
"CERTDIGBASE64" => $CD_BASE64,"PASSCERTDIG" =>"mipasswordcd","INTEGRADOR" =>"RUT DEL INTEGRADOR QUE CONTRATO EL SERVICIO","PASSWORDINTEGRADOR" =>"PASSWORD DEL INTEGRADOR QUE CONTRATO EL SERVICIO");

    try{
        
//iniciar cliente soap    
        
$resultado $client->__SoapCall("RegistraCedente"$parametros);

        
//Parametros de salida
        
$IdResultadoFE=$resultado[0]->IdResultadoFE;
        
$ResultadoFE=$resultado[0]->ResultadoFE;
        
$PassAccesoApi=$resultado[0]->PassAccesoApi;

        echo 
$IdResultadoFE."<br/>";
        echo 
$ResultadoFE."<br/>";
        echo 
$PassAccesoApi."<br/>";

        
//Si hay algún problema intermedio será atrapado aquí.
    
}catch (SoapFault $e){
    echo 
"Ups!! hubo un problema y no pudimos recuperar los datos.<br/>
    
$e<hr/>";
    }   

?>

RESPUESTAS (IdResultadoFE - ResultadoFE)

0 = Empresa Creada..

1 = Empresa No Creada, Password del certificado digital incorrecta.

2 = Empresa No Creada, Favor consulte al administrador del sistema.

4 = Usuario del certificado digital no autorizado para la empresa.

5 = Error con el certificado digital, favor intentar nuevamente.

6 = Error con el certificado digital y rut empresa, favor validar los datos ingresados.

RESPUESTAS PassAccesoApi:

Password Acceso Api Cesión Electrónica



Obtener Token

Registrada nuestra empresa, con el RUT y Paswoord obtenida abtendremos nuestro Token.

<?php 
    
//Desahabilitar cache
    
ini_set("soap.wsdl_cache_enabled""0");
    
//Parametros de entrada
    /*
    RUTACCESOAPI         = RUT EMPRESA REGISTRADA.
    PASSWORDACCESOAPI    = PASSWORD OBTENIDA CON EL METODO RegistraCedente.
    */
    
    //Establecer parametros de envío Ejemplo:
    
$parametros = array("RUTACCESOAPI" => "99999999-9","PASSWORDACCESOAPI" => "3er4tDDC"); 
    
    
//Dirección donde se encuentra el servicio
    
$client = new SoapClient("http://www.appoctava.cl/wscesion/WebService.php?wsdl");
    
    
//ObtenerToken
     
try{
      
//iniciar cliente soap    
      
$resultado $client->__SoapCall("ObtenerToken"$parametros);
      
      
//Parametros de salida
      
      
$DescripcionResultado=$resultado[0]->DescripcionResultado;
      
$Token=$resultado[0]->Token;
      
$FechaHoraToken=$resultado[0]->FechaHoraRegistro;
      
$TiempoEjecucion=$resultado[0]->TiempoEjecucion;
      
      echo 
$DescripcionResultado."<br/>";    
      echo 
$Token."<br/>";    
      echo 
$FechaHoraToken."<br/>";    
      
      
//Si hay algún problema intermedio ser atrapado aquí.
      
}catch (SoapFault $e){
          echo 
"Ups!! hubo un problema y no pudimos recuperar los datos.<br/>$e<hr/>";
      }  

     
?>

* El TOKEN tiene 6 horas de vida útil antes de su expiración.


RESPUESTAS DescripcionResultado:

TOK = Token Generado Correctamente.

TERR = Datos de Acceso para Generar Token Incorrectos.

TDUP = Ya Existe un Token Activo.

TBLOQ = La empresa se encuentra bloqueada para ingresar al sistema, favor contactar a su proveedor.

RESPUESTAS Token:

TOKEN


Carga XML

Método que permite la carga de los DTEs al Servidor Central .

<?php 
    
//Desahabilitar cache
    
ini_set("soap.wsdl_cache_enabled""0");

    
//Dirección donde se encuentra el servicio
    
$client = new SoapClient("http://www.appoctava.cl/wscesion/WebService.php?wsdl");

    
//Parametros de entrada
    /*
    RUTAXML         = RUTA DEL ARCHIVO XML A CARGAR.
    AMBIENTE        = 1:PRODUCCIÓN - 0:PRUEBAS
    TOKEN           = TOKEN OBTENIDO EN MÉTODO ObtenerToken.
    $TokenObtenido = valor obtenido por el método ObtenerToken. 
    */
    
    
$xml='<DTE version="1.0">
    <Documento ID="F437T33">
    <Encabezado>
    <IdDoc>
    <TipoDTE>33</TipoDTE>
    <Folio>1</Folio>
    <FchEmis>2013-10-23</FchEmis>
    </IdDoc>
    <Emisor>
    <RUTEmisor>99999999-9</RUTEmisor>
    <RznSoc>EMPRESA DEMO SPA</RznSoc>
    <GiroEmis>DESARROLLO DE SOFTWARE</GiroEmis>
    <Acteco>513100</Acteco>
    <DirOrigen>BASCUNAN GUERRERO 57 LOCAL 1</DirOrigen>
    <CmnaOrigen>SANTIAGO</CmnaOrigen>
    <CiudadOrigen>SANTIAGO</CiudadOrigen>
    </Emisor>
    <Receptor>
    <RUTRecep>76024726-K</RUTRecep>
    <RznSocRecep>PALOBLANCO SA</RznSocRecep>
    <GiroRecep>PRODUCTORA DE SERVICIOS CULTURALES</GiroRecep>
    <DirRecep>AV LA PAZ 451 502A</DirRecep>
    <CmnaRecep>QUILPUE</CmnaRecep>
    <CiudadRecep>QUILPUE</CiudadRecep>
    </Receptor>
    <Totales>
    <MntNeto>63531</MntNeto>
    <MntExe>0</MntExe>
    <TasaIVA>19</TasaIVA>
    <IVA>12071</IVA>
    <MntTotal>75602</MntTotal>
    </Totales>
    </Encabezado>
    <Detalle>
    <NroLinDet>1</NroLinDet>
    <NmbItem>POLERA PERSONALIZADA</NmbItem>
    <QtyItem>27.0</QtyItem>
    <UnmdItem>UN</UnmdItem>
    <PrcItem>2353.0</PrcItem>
    <MontoItem>63531</MontoItem>
    </Detalle>
    <Detalle>
    <NroLinDet>2</NroLinDet>
    <NmbItem>POLERA PERSONALIZADA 2</NmbItem>
    <QtyItem>27.0</QtyItem>
    <UnmdItem>UN</UnmdItem>
    <PrcItem>2353.0</PrcItem>
    <MontoItem>63531</MontoItem>
    </Detalle>
    <Detalle>
    <NroLinDet>3</NroLinDet>
    <NmbItem>POLERA PERSONALIZADA 3</NmbItem>
    <QtyItem>27.0</QtyItem>
    <UnmdItem>UN</UnmdItem>
    <PrcItem>2353.0</PrcItem>
    <MontoItem>63531</MontoItem>
    </Detalle>
    </Documento>
    </DTE>'


    
$parametros = array("STRINGXML" => $xml,"AMBIENTE"=>"0","TOKEN" => $TokenObtenido);
 
     try{
      
//iniciar cliente soap    
      
$resultado $client->__SoapCall("CargaXmlCesionNew"$parametros);
      
      
//Parametros de salida
      
      
$DescripcionResultado=$resultado[0]->DescripcionResultado;
      
$IdResultadoFE=$resultado[0]->IdResultadoFE;
      
$ResultadoFE=$resultado[0]->ResultadoFE;
      
$TxtCesion=$resultado[0]->TxtCesion;

      echo 
$DescripcionResultado."<br/>";
      echo 
$IdResultadoFE."<br/>";
      echo 
$ResultadoFE."<br/>";
      echo 
$TxtCesion."<br/>";

      
//Si hay algún problema intermedio será atrapado aquí.
      
}catch (SoapFault $e){
       echo 
"Ups!! hubo un problema y no pudimos recuperar los datos.<br/>
       
$e<hr/>";
      }     
      
?>


RESPUESTAS DescripcionResultado:

TDUP = Ya Existe un Token Activo.

TVAL = Token Válido

TEXP = Token Expirado

TINV = Token Invalido

RESPUESTAS (IdResultadoFE - ResultadoFE)

0 = XML cargado correctamente.

1 = RUT emisor del xml subido no corresponde al del emisor del token.

2= Tipo de documento no valido para cargar.

4 = No fue posible almacenar el archivo.

5 = DTE ya se encuentra cargado.

RESPUESTAS TxtCesion

Acá viene la información de o los XML cargados con este método, en el caso que fuese mas de uno este vendrá separado con | y cada dato separado por (,).

EJEMPLO:

|RUT EMISOR,RAZON SOCIAL EMISOR, TIPO DTE,FOLIO DTE,FECHA EMISION DTE,MONTO TOTAL DTE,RUT RECEPTOR,RAZON SOCIAL RECEPTOR,AMBIENTE,IDSECUENCIA||

PD: recoger o Insertar Datos en su BD, para después lograr enviar en el Método CEDER DTE


Cede DTE

Método que permite ceder un DTE ya cargado en el Servidor Central .

<?php 
    
//Desahabilitar cache
    
ini_set("soap.wsdl_cache_enabled""0");

    
//Parametros de entrada

    /*      
        FOLIO               = NUMERO DE DOCUMENTO
        TIPODTE             = TIPO DE DOCUMENTO TRIBUTARIO
        RUTEMISOR           = RUT EMISOR DEL DOCUMENTO.
        AMBIENTE            = 1:PRODUCCIÓN - 0:PRUEBAS
        DIRECCIONCEDENTE    = DIRECCIÓN CEDENTE.
        EMAILCEDENTE        =     EMAIL CEDENTE.
        RUTCESIONARIO       = RUT EMPRESA CESIONARIO DE LA CESIÓN.
        RAZONSOCIALCESIONARIO   = RAZÓN EMPRESA CESIONARIO.
        DIRECCIONCESIONARIO     = DIRECCION EMPRESA CESIONARIO.
        EMAILCESIONARIO     = EMAIL CESIONARIO.
        NOMBRECONTACTO      = NOMBRE DEL EJECUTIVO.
        EMAILCONTACTO       = EMAIL EJECUTIVO.
        MONTOCEDER          = MONTO TOTAL DTE A CEDER
        FECHAVENCIMIENTO    = FECHA VENCIMIENTO DEL DOCUMENTO.
        EMAILDEUDOR         = EMAIL DEUDOR DEL DOCUMENTO.
        TOKEN               = TOKEN OBTENIDO POR EL MÉDOTO INICIAL. 
    */


    //Establecer parametros de envío Ejemplo:
    
$parametros4 = array("FOLIO" => "772","TIPODTE" => "33","RUTEMISOR" => "99999999-9","AMBIENTE" => "0","DIRECCIONCEDENTE"=>"las murtas 155","EMAILCEDENTE"=>"mosorio@appoctava.cl","RUTCESIONARIO" => "76689863-7","RAZONSOCIALCESIONARIO" => "Octava Software SPA","DIRECCIONCESIONARIO" => "LAS MURTAS 155","EMAILCESIONARIO" => "mosorio@appoctava.cl","NOMBRECONTACTO" => "Moises Osorio","EMAILCONTACTO" =>"mosorio@appoctava.cl","MONTOCEDER" => "10000","FECHAVENCIMIENTO" => "2018-01-16","EMAILDEUDOR" => "hmolina@appoctava.cl","TOKEN" => $Token);
    
    
//Dirección donde se encuentra el servicio
    
$client = new SoapClient("http://www.appoctava.cl/wscesion/WebService.php?wsdl");

 
 
     try{
      
//iniciar cliente soap    
      
$resultado4 $client->__SoapCall("CedeDteNew"$parametros4);
      
        
$DescripcionResultado=$resultado4[0]->DescripcionResultado;
        
$IdResultadoFE=$resultado4[0]->IdResultadoFE;
        
$ResultadoFE=$resultado4[0]->ResultadoFE;
        
        echo 
$DescripcionResultado."<br/>";
        echo 
$IdResultadoFE."<br/>";
        echo 
$ResultadoFE."<br/>";
      
//Si hay algún problema intermedio será atrapado aquí.
      
}catch (SoapFault $e){
          echo 
"Ups!! hubo un problema y no pudimos recuperar los datos.<br/>
                
$e<hr/>";
      }  
      
?>


RESPUESTAS DescripcionResultado:

TDUP = Ya Existe un Token Activo.

TVAL = Token Válido

TEXP = Token Expirado

TINV = Token Invalido

RESPUESTAS (IdResultadoFE - ResultadoFE)

0 = DTE cedido correctamente.

1 = DTE no encontrado en nuestros registros.

2 = Error al generar cesion.

3 = DTE ya se encuentra cedido.

4 = Imposible re-ceder,no es el actual tenedor de la cesion.


Consulta Estado Cesión

Método que permite consultar estado de la cesión en el SII y obtener el archivo electrónico de cesión(AEC).

<?php 
    
//Desahabilitar cache
    
ini_set("soap.wsdl_cache_enabled""0");
    
    
//Parametros de entrada

    /*
        FOLIO               = NUMERO DE DOCUMENTO
        TIPODTE             = TIPO DE DOCUMENTO TRIBUTARIO
        RUTEMISOR           = RUT EMISOR DEL DOCUMENTO.
        AMBIENTE            = 1:PRODUCCIÓN - 0:PRUEBAS
        TOKEN               = TOKEN OBTENIDO POR EL MÉDOTO INICIAL. 
    */
    
     
$parametros4 = array("FOLIO" => "772","TIPODTE" => "33","RUTEMISOR" => "99999999-9","AMBIENTE" => "0","TOKEN" => $Token);
    
    
//Dirección donde se encuentra el servicio
    
$client = new SoapClient("http://www.appoctava.cl/wscesion/WebService.php?wsdl");
  

 
     try{
      
//iniciar cliente soap    
      
$resultado4 $client->__SoapCall("ConsultaEstadoAECNew"$parametros4);
      
        
$IdResultadoFE=$resultado4[0]->IdResultadoFE;
        
$ResultadoFE=$resultado4[0]->ResultadoFE;
        
$CodigoCesion=$resultado4[0]->CodigoCesion;
        
$UrlAec=$resultado4[0]->UrlAec;
        
        echo 
$IdResultadoFE."<br/>";
        echo 
$ResultadoFE."<br/>";
        echo 
$CodigoCesion."<br/>";
        echo 
$UrlAec."<br/>";
        
      
//Si hay algún problema intermedio será atrapado aquí.
      
}catch (SoapFault $e){
          echo 
"Ups!! hubo un problema y no pudimos recuperar los datos.<br/>
                
$e<hr/>";
      }   
      
?>


RESPUESTAS DescripcionResultado:

TDUP = Ya Existe un Token Activo.

TVAL = Token Válido

TEXP = Token Expirado

TINV = Token Invalido

RESPUESTAS (IdResultadoFE - ResultadoFE)

0 = Glosa cesión S.I.I.

1 = No existe cesion para los datos entregados

RESPUESTAS CodigoCesion

RSC = Rechazado por Error en Schema.

RFS = Rechazado por Firma de Sobre.

RCR = Error e caratula.

RDC = Documento invalido.

RCS = Cesión Inválida.

EOK = Envió Aceptado | CESION OK, PUEDEN PAGAR EL DTE.

EAN = Envió Anulado.

RESPUESTAS UrlAec

Retorna la ruta del xml del AEC (Archivo Electrónico de Cesión SII), Siempre y cuando el código de la cesión sea EOK.