UNPKG

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
/** * 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;