nodefact
Version:
Biblioteca para facturación electrónica en Perú con Node.js. Compatible con UBL 2.1 y servicios web de SUNAT.
91 lines (90 loc) • 3.13 kB
TypeScript
/**
* Módulo SUNAT - Comunicación con los servicios web de SUNAT
*
* Este módulo proporciona funcionalidades para la comunicación con los servicios web
* de SUNAT para el envío de documentos electrónicos.
*/
import { NodeFactError } from '../core';
/**
* Clase para errores de comunicación con SUNAT
*/
export declare class SunatError extends NodeFactError {
constructor(message: string);
}
/**
* Endpoints de los servicios web de SUNAT
*/
export declare enum SunatEndpoints {
PRODUCCION_FACTURA = "https://e-factura.sunat.gob.pe/ol-ti-itcpfegem/billService",
PRODUCCION_GUIA = "https://e-guiaremision.sunat.gob.pe/ol-ti-itemision-guia-gem/billService",
PRODUCCION_RETENCION = "https://e-factura.sunat.gob.pe/ol-ti-itemision-otroscpe-gem/billService",
BETA_FACTURA = "https://e-beta.sunat.gob.pe/ol-ti-itcpfegem-beta/billService",
BETA_GUIA = "https://e-beta.sunat.gob.pe/ol-ti-itemision-guia-gem-beta/billService",
BETA_RETENCION = "https://e-beta.sunat.gob.pe/ol-ti-itemision-otroscpe-gem-beta/billService",
HOMOLOGACION_FACTURA = "https://e-factura.sunat.gob.pe/ol-ti-itcpfegem-sqa/billService",
HOMOLOGACION_GUIA = "https://e-guiaremision.sunat.gob.pe/ol-ti-itemision-guia-gem-sqa/billService",
HOMOLOGACION_RETENCION = "https://e-factura.sunat.gob.pe/ol-ti-itemision-otroscpe-gem-sqa/billService"
}
/**
* Credenciales para la autenticación con SUNAT
*/
export interface SunatCredentials {
ruc: string;
usuario: string;
clave: string;
}
/**
* Opciones para el cliente SUNAT
*/
export interface SunatClientOptions {
endpoint: SunatEndpoints;
credentials: SunatCredentials;
timeout?: number;
}
/**
* Resultado de una operación con SUNAT
*/
export interface SunatResult {
success: boolean;
cdr?: string;
ticket?: string;
error?: string;
}
/**
* Cliente para la comunicación con los servicios web de SUNAT
*/
export declare class SunatClient {
private options;
private client;
constructor(options: SunatClientOptions);
/**
* Inicializa el cliente SOAP
*/
private initClient;
/**
* Envía un documento a SUNAT
* @param fileName Nombre del archivo ZIP
* @param contentBase64 Contenido del archivo ZIP en base64
* @returns Resultado de la operación
*/
sendBill(fileName: string, contentBase64: string): Promise<SunatResult>;
/**
* Envía un resumen diario o comunicación de baja a SUNAT
* @param fileName Nombre del archivo ZIP
* @param contentBase64 Contenido del archivo ZIP en base64
* @returns Resultado de la operación
*/
sendSummary(fileName: string, contentBase64: string): Promise<SunatResult>;
/**
* Consulta el estado de un ticket
* @param ticket Número de ticket
* @returns Resultado de la operación
*/
getStatus(ticket: string): Promise<SunatResult>;
}
/**
* Crea un cliente para la comunicación con los servicios web de SUNAT
* @param options Opciones para el cliente
* @returns Cliente SUNAT
*/
export declare function createSunatClient(options: SunatClientOptions): SunatClient;