/** * NOTE: This file is auto generated by Xendit. * Do not edit the class manually. * Improvements? Share your ideas at https://github.com/xendit/xendit-node */ import type { Bank } from './Bank'; import type { ChannelProperties } from './ChannelProperties'; import type { CustomerObject } from './CustomerObject'; import type { DirectDebit } from './DirectDebit'; import type { Ewallet } from './Ewallet'; import type { InvoiceCurrency } from './InvoiceCurrency'; import type { InvoiceFee } from './InvoiceFee'; import type { InvoiceItem } from './InvoiceItem'; import type { InvoicePaymentMethod } from './InvoicePaymentMethod'; import type { InvoiceStatus } from './InvoiceStatus'; import type { NotificationPreference } from './NotificationPreference'; import type { Paylater } from './Paylater'; import type { QrCode } from './QrCode'; import type { RetailOutlet } from './RetailOutlet'; /** * An object representing details for an invoice. * @export * @interface Invoice */ export interface Invoice { /** * The unique identifier for the invoice. * @type {string} * @memberof Invoice */ id?: string; /** * The external identifier for the invoice. * @type {string} * @memberof Invoice */ externalId: string; /** * The user ID associated with the invoice. * @type {string} * @memberof Invoice */ userId: string; /** * The email address of the payer. * @type {string} * @memberof Invoice */ payerEmail?: string; /** * A description of the invoice. * @type {string} * @memberof Invoice */ description?: string; /** * * @type {InvoicePaymentMethod} * @memberof Invoice */ paymentMethod?: InvoicePaymentMethod; /** * * @type {InvoiceStatus} * @memberof Invoice */ status: InvoiceStatus; /** * The name of the merchant. * @type {string} * @memberof Invoice */ merchantName: string; /** * The URL of the merchant's profile picture. * @type {string} * @memberof Invoice */ merchantProfilePictureUrl: string; /** * The locale or language used for the invoice. * @type {string} * @memberof Invoice */ locale?: string; /** * The total amount of the invoice. * @type {number} * @memberof Invoice */ amount: number; /** * Representing a date and time in ISO 8601 format. * @type {Date} * @memberof Invoice */ expiryDate: Date; /** * The URL to view the invoice. * @type {string} * @memberof Invoice */ invoiceUrl: string; /** * An array of available banks for payment. * @type {Array} * @memberof Invoice */ availableBanks: Array; /** * An array of available retail outlets for payment. * @type {Array} * @memberof Invoice */ availableRetailOutlets: Array; /** * An array of available e-wallets for payment. * @type {Array} * @memberof Invoice */ availableEwallets: Array; /** * An array of available QR codes for payment. * @type {Array} * @memberof Invoice */ availableQrCodes: Array; /** * An array of available direct debit options for payment. * @type {Array} * @memberof Invoice */ availableDirectDebits: Array; /** * An array of available pay-later options for payment. * @type {Array} * @memberof Invoice */ availablePaylaters: Array; /** * Indicates whether credit card payments should be excluded. * @type {boolean} * @memberof Invoice */ shouldExcludeCreditCard?: boolean; /** * Indicates whether email notifications should be sent. * @type {boolean} * @memberof Invoice */ shouldSendEmail: boolean; /** * Representing a date and time in ISO 8601 format. * @type {Date} * @memberof Invoice */ created: Date; /** * Representing a date and time in ISO 8601 format. * @type {Date} * @memberof Invoice */ updated: Date; /** * The URL to redirect to on successful payment. * @type {string} * @memberof Invoice */ successRedirectUrl?: string; /** * The URL to redirect to on payment failure. * @type {string} * @memberof Invoice */ failureRedirectUrl?: string; /** * Indicates whether credit card authentication is required. * @type {boolean} * @memberof Invoice */ shouldAuthenticateCreditCard?: boolean; /** * * @type {InvoiceCurrency} * @memberof Invoice */ currency?: InvoiceCurrency; /** * An array of items included in the invoice. * @type {Array} * @memberof Invoice */ items?: Array; /** * Indicates whether the virtual account is fixed. * @type {boolean} * @memberof Invoice */ fixedVa?: boolean; /** * Representing a date and time in ISO 8601 format. * @type {Date} * @memberof Invoice */ reminderDate?: Date; /** * * @type {CustomerObject} * @memberof Invoice */ customer?: CustomerObject; /** * * @type {NotificationPreference} * @memberof Invoice */ customerNotificationPreference?: NotificationPreference; /** * An array of fees associated with the invoice. * @type {Array} * @memberof Invoice */ fees?: Array; /** * * @type {ChannelProperties} * @memberof Invoice */ channelProperties?: ChannelProperties; /** * A free-format JSON for additional information that you may use. Object can be up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. * @type {object} * @memberof Invoice */ metadata?: object; } /** * Check if a given object implements the Invoice interface. */ export declare function instanceOfInvoice(value: object): boolean; export declare function InvoiceFromJSON(json: any): Invoice; export declare function InvoiceFromJSONTyped(json: any, ignoreDiscriminator: boolean): Invoice; export declare function InvoiceToJSON(value?: Invoice | null): any;