efi-easy-pix
Version:
A simple Node.js module for integrating with Efipay's PIX API
142 lines (126 loc) • 4.78 kB
TypeScript
declare module 'efi-easy-pix' {
export interface EfipayConfig {
clientId: string;
clientSecret: string;
certificatePath: string;
sandbox?: boolean;
}
export interface WebhookConfig {
ngrokToken: string;
port?: number;
certificatePath: string;
sandbox?: boolean;
}
export interface QRCode {
content: string;
image: {
base64: string;
toBuffer(): Buffer;
};
}
export interface PIXData {
valor: string;
pagador: {
chave: string;
infoPagador?: string;
};
favorecido: {
chave: string;
};
}
export interface ChargeData {
calendario: {
expiracao?: number;
dataDeVencimento?: string;
validadeAposVencimento?: number;
};
devedor: {
cpf?: string;
cnpj?: string;
nome: string;
logradouro?: string;
cidade?: string;
uf?: string;
cep?: string;
};
valor: {
original: string;
multa?: {
modalidade: number;
valorPerc: string;
};
juros?: {
modalidade: number;
valorPerc: string;
};
desconto?: {
modalidade: number;
descontoDataFixa?: Array<{
data: string;
valorPerc: string;
}>;
};
};
chave: string;
solicitacaoPagador: string;
}
export interface RefundData {
valor: string;
}
export interface ListParams {
inicio: string;
fim: string;
status?: string;
cpf?: string;
cnpj?: string;
}
export class EfipayClient {
constructor(config: EfipayConfig);
// PIX Send Methods
sendPix(idEnvio: string, pixData: PIXData): Promise<any>;
getSentPixByE2eId(e2eId: string): Promise<any>;
getSentPixByIdEnvio(idEnvio: string): Promise<any>;
listSentPix(params: ListParams): Promise<any>;
// QR Code Methods
generateQRCode(chargeData: ChargeData): Promise<QRCode>;
generateQRCodeWithDueDate(chargeData: ChargeData): Promise<QRCode>;
getQRCodeDetails(qrCode: QRCode): Promise<any>;
payQrCode(idEnvio: string, paymentData: PIXData): Promise<any>;
// PIX Charge Methods
createCharge(chargeData: ChargeData): Promise<any>;
createChargeWithTxid(txid: string, chargeData: ChargeData): Promise<any>;
updateCharge(txid: string, chargeData: Partial<ChargeData>): Promise<any>;
getCharge(txid: string, revision?: number): Promise<any>;
listCharges(params: ListParams): Promise<any>;
// PIX Charge with Due Date Methods
createDueDateCharge(txid: string, chargeData: ChargeData): Promise<any>;
updateDueDateCharge(txid: string, chargeData: Partial<ChargeData>): Promise<any>;
getDueDateCharge(txid: string, revision?: number): Promise<any>;
listDueDateCharges(params: ListParams): Promise<any>;
// PIX Transaction Methods
getPixTransaction(e2eId: string, showBankCode?: boolean): Promise<any>;
listPixTransactions(params: ListParams): Promise<any>;
requestRefund(e2eId: string, refundId: string, refundData: RefundData): Promise<any>;
getRefund(e2eId: string, refundId: string): Promise<any>;
// Webhook Methods
configureWebhook(chave: string, webhookUrl: string, skipMtls?: boolean): Promise<any>;
getWebhookInfo(chave: string): Promise<any>;
listWebhooks(params: ListParams): Promise<any>;
deleteWebhook(chave: string): Promise<any>;
resendWebhook(type: string, e2eids: string[]): Promise<any>;
// Automatic PIX Webhook Methods
configureAutoPixWebhook(webhookUrl: string): Promise<any>;
getAutoPixWebhookInfo(): Promise<any>;
deleteAutoPixWebhook(): Promise<any>;
// Automatic PIX Charge Webhook Methods
configureAutoPixChargeWebhook(webhookUrl: string): Promise<any>;
getAutoPixChargeWebhookInfo(): Promise<any>;
deleteAutoPixChargeWebhook(): Promise<any>;
}
export class WebhookHandler {
constructor(config: WebhookConfig);
start(): Promise<string>;
stop(): Promise<void>;
on(event: 'pixReceived' | 'pixRefund' | 'pixSent', listener: (data: any) => void): void;
}
}