Documentación Métodos PHP
Agregar referencia web en el proyecto: http://www.appoctava.cl/wscesion/WebService.php?wsdl
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
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
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
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.
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.