/**
 * Octane API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 *
 * @export
 * @interface BillingSettings
 */
export interface BillingSettings {
    /**
     * Time length of the grace period between the end of a billing cycle and invoice generation in days.
     * @type {number}
     * @memberof BillingSettings
     */
    invoiceGracePeriodLength?: number | null;
    /**
     * Time length unit of the grace period between the end of a billing cycle and invoice generation. Must be `day`.
     * @type {string}
     * @memberof BillingSettings
     */
    invoiceGracePeriodUnit?: string | null;
    /**
     * Time length of the grace period between the end of invoice generation and the actual charge. *NOTE*: The specified length is unitless. Unit is designated with the `payment_grace_period_unit` field.
     * @type {number}
     * @memberof BillingSettings
     */
    paymentGracePeriodLength?: number | null;
    /**
     * Time length unit of the grace period between the end of invoice generation and actual charge. One of `minute`, `hour`, `day`.
     * @type {string}
     * @memberof BillingSettings
     */
    paymentGracePeriodUnit?: string | null;
    /**
     * Flag that controls whether or not invoices should be sent to customers.
     * @type {boolean}
     * @memberof BillingSettings
     */
    shouldSendInvoiceToCustomers?: boolean | null;
    /**
     * Flag that controls whether to invoice through Octane or through payment provider
     * @type {boolean}
     * @memberof BillingSettings
     */
    invoiceViaOctane?: boolean | null;
    /**
     * Flag that controls whether invoices are auto-approved or require manual approval
     * @type {boolean}
     * @memberof BillingSettings
     */
    autoApproveInvoices?: boolean | null;
    /**
     *
     * @type {any}
     * @memberof BillingSettings
     */
    readonly customerInvoiceDetailLevel?: any | null;
    /**
     * Flag that controls whether or not to auto-charge the customer based on the invoice.
     * @type {boolean}
     * @memberof BillingSettings
     */
    chargesEnabled?: boolean | null;
    /**
     * Flag that controls whether or not to invoice/charge the base rate, add ons and other fixed price plan components at the beginning of the billing cycle.
     * @type {boolean}
     * @memberof BillingSettings
     */
    invoiceFixedComponentsAtStart?: boolean | null;
    /**
     * Flag that controls the number of retry attempts for invoicing/payments.
     * @type {number}
     * @memberof BillingSettings
     */
    retryAttempts?: number | null;
    /**
     * Time length after which to attempt invoice/payment retry.
     * @type {number}
     * @memberof BillingSettings
     */
    retryFrequencyLength?: number | null;
    /**
     * Time length unit after which to attempt invoice/payment retry.
     * @type {string}
     * @memberof BillingSettings
     */
    retryFrequencyUnit?: string | null;
    /**
     * The percentage tax rate to apply to invoices.
     * @type {number}
     * @memberof BillingSettings
     */
    taxRate?: number | null;
    /**
     * Flag that controls whether to do automated taxes via payment provider
     * @type {boolean}
     * @memberof BillingSettings
     */
    taxViaPaymentProvider?: boolean | null;
    /**
     * Flag that controls whether or not to invoice/charge gauge meters upfront according to their value at start of cycle. Only applies if invoice_fixed_components_at_start is enabled.
     * @type {boolean}
     * @memberof BillingSettings
     */
    invoiceMeteredComponentsAtStart?: boolean | null;
    /**
     * Flag that controls whether or not to invoice/charge a true up for a billing cycle on the following invoice. Only applies if invoice_fixed_components_at_start is enabled.
     * @type {boolean}
     * @memberof BillingSettings
     */
    invoiceOverages?: boolean | null;
    /**
     * Optional description attached to the invoice
     * @type {string}
     * @memberof BillingSettings
     */
    invoiceMemo?: string | null;
    /**
     * Sets the due date on invoices to the number of days after the invoice is sent
     * @type {number}
     * @memberof BillingSettings
     */
    daysUntilDue?: number | null;
    /**
     * If using stripe, this field can be used to configure whether invoices should be auto advanced for collection
     * @type {boolean}
     * @memberof BillingSettings
     */
    stripeAutoAdvance?: boolean | null;
    /**
     * Default value for whether to align billing cycles to calendar on subscriptions
     * @type {boolean}
     * @memberof BillingSettings
     */
    alignBillingCyclesToCalendar?: boolean | null;
    /**
     * Optional url of a custom image to include on invoices.
     * @type {string}
     * @memberof BillingSettings
     */
    invoiceLogoUrl?: string | null;
    /**
     * Flag determining whether ACH/Wire instructions should be included on invoices.
     * @type {boolean}
     * @memberof BillingSettings
     */
    includeAchInstructions?: boolean | null;
    /**
     * Account name for ACH/Wire transfer instructions
     * @type {string}
     * @memberof BillingSettings
     */
    achAccountName?: string | null;
    /**
     * ABA/Routing number for ACH/Wire transfer instructions
     * @type {string}
     * @memberof BillingSettings
     */
    achRoutingNumber?: string | null;
    /**
     * Account number for ACH/Wire transfer instructions
     * @type {string}
     * @memberof BillingSettings
     */
    achAccountNumber?: string | null;
    /**
     * Swift code for ACH/Wire transfer instructions
     * @type {string}
     * @memberof BillingSettings
     */
    achSwiftCode?: string | null;
    /**
     * Bank name for ACH/Wire transfer instructions
     * @type {string}
     * @memberof BillingSettings
     */
    achBankName?: string | null;
    /**
     * First line of bank address for ACH/Wire transfer instructions
     * @type {string}
     * @memberof BillingSettings
     */
    achBankAddress1?: string | null;
    /**
     * Second line of bank address for ACH/Wire transfer instructions
     * @type {string}
     * @memberof BillingSettings
     */
    achBankAddress2?: string | null;
    /**
     * True if customer updates should be synced to Stripe.
     * @type {boolean}
     * @memberof BillingSettings
     */
    syncCustomerDataToPaymentGateway?: boolean | null;
    /**
     * If using Stripe, this field can be used to configure whether invoices should be finalized immediately when they are created.
     * @type {boolean}
     * @memberof BillingSettings
     */
    stripeImmediateFinalization?: boolean | null;
    /**
     * If set, we will use this template id for our emails instead of our default one
     * @type {string}
     * @memberof BillingSettings
     */
    alternateSendgridTemplateId?: string | null;
    /**
     * If set, a minimum charge line item will override any line items that contribute to the minimum (i.e., the minimum charge line item would be the only line item).
     * @type {boolean}
     * @memberof BillingSettings
     */
    shouldMinimumChargeOverrideLineItems?: boolean | null;
    /**
     * Flag that controls whether to send receipts for paid invoices.
     * @type {boolean}
     * @memberof BillingSettings
     */
    sendReceipts?: boolean | null;
    /**
     * Flag that controls whether to communicate payment failures.
     * @type {boolean}
     * @memberof BillingSettings
     */
    communicatePaymentFailures?: boolean | null;
    /**
     * List of days before an invoice is due to communicate upcoming due notices.
     * @type {any}
     * @memberof BillingSettings
     */
    upcomingReminderDaysArray?: any | null;
    /**
     * List of days after an invoice is due to communicate past due notices.
     * @type {any}
     * @memberof BillingSettings
     */
    pastDueReminderDaysArray?: any | null;
    /**
     * Whether newly attached Stripe payment methods should be made the default for customers.
     * @type {boolean}
     * @memberof BillingSettings
     */
    autoUpdateStripeDefaultPaymentMethod?: boolean | null;
}
export declare function BillingSettingsFromJSON(json: any): BillingSettings;
export declare function BillingSettingsFromJSONTyped(json: any, ignoreDiscriminator: boolean): BillingSettings;
export declare function BillingSettingsToJSON(value?: BillingSettings | null): any;
