dte
Version:
Clases que representan los DTE descritos por el SII
434 lines (433 loc) • 16.2 kB
TypeScript
import { FirmaElectronica } from './firma_electronica';
export declare namespace BoletaElectronica {
/**Envio de Boletas Electronicas. */
class EnvioBOLETA {
version: string;
/**Conjunto de Boletas enviadas. */
SetDTE: SetDTE;
/***/
Signature: FirmaElectronica.Signature;
ParseFromXMLElement: (Node: Element) => void;
}
/**Conjunto de Boletas enviadas. */
class SetDTE {
ID: string;
/**Resumen de Informacion Enviada. */
Caratula: Caratula;
/**Boletas Electronicas Enviadas. */
DTE: DTE[];
ParseFromXMLElement: (Node: Element) => void;
}
/**Resumen de Informacion Enviada. */
class Caratula {
version: string;
/**RUT Emisor de las Boletas. */
RutEmisor: string;
/**RUT que envia las Boletas. */
RutEnvia: string;
/**RUT al que se le envian las Boletas. */
RutReceptor: string;
/**Fecha de Resolucion que Autoriza la Emision de Boletas (AAAA-MM-DD). */
FchResol: Date;
/**Numero de Resolucion que Autoriza la Emision de Boletas. */
NroResol: number;
/**Fecha y Hora de la Firma del Archivo de Envio. */
TmstFirmaEnv: Date;
/**Subtotales de Boletas Enviadas. */
SubTotDTE: SubTotDTE[];
ParseFromXMLElement: (Node: Element) => void;
}
/**Subtotales de Boletas Enviadas. */
class SubTotDTE {
/**Tipo de Boleta Enviada. */
TpoDTE: DTEType;
/**Numero de Boletas Enviadas. */
NroDTE: number;
ParseFromXMLElement: (Node: Element) => void;
}
/**Tipos de Documentos Tributarios Electronicos. */
enum DTEType {
BoletaElectronica = 39,
BoletaExentaElectronica = 41,
BoletaFisica = 35,
}
/**Boletas Electronicas Enviadas. */
class DTE {
version: string;
/**Informacion Tributaria de la Boleta. */
Documento: Documento;
/***/
Signature: FirmaElectronica.Signature;
ParseFromXMLElement: (Node: Element) => void;
}
/**Informacion Tributaria de la Boleta. */
class Documento {
ID: string;
/**Identificacion y Totales del Documento. */
Encabezado: DocumentoEncabezado;
/**Detalle de Itemes del Documento. */
Detalle: DocumentoDetalle[];
/**Opcional. Subtotales Informativos. */
SubTotInfo: DocumentoSubTotInfo[];
/**Opcional. Descuentos y/o Recargos que afectan al total del Documento. */
DscRcgGlobal: DocumentoDscRcgGlobal[];
/**Opcional. Identificacion de otros documentos Referenciados por Documento. */
Referencia: DocumentoReferencia[];
/**Timbre Electronico de la Boleta. */
TED: DocumentoTED;
/**Fecha y Hora en que se Firmo Digitalmente el Documento AAAA-MM-DDTHH:MI:SS. */
TmstFirma: Date;
ParseFromXMLElement: (Node: Element) => void;
}
/**Identificacion y Totales del Documento. */
class DocumentoEncabezado {
/**Identificacion del DTE. */
IdDoc: DocumentoIdDoc;
/**Datos del Emisor. */
Emisor: DocumentoEmisor;
/**Datos del Receptor. */
Receptor: DocumentoReceptor;
/**Montos Totales del DTE. */
Totales: DocumentoTotales;
ParseFromXMLElement: (Node: Element) => void;
}
/**Identificacion del DTE. */
class DocumentoIdDoc {
/**Tipo de Boleta. */
TipoDTE: DTEType;
/**Folio del Documento Electronico. */
Folio: number;
/**Fecha Emision Contable del DTE (AAAA-MM-DD). */
FchEmis: Date;
/**Indica el Tipo de Transaccion. */
IndServicio: DocumentoIndServicio;
/**Opcional. Indica el Uso de Montos Netos en Detalle. */
IndMntNeto: DocumentoIndMntNeto;
/**Opcional. Periodo de Facturacion - Desde (AAAA-MM-DD). */
PeriodoDesde: Date;
/**Opcional. Periodo Facturacion - Hasta (AAAA-MM-DD). */
PeriodoHasta: Date;
/**Opcional. Fecha de Vencimiento del Pago (AAAA-MM-DD). */
FchVenc: Date;
ParseFromXMLElement: (Node: Element) => void;
}
/***/
enum DocumentoIndServicio {
BoletadeServiciosPeriodicos = 1,
BoletadeServiciosPeriodicosDomiciliarios = 2,
BoletadeVentasyServicio = 3,
BoletadeEspectáculoemitidaporcuentadeTerceros = 4,
}
/***/
enum DocumentoIndMntNeto {
MontodeLineasdeDetalleCorrespondeaValoresNetos = 2,
}
/**Datos del Emisor. */
class DocumentoEmisor {
/**RUT del Emisor del DTE. */
RUTEmisor: string;
/**Opcional. Nombre o Razon Social del Emisor. */
RznSocEmisor: string;
/**Opcional. Giro del Emisor que Corresponde a la Transaccion. */
GiroEmisor: string;
/**Opcional. Codigo de Sucursal Entregado por el SII. */
CdgSIISucur: number;
/**Opcional. Direccion de Origen o Emision. */
DirOrigen: string;
/**Opcional. Comuna de Origen. */
CmnaOrigen: string;
/**Opcional. Ciudad de Origen. */
CiudadOrigen: string;
ParseFromXMLElement: (Node: Element) => void;
}
/**Datos del Receptor. */
class DocumentoReceptor {
/**RUT del Receptor del DTE. */
RUTRecep: string;
/**Opcional. Codigo Interno del Receptor. */
CdgIntRecep: string;
/**Opcional. Nombre o Razon Social del Receptor. */
RznSocRecep: string;
/**Opcional. Telefono o E-mail de Contacto del Receptor. */
Contacto: string;
/**Opcional. Direccion en la Cual se Envian los Productos o se Prestan los Servicios. */
DirRecep: string;
/**Opcional. Comuna de Recepcion. */
CmnaRecep: string;
/**Opcional. Ciudad de Recepcion. */
CiudadRecep: string;
/**Opcional. Direccion Postal. */
DirPostal: string;
/**Opcional. Comuna Postal. */
CmnaPostal: string;
/**Opcional. Ciudad Postal. */
CiudadPostal: string;
ParseFromXMLElement: (Node: Element) => void;
}
/**Montos Totales del DTE. */
class DocumentoTotales {
/**Opcional. Monto Neto. */
MntNeto: number;
/**Opcional. Monto Exento. */
MntExe: number;
/**Opcional. Monto de IVA. */
IVA: number;
/**Monto Total. */
MntTotal: number;
/**Opcional. Monto No Facturable - Corresponde a Bienes o Servicios Facturados Previamente. */
MontoNF: number;
/**Opcional. Total de Ventas o Servicios del Periodo. */
TotalPeriodo: number;
/**Opcional. Saldo Anterior - Puede ser Negativo o Positivo. */
SaldoAnterior: number;
/**Opcional. Valor a Pagar Total del Documento. */
VlrPagar: number;
ParseFromXMLElement: (Node: Element) => void;
}
/**Detalle de Itemes del Documento. */
class DocumentoDetalle {
/**Numero Secuencial de Linea. */
NroLinDet: number;
/**Opcional. Codificacion del Item. */
CdgItem: DocumentoCdgItem[];
/**Opcional. Indicador de Exencion/Facturacion. */
IndExe: DocumentoIndExe;
/**Opcional. Indica si el ítem es :
01: TICKET
02: VALOR SERVICIO. */
ItemEspectaculo: DocumentoItemEspectaculo;
/**Opcional. Rut de la Empresa Mandante de la Boleta. */
RUTMandante: string;
/**Nombre del Item. */
NmbItem: string;
/**Opcional. Informacion de la entrada. */
InfoTicket: DocumentoInfoTicket;
/**Opcional. Descripcion del Item. */
DscItem: string;
/**Opcional. Cantidad del Item. */
QtyItem: number;
/**Opcional. Unidad de Medida. */
UnmdItem: string;
/**Opcional. Precio Unitario del Item en Pesos. */
PrcItem: number;
/**Opcional. Porcentaje de Descuento. */
DescuentoPct: number;
/**Opcional. Monto de Descuento. */
DescuentoMonto: number;
/**Opcional. Porcentaje de Recargo. */
RecargoPct: number;
/**Opcional. Monto de Recargo. */
RecargoMonto: number;
/**Monto por Linea de Detalle. Corresponde al Monto Bruto, a menos que IndMntNeto Indique lo Contrario . */
MontoItem: number;
ParseFromXMLElement: (Node: Element) => void;
}
/***/
enum DocumentoIndExe {
ProductooServicioesExentooNoAfecto = 1,
ElProductooServicioNOESFacturable = 2,
N_6 = 6,
}
/***/
enum DocumentoItemEspectaculo {
ProductooServicioesExentooNoAfecto = 1,
ElProductooServicioNOESFacturable = 2,
}
/**Codificacion del Item. */
class DocumentoCdgItem {
/**Tipo de Codificacion. */
TpoCodigo: string;
/**Valor del Codigo de Item, para la Codificacion Particular. */
VlrCodigo: string;
ParseFromXMLElement: (Node: Element) => void;
}
/**Informacion de la entrada. */
class DocumentoInfoTicket {
/**Corresponde a la numeración única para el evento.. */
FolioTicket: number;
/**Corresponde a la fecha y hora de generación del ticket
(AAAA-MM-DDThh:mm:ss). */
FchGenera: Date;
/**Nombre del Espectáculo. */
NmbEvento: string;
/**Tipo de ticket, Por ejemplo: Adulto, Niño, etc. */
TpoTiket: string;
/**Código asociado al Evento. */
CdgEvento: string;
/**Fecha y hora de realización del evento AAAA-MM-DDThh:mm:ss). */
FchEvento: Date;
/**Dirección o identificación del recinto donde se realizará el Espectáculo. */
LugarEvento: string;
/**Sector/Sección de la ubicación en el evento. */
UbicEvento: string;
/**Opcional. Fila correspondiente a la Ubicación en el evento. */
FilaUbicEvento: string;
/**Opcional. N° de Asiento correspondiente a la Ubicación en el evento. */
AsntoUbicEvento: string;
ParseFromXMLElement: (Node: Element) => void;
}
/**Subtotales Informativos. */
class DocumentoSubTotInfo {
/**Número de Subtotal . */
NroSTI: number;
/**Opcional. Glosa. */
GlosaSTI: string;
/**Ubicación para Impresión . */
OrdenSTI: number;
/**Opcional. Valor Neto del Subtotal. */
SubTotNetoSTI: number;
/**Opcional. Valor del IVA del Subtotal. */
SubTotIVASTI: number;
/**Opcional. Valor de los Impuestos adicionales o específicos del Subtotal. */
SubTotAdicSTI: number;
/**Opcional. Valor no Afecto o Exento del Subtotal. */
SubTotExeSTI: number;
/**Opcional. Valor de la línea de subtotal. */
ValSubtotSTI: number;
/**Opcional. TABLA de Líneas de Detalle que se agrupan en el Subtotal. */
LineasDeta: number[];
ParseFromXMLElement: (Node: Element) => void;
}
/**Descuentos y/o Recargos que afectan al total del Documento. */
class DocumentoDscRcgGlobal {
/**Numero Secuencial de Linea. */
NroLinDR: number;
/**Tipo de Movimiento. */
TpoMov: DocumentoTpoMov;
/**Opcional. Descripcion del Descuento o Recargo. */
GlosaDR: string;
/**Unidad en que se Expresa el Valor. */
TpoValor: DocumentoTpoValor;
/**Valor del Descuento o Recargo. */
ValorDR: number;
/**Opcional. Indica si el Descuento o Recargo Afecta a Itemes Exentos o No Facturables. */
IndExeDR: DocumentoIndExeDR;
ParseFromXMLElement: (Node: Element) => void;
}
type DocumentoTpoMov = 'D' | 'R';
type DocumentoTpoValor = '%' | '$';
/***/
enum DocumentoIndExeDR {
AfectaaProductosExentosoNoAfectos = 1,
AfectaaProductosNoFacturables = 2,
}
/**Identificacion de otros documentos Referenciados por Documento. */
class DocumentoReferencia {
/**Numero Secuencial de Linea de Referencia. */
NroLinRef: number;
/**Opcional. Codigo Interno del Tipo de Referencia. */
CodRef: string;
/**Opcional. Razon Explicita por la que se Referencia el Documento. */
RazonRef: string;
/**Opcional. Código del Vendedor establecido por la Empresa. Puede estar asociado a INTERNET. */
CodVndor: string;
/**Opcional. Código de la caja establecido por la Empresa. */
CodCaja: string;
ParseFromXMLElement: (Node: Element) => void;
}
/**Timbre Electronico de la Boleta. */
class DocumentoTED {
version: string;
/**Datos Basicos de Documento. */
DD: DocumentoDD;
/**Valor de Firma Digital sobre DD. */
FRMT: DocumentoFRMT;
ParseFromXMLElement: (Node: Element) => void;
}
/**Datos Basicos de Documento. */
class DocumentoDD {
/**RUT Emisor. */
RE: string;
/**Tipo DTE. */
TD: DTEType;
/**Folio DTE. */
F: number;
/**Fecha Emision DTE en Formato AAAA-MM-DD. */
FE: Date;
/**RUT Receptor. */
RR: string;
/**Razon Sociall Receptor. */
RSR: string;
/**Monto Total DTE. */
MNT: number;
/**Descripcion Primer Item de Detalle. */
IT1: string;
/**Codigo Autorizacion Folios. */
CAF: DocumentoCAF;
/**TimeStamp de Generacion del Timbre. */
TSTED: Date;
ParseFromXMLElement: (Node: Element) => void;
}
/**Codigo Autorizacion Folios. */
class DocumentoCAF {
version: string;
/**Datos de Autorizacion de Folios. */
DA: DocumentoDA;
/**Firma Digital (RSA) del SII Sobre DA. */
FRMA: DocumentoFRMA;
ParseFromXMLElement: (Node: Element) => void;
}
/**Datos de Autorizacion de Folios. */
class DocumentoDA {
/**RUT Emisor. */
RE: string;
/**Razon Social Emisor. */
RS: string;
/**Tipo DTE. */
TD: DTEType;
/**Rango Autorizado de Folios. */
RNG: DocumentoRNG;
/**Fecha Autorizacion en Formato AAAA-MM-DD. */
FA: Date;
/**Opcional. Clave Publica RSA del Solicitante. */
RSAPK: DocumentoRSAPK;
/**Opcional. Clave Publica DSA del Solicitante. */
DSAPK: DocumentoDSAPK;
/**Identificador de Llave. */
IDK: number;
ParseFromXMLElement: (Node: Element) => void;
}
/**Rango Autorizado de Folios. */
class DocumentoRNG {
/**Folio Inicial (Desde). */
D: number;
/**Folio Final (Hasta). */
H: number;
ParseFromXMLElement: (Node: Element) => void;
}
/**Clave Publica RSA del Solicitante. */
class DocumentoRSAPK {
/**Modulo RSA. */
M: string;
/**Exponente RSA. */
E: string;
ParseFromXMLElement: (Node: Element) => void;
}
/**Clave Publica DSA del Solicitante. */
class DocumentoDSAPK {
/**Modulo Primo. */
P: string;
/**Entero Divisor de P - 1. */
Q: string;
/**Entero f(P, Q). */
G: string;
/**G**X mod P. */
Y: string;
ParseFromXMLElement: (Node: Element) => void;
}
/**Firma Digital (RSA) del SII Sobre DA. */
class DocumentoFRMA {
algoritmo: string;
/**Opcional. */
valor: string;
ParseFromXMLElement: (Node: Element) => void;
}
/**Valor de Firma Digital sobre DD. */
class DocumentoFRMT {
algoritmo: Documentoalgoritmo;
/**Opcional. */
valor: string;
ParseFromXMLElement: (Node: Element) => void;
}
type Documentoalgoritmo = 'SHA1withRSA' | 'SHA1withDSA';
}