LibreDTE

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

$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

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
bool

getAmbiente()

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|null

getAutorizacion()

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|null

getEmisor()

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
string

getMesesAutorizacion()

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
throws
CafException

Si no es posible obtener el certificado del SII.

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.


        
On this page

Search results