paypal-integrations-intacct
Version:
Integration between paypal and intacct using hapi.
59 lines (58 loc) • 1.87 kB
TypeScript
import * as hapi from "hapi";
import { IBillingInfo, IInvoice, IInvoiceItem, InvoiceModel, IWebhookEvent, PayPalRestApi } from "paypal-rest-api";
import { HapiIntacctInvoicing } from "./intacct";
export * from "./intacct";
export interface IInvoicingOptions {
cron: {
create?: {
auto: boolean;
latertext: string;
};
refund?: {
auto: boolean;
latertext: string;
};
};
paymentaccounts?: {
default: string;
currencies?: {
[key: string]: string;
};
};
merchant: IBillingInfo;
reminderDays?: number;
startDate: string;
}
export declare const intacctInvoiceExtend: {
PAYPALERROR: string;
PAYPALINVOICEID: string;
PAYPALINVOICESTATUS: string;
PAYPALINVOICEURL: string;
PAYPALINVOICING: string;
};
export declare class HapiPayPalIntacctInvoicing {
static intacctKeys: string[];
private _intacct;
private _paypal;
private _server;
private _options;
constructor();
intacct: HapiIntacctInvoicing;
paypal: PayPalRestApi;
server: hapi.Server;
options: IInvoicingOptions;
register: hapi.PluginFunction<any>;
webhookHandler(webhook: IWebhookEvent): Promise<void>;
createPayment(invoice: IInvoice): Promise<void>;
validateAccounts(): Promise<void>;
validateKeys(): Promise<void>;
refundInvoicesSync(): Promise<void>;
refundInvoiceSync(invoice: any): Promise<void>;
createInvoiceSync(): Promise<void>;
syncIntacctToPayPal(invoice: any): Promise<any>;
syncPayPalToIntacct(invoice: InvoiceModel): Promise<void>;
toPaypalInvoice(intacctInvoice: any): any;
toPayPalLineItems(arrInvoiceItems: any): IInvoiceItem[];
init(): Promise<void>;
updateInacctInvoiceWithPayPalModel(intacctInvoice: any, paypalInvoice: InvoiceModel): any;
}