@grod30/hacienda-js
Version:
Biblioteca TypeScript para facturación electrónica de Costa Rica (Hacienda)
44 lines (39 loc) • 1.5 kB
TypeScript
interface HaciendaConfig {
/** URL base del API de Hacienda */
apiUrl: string;
/** ID del cliente para autenticación */
clientId: string;
/** Ambiente (desarrollo o producción) */
environment: 'desarrollo' | 'produccion';
}
interface SignatureOptions {
/** Ruta al archivo del certificado .p12 o .pem */
certPath: string;
/** Contraseña del certificado */
password: string;
/** Tipo de certificado */
certType: 'p12' | 'pem';
}
interface DocumentResponse {
/** Clave del documento */
clave: string;
/** Fecha de recepción */
fecha: string;
/** Estado del documento */
estado: 'aceptado' | 'rechazado' | 'procesando';
/** Mensaje de respuesta */
mensaje?: string;
}
declare function signXml(xml: string, options: SignatureOptions): Promise<string>;
declare class HaciendaAPI {
private config;
private token?;
constructor(config: HaciendaConfig);
getToken(username: string, password: string): Promise<string>;
protected validateToken(token?: string): string;
protected makeRequest<T>(method: 'get' | 'post', url: string, data?: any, token?: string): Promise<T>;
sendDocument(documentXml: string, token?: string): Promise<DocumentResponse>;
checkStatus(clave: string, token?: string): Promise<DocumentResponse>;
}
declare const validateXml: (xml: string) => boolean;
export { type DocumentResponse, HaciendaAPI, type HaciendaConfig, type SignatureOptions, signXml, validateXml };