Caf
in package
Clase para representar un Código de Autorización de Folios (CAF).
Un CAF es un archivo XML que contiene los folios autorizados por el Servicio de Impuestos Internos (SII) de Chile para la emisión de Documentos Tributarios Electrónicos (DTE).
Table of Contents
Constants
- AMBIENTES = [self::CERTIFICACION => \libredte\lib\Core\Sii\HttpClient\ConnectionConfig::CERTIFICACION, self::PRODUCCION => \libredte\lib\Core\Sii\HttpClient\ConnectionConfig::PRODUCCION]
- Mapa de ambientes disponibles para el CAF.
- CERTIFICACION = 100
- Ambiente de certificación del SII.
- PRODUCCION = 300
- Ambiente de producción del SII.
Properties
- $dataProvider : DataProviderInterface
- Proveedor de datos.
- $data : array<string|int, mixed>
- Datos del CAF en formato de arreglo.
- $emisor : Contribuyente
- Contribuyente emisor del CAF.
- $tipoDocumento : DocumentoTipo
- Tipo de documento tributario del CAF.
- $xmlDocument : XmlDocument
- Documento XML del CAF.
Methods
- __construct() : mixed
- Constructor de la clase.
- enRango() : bool
- Determina si el folio pasado como argumento está o no dentro del rango del CAF.
- getAmbiente() : int|null
- Entrega el ambiente del SII asociado al CAF.
- getAutorizacion() : array<string|int, mixed>
- Entrega los datos del código de autorización de folios (CAF).
- getCantidadFolios() : int
- Obtiene la cantidad de folios autorizados en el CAF.
- getCertificacion() : int|null
- Indica si el CAF es de certificación o producción.
- getEmisor() : Contribuyente
- Obtiene el contribuyente emisor del CAF.
- getFechaAutorizacion() : string
- Obtiene la fecha de autorización del CAF.
- getFechaVencimiento() : string|null
- Obtiene la fecha de vencimiento del CAF.
- getFolioDesde() : int
- Obtiene el folio inicial autorizado en el CAF.
- getFolioHasta() : int
- Obtiene el folio final autorizado en el CAF.
- getID() : string
- Entrega un ID para el CAF generado a partir de los datos del mismo.
- getMesesAutorizacion() : float
- Entrega la cantidad de meses que han pasado desde la solicitud del CAF.
- getPrivateKey() : string
- Obtiene la clave privada proporcionada en el CAF.
- getPublicKey() : string
- Obtiene la clave pública proporcionada en el CAF.
- getTipoDocumento() : DocumentoTipo
- Obtiene el tipo de documento tributario del CAF.
- getXML() : string
- Retorna el XML cargado como string.
- loadXML() : void
- Carga un string XML de un CAF en la clase.
- timbrar() : string
- Timbra los datos con la clave privada del CAF.
- validate() : void
- Método que valida el código de autorización de folios (CAF).
- vence() : bool
- Indica si el CAF de este tipo de documento vence o no.
- vigente() : bool
- Indica si el CAF está o no vigente.
- getCertificateSII() : string|null
- Método para obtener el certificado X.509 del SII para la validación del XML del CAF.
- getData() : array<string|int, mixed>
- Obtiene los datos del CAF en formato de arreglo.
- getFirma() : string
- Obtiene la firma del SII sobre el nodo DA del CAF.
- getIdk() : int
- Obtiene el identificador del certificado utilizado en el CAF.
Constants
AMBIENTES
Mapa de ambientes disponibles para el CAF.
private
array<int, int>
AMBIENTES
= [self::CERTIFICACION => \libredte\lib\Core\Sii\HttpClient\ConnectionConfig::CERTIFICACION, self::PRODUCCION => \libredte\lib\Core\Sii\HttpClient\ConnectionConfig::PRODUCCION]
Asocia los valores de los ambientes con las configuraciones correspondientes de conexión al SII (certificación o producción).
CERTIFICACION
Ambiente de certificación del SII.
private
mixed
CERTIFICACION
= 100
Este valor se utiliza para identificar que el CAF pertenece al ambiente de pruebas o certificación.
PRODUCCION
Ambiente de producción del SII.
private
mixed
PRODUCCION
= 300
Este valor se utiliza para identificar que el CAF pertenece al ambiente de producción.
Properties
$dataProvider
Proveedor de datos.
protected
DataProviderInterface
$dataProvider
$data
Datos del CAF en formato de arreglo.
private
array<string|int, mixed>
$data
Este arreglo contiene la estructura completa del XML del CAF convertido a un formato de arreglo asociativo.
$emisor
Contribuyente emisor del CAF.
private
Contribuyente
$emisor
Este objeto representa al contribuyente que está autorizado para utilizar los folios del CAF.
$tipoDocumento
Tipo de documento tributario del CAF.
private
DocumentoTipo
$tipoDocumento
Este objeto representa el tipo de documento tributario (DTE) asociado al CAF, como facturas, boletas, notas de crédito, etc.
$xmlDocument
Documento XML del CAF.
private
XmlDocument
$xmlDocument
Este objeto representa el XML cargado del CAF, utilizado para interactuar con el contenido y extraer los datos necesarios.
Methods
__construct()
Constructor de la clase.
public
__construct([DataProviderInterface|null $dataProvider = null ]) : mixed
Parameters
- $dataProvider : DataProviderInterface|null = null
-
Proveedor de datos.
enRango()
Determina si el folio pasado como argumento está o no dentro del rango del CAF.
public
enRango(int $folio) : bool
NOTE: Esta validación NO verifica si el folio ya fue usado, solo si está dentro del rango de folios disponibles en el CAF.
Parameters
- $folio : int
Return values
boolgetAmbiente()
Entrega el ambiente del SII asociado al CAF.
public
getAmbiente() : int|null
El resultado puede ser:
- ConnectionConfig::CERTIFICACION el ambiente del CAF es certificación.
- ConnectionConfig::PRODUCCION el ambiente del CAF es producción.
-
null
: no hay ambiente, pues el Caf es falso y tiene IDK CafFaker::IDK
Return values
int|nullgetAutorizacion()
Entrega los datos del código de autorización de folios (CAF).
public
getAutorizacion() : array<string|int, mixed>
Return values
array<string|int, mixed>getCantidadFolios()
Obtiene la cantidad de folios autorizados en el CAF.
public
getCantidadFolios() : int
Return values
int —Cantidad de folios.
getCertificacion()
Indica si el CAF es de certificación o producción.
public
getCertificacion() : int|null
El resultado puede ser:
- ConnectionConfig::CERTIFICACION es CAF de certificación.
- ConnectionConfig::PRODUCCION es CAF de producción.
-
null
: indicando que el Caf es falso y tiene IDK CafFaker::IDK
Return values
int|nullgetEmisor()
Obtiene el contribuyente emisor del CAF.
public
getEmisor() : Contribuyente
Return values
Contribuyente —Instancia de Contribuyente que representa al emisor.
getFechaAutorizacion()
Obtiene la fecha de autorización del CAF.
public
getFechaAutorizacion() : string
Return values
string —Fecha de autorización en formato YYYY-MM-DD.
getFechaVencimiento()
Obtiene la fecha de vencimiento del CAF.
public
getFechaVencimiento() : string|null
Return values
string|null —Fecha de vencimiento en formato YYYY-MM-DD o null
si no aplica.
getFolioDesde()
Obtiene el folio inicial autorizado en el CAF.
public
getFolioDesde() : int
Return values
int —Folio inicial.
getFolioHasta()
Obtiene el folio final autorizado en el CAF.
public
getFolioHasta() : int
Return values
int —Folio final.
getID()
Entrega un ID para el CAF generado a partir de los datos del mismo.
public
getID() : string
Return values
stringgetMesesAutorizacion()
Entrega la cantidad de meses que han pasado desde la solicitud del CAF.
public
getMesesAutorizacion() : float
Return values
float —Cantidad de meses transcurridos.
getPrivateKey()
Obtiene la clave privada proporcionada en el CAF.
public
getPrivateKey() : string
Return values
string —Clave privada.
getPublicKey()
Obtiene la clave pública proporcionada en el CAF.
public
getPublicKey() : string
Return values
string —Clave pública.
getTipoDocumento()
Obtiene el tipo de documento tributario del CAF.
public
getTipoDocumento() : DocumentoTipo
Return values
DocumentoTipo —Instancia de DocumentoTipo.
getXML()
Retorna el XML cargado como string.
public
getXML() : string
Return values
string —Contenido del XML.
loadXML()
Carga un string XML de un CAF en la clase.
public
loadXML(string $xml) : void
Parameters
- $xml : string
-
Contenido del archivo XML del CAF.
timbrar()
Timbra los datos con la clave privada del CAF.
public
timbrar(string $data) : string
En estricto rigor, esto es una firma electrónica. Por lo que se usa directamente el método SignatureGenerator::sign().
Parameters
- $data : string
-
String con el nodo DD a timbrar.
Return values
string —Timbre (firma) codificado en base64.
validate()
Método que valida el código de autorización de folios (CAF).
public
validate() : void
Valida la firma y las claves públicas y privadas asociadas al CAF.
vence()
Indica si el CAF de este tipo de documento vence o no.
public
vence() : bool
Return values
bool —true
si los folios de este tipo de documento vencen,
false
si no vencen.
vigente()
Indica si el CAF está o no vigente.
public
vigente([string $timestamp = null ]) : bool
Parameters
- $timestamp : string = null
-
Marca de tiempo para consultar vigencia en un momento específico. Si no se indica, por defecto es la fecha y hora actual.
Return values
bool —true
si el CAF está vigente, false
si no está vigente.
getCertificateSII()
Método para obtener el certificado X.509 del SII para la validación del XML del CAF.
private
getCertificateSII() : string|null
Tags
Return values
string|null —Contenido del certificado o null
si es un CAF
falso.
getData()
Obtiene los datos del CAF en formato de arreglo.
private
getData() : array<string|int, mixed>
Return values
array<string|int, mixed> —Datos del CAF.
getFirma()
Obtiene la firma del SII sobre el nodo DA del CAF.
private
getFirma() : string
Return values
string —Firma en base64.
getIdk()
Obtiene el identificador del certificado utilizado en el CAF.
private
getIdk() : int
Return values
int —ID del certificado.