export type PaymentMethod = 'OVERNIGHT' | 'PREPAID' | 'PAYCARGO_CREDIT' | 'CREDITCARD' | 'CREDIT_NOTE' | 'ADVANCE' | 'PCF_ADVANCE' | 'CARRIER_CREDIT' | null; export type Base64Attachment = { base64: string; mimeType: string; filename: string; size?: number; }; export interface CreateTransactionResponse { success: boolean; transaction: BatchApproveData | null; message?: string; } export interface GetTransactionFeesInterface { transactionId?: number | null; payerId?: number | null; vendorId?: number | null; paymentMethod: PaymentMethod | null; total?: number | null; numberOfTransactions?: number | null; apiHost: string; developerToken: string | null; token: string | null; oneTimePayment: boolean; cardIssuingCountry?: string | null; region?: string | null; } export interface TransactionFeesInterface { amount: number; annualFee: number; asOf: string | Date; bBatchFlatFee: boolean; batchApprovalMinimumCount: number | null; carrierFee: number; currency: string; financeFee: number; payerId: number; processingFee: number; totalWithFees: number; transactionFee: number; transactionFeeIfBatchMinNotMet: number | null; vendorId: number; } export interface GetPaymentOptionsInterface { payerId: number; vendorId: number; currencyId: string; paymentDueDate: string | Date; token: string; } export interface PaymentOptionsInterface { [key: string]: number | string | Date | PaymentMethod; advancedAmount: number; asOf: string | Date; availableAmount: number; code: PaymentMethod; currency: string; dateToProcess: string; displayName: string; limit: number; payerId: number; pcfDays: number; } export interface AvailablePaymentOptionsParams { paymentOptions: PaymentOptionsInterface[]; isPrepaid: boolean; isPCFAdvance: boolean; region: string; ccPaymentOption: boolean; } export interface BatchResponse { success: boolean; approvalResponse: BatchData; msg: string; code: number; } export interface TransactionLines extends Partial { transactionId?: number | null; description: string; startDate: Date | string; endDate: Date | string; quantity: number | null; unitPrice: number | null; amount: number; vatPercent: number | null; vatAmount: number | null; pieces: number | null; weight: number | null; location: string | null; EXTERNAL_LINE_ID: string | null; currency: string | null; } interface OSRAProprties { availabilityDate: Date | string; erd: Date | string | null; freeTimeDays: number | null; refund: string | null; dispute: string | null; waiver: string | null; feeMitigation: string | null; billOfLading: string | null; billedPartyJustification: string | null; invoiceDate: Date | string | null; invoiceDueDate: Date | string | null; pod: string | null; lfd: Date | string | null; sfd: Date | string | null; containerNumber: string | null; ddr: string | null; feeContact: string | null; complianceStatement: string | null; commonCarrierStatement: string | null; currency: string | null; dateChargesOccurred: string | string[]; onlyBilledPartyJustification?: boolean | null; } export interface TransactionI { [key: string]: string | number | Date | null | TransactionLines[] | undefined | boolean | 'true' | 'false'; type: string; transactionId?: number | null; vendorId: number | null; vendorName?: string; costCenterId?: string | null; payerId: number | null; payerName?: string; externalSystemId?: number | null; externalId?: string | null; payerCurrencyId?: string | null; uuid?: string | null; total: number | null; bolLink: string; number: string; parent: string; shipperRefNumber: string; customerRefNumber: string; subcategory: string; vendorRefNumber: string; payerInternalNumber?: string; payerVoucherNumber?: string; payerRefNumber?: string; payerFileNumber?: string; payerProductNumber?: string; payerInvoiceNumber?: string; paymentDueDate: Date | string | null; arrivalDate?: Date | string | null; departureDate?: Date | string | null; direction: 'Inbound' | 'Outbound'; transDirectionName: string; origin?: string; destination?: string; placeOfDelivery?: string; placeOfReceipt?: string; notes: string | null; brandCode?: string | null; hasArrived: 'Y' | 'N' | ''; currency: string | null; region: string; transactionLines?: TransactionLines[]; abortEarly?: 'true' | 'false' | boolean; skipShipperRules?: boolean; technologyId: number; } export interface BatchApprovalResponse { result: BatchResult; data: BatchData | null; success: boolean; token?: string; } export interface BatchResult { msg: string; code: string | number; } export interface BatchData { result?: BatchResult; success: BatchSuccessOrErrorData; error: BatchSuccessOrErrorData; transactions: BatchApproveData[]; fundsAvailable: BatchFundsAvailableData[]; batchHeader: BatchHeaderData; } export interface BatchCreateData { result: BatchResult; data: BatchApproveData; } export interface BatchSuccessOrErrorData { approve: BatchApproveData[]; create: BatchApproveData[]; } export interface BatchApproveData { transactionId: number; vendorId: number; payerId: number; userEmail: string; statusId: number; status: string; statusDetailCode: string | null; totalAmount: number; approvalDate: string | Date; approvalDateUTC: string | Date; number: string; type: string; transactionFee?: number; financeFee?: number; processingFee?: number; annualFee?: number; convenienceFee?: number; currency: string; payerName: string; vendorName?: string; vendorRefNumber?: string; approverName: string; payerRefNumber: string; customerRefNumber: string; subcategory: string; shipperRefNumber: string; bolLink: string; notes: string; arrivalDate: null | Date | string; departureDate: null | Date | string; payerInvoiceNumber: string; payerInternalNumber: string; payerFileNumber: string; payerVoucherNumber: string; parent: string; transactionLines?: TransactionLinesResp; paymentMethod: PaymentMethod; msg?: string; code?: number; result?: BatchResult; paymentVatAmount?: number | null; paymentNetAmount?: number | null; transactionFeeNetAmount?: number | null; transactionFeeVatAmount?: number | null; financeFeeNetAmount?: number | null; financeFeeVatAmount?: number | null; totalNetAmount?: number | null; totalVatAmount?: number | null; defaultFeeTaxPercent: number | null; paymentDueDate: string | Date; } export interface TransactionLinesResp { error: []; success: { msg: string; transactionLineId: number; }[]; } export interface BatchFundsAvailableData { type: string; limit: number; amount: number; asOf: string | Date; currency: string; } export interface BatchHeaderData { dateCreated: string | Date; currency: string; payerId: number; asOf: string | Date; batchId: number; } export interface FileBase64Info { base64: string; mimeType: string; filename: string; } export interface ApprovalResponseInterface { annualFee: number; approvalDate: Date | string; approvalDateUTC: Date | string; currency: string; customerRefNumber: string | null; financeFee: number; number: string; payerId: number; payerName: string; processingFee: number; relatedBol: string | null; totalAmount: number; transactionFee: number; transactionId: number; type: string; userEmail: string; vendorId: number; vendorName: string; token?: string; } export interface TransactionThreadInterface { transactionId: number; pcTransactionThreadTypeCode: string; requestBody: { disputeAmount: number | string; disputeReason: string; disputeCategory?: any; disputeSubcategory?: any; }; files: File[]; } export interface TransactionThreadResult { code: number; msg: string; } export interface TransactionThreadData { result: TransactionThreadResult; data: TransactionI; } export interface TransactionThreadResponse { success: boolean; result: TransactionThreadResult; data: TransactionThreadData | null; } export {};