UNPKG

@cityssm/eft-generator

Version:

Formats Electronic Funds Transfer (EFT) data into the CPA 005 standard.

84 lines (83 loc) 1.8 kB
export interface EFTConfiguration { /** * Also known as * - Client Number * - Company ID * - Customer Number */ originatorId: string; originatorShortName?: string; originatorLongName: string; /** * Four digit number. * Should be different from previous 10 numbers submitted for processing. */ fileCreationNumber: string; /** * If not set, will use today. */ fileCreationDate?: Date; /** * Also known as: * - Processing Centre */ destinationDataCentre?: string; destinationCurrency?: 'CAD' | 'USD'; /** * Three digits */ returnInstitutionNumber?: string; /** * Five digits */ returnTransitNumber?: string; /** * Up to 12 digits */ returnAccountNumber?: string; } export interface EFTTransaction { /** * C = Credit - sending funds * D = Debit - receiving funds */ recordType: 'C' | 'D'; segments: EFTTransactionSegment[]; } export interface EFTTransactionSegment { cpaCode: `${number}`; /** * In dollars */ amount: number; /** * If not set, will use today. */ paymentDate?: Date; /** * Three digits */ bankInstitutionNumber: string; /** * Five digits */ bankTransitNumber: string; /** * Up to 12 digits */ bankAccountNumber: string; payeeName: string; crossReferenceNumber?: string; } export type ValidationWarning = { warning: string; } & ({ warningField: keyof EFTConfiguration | 'transactions'; } | { transactionIndex: number; warningField: keyof EFTTransaction; } | { transactionIndex: number; transactionSegmentIndex: number; warningField: keyof EFTTransactionSegment; });