The customer billing settings resource defines the billing settings for the customer. In specific, these preferences control the payment terms and grace period applied to the customer as well as whether invoices auto post to the account and whether payments are automatically collected from credit card or ACH accounts on file.
Additional preferences may be added in the future so when editing the customer billing settings via the API it is suggested to always perform a GET to retrieve the full customer billing settings list and to then modify the data in that response and PUT that response to perform the edit action. This ensures the PUT action includes all the required customer billing settings fields.
Customer Billing Settings Fields
Property | Type | Description |
---|---|---|
invoiceDay | Integer | This field is deprecated and no longer used. [Read Only] |
term | Enum:{Net0, Net5, Net7, Net10, Net15, Net21, Net30, Net45, Net60, Net75, Net90, MFI1, DayOfMonth1, DayOfMonth2, DayOfMonth3, ... DayOfMonth29, DayOfMonth30, DayOfMonth31} | This defines the Payment Terms for this Customer. |
interval | Enum: {Monthly, Yearly} | This field is deprecated and no longer used. [Read Only] |
autoCollect | Boolean | This defines whether the billing system will attempt to collect from the customer's payment method on file. The global auto collect setting is used by default and by setting this field explicitly on the Customer the setting can be overridden for this Customer. This setting can only be explicitly set to True if the customer has a Payment Method, such as a credit card of ACH account, on file. If set to true then when charges are applied to the Customer the billing system will attempt to collect them in full form the default payment method on file. If set to false the billing system will not collect automatically. If set to null then the billing system will use the global auto collect setting. |
autoCollectSettingType | String | When auto collect is set to on, this defines the type of auto collect. CurrentInvoice, OutstandingBalance, or Threshold are acceptable valid strings that can be used to set auto collect behaviour. |
dunningExempt | Boolean | Controls whether this customer is exempt from your account's Dunning management settings. Dunning management settings control how and when Fusebill will automatically try to collect the outstanding balance of customers in poor standing. Relevant only for customers subject to auto collect. |
rechargeType | String | This value should be set to "BringBalanceBackTo" in any case where you want to use the threshold billing feature. |
rechargeThresholdAmount | Decimal | This is the value which triggers a threshold collection. If the customer balance drops below this number when an invoice is posted the system will automatically collect enough funds to bring the balance back to the rechargeTargetAmount . |
rechargeTargetAmount | Decimal | This is the customer balance which will be collected when the customer balance dips below the threshold. For example, the threshold amount could be $20 and this value set to $50. In this case, the system will collect funds if to bring the balance back to $50 if the customer drops below $20. |
statusOnThreshold | Boolean | This setting determines if the customer should enter poor standing if their balance dips below the set threshold and the payment to restore the balance fails. |
autoPostDraftInvoice | Boolean | Controls whether ready draft invoices should be posted automatically or remain in draft to be posted manually. Null means to follow account defaults |
hasPaymentMethod | Boolean | Indicates whether the customer has a payment method [Read Only] |
customerGracePeriod | Integer | The number of days a customer can be in poor standing before suspension occurs. |
gracePeriodExtension | Integer | The default number of days a grace period can be manually extended |
customerAutoCancel | Integer | The number of days after suspension before the customer is cancelled by the system. |
defaultCancelOption | Enum:{Full, None, Unearned} | Controls revenue recognition in the event of customer automatic cancellation. "Full" means to reverse all charges fully. "None" means earn all charges. "Unearned" means to reverse unearned amounts for all charges. NULL means to follow the default of the Fusebill account. |
standingPoNumber | String | This is the PO number which will be added to this customer's invoices. [Max Length: 255 characters] |
billingPeriodConfigurations | Object (defined below) | This list is populated it the billing settings at the customer level have been overridden. |
acquisitionCost | Decimal | This is the cost in dollars spent to acquire this customer. This factors into the customer profitability metric. |
showZeroDollarCharges | Boolean | This defines if this customer will show or not show $0 charges on their invoices. This can be either true, which means Fusebill will show charges, or false, which means Fusebill will hide these charges, or null which means the customer is using the account level default option. |
taxExempt | Boolean | This defines if this customer should be charged taxes. |
useCustomerBillingAddress | Boolean | Controls whether the shipping address or billing address for taxation purposes. If null, the system will use the account level tax setting configuration, if set to true the system will use the customer's billing address for taxes, and if set to false the system will use the customer's shipping address for taxes. |
taxExemptCode | String | This is the tax exemption code for this customer. If taxExempt is set to True this field must be populated. [Max Length: 255 characters] |
avalaraUsageType | String | This is a string sent to Alavara for determining the application of various sales taxes. [Max Length: 4 characters] |
vatIdentificationNumber | Integer | The number associated with the clients EU Vat ID. |
customerServiceStartOption | Enum: { ChargeForAllMissedPeriods, ChargeForLastMIssedPeriods, NoChargesForMissedPeriods, ChargeForCurrentFullPeriod} | This setting allows you to specify how you would like the system to behave if a customer is automatically moved from suspend status back to active status as a result of successfully auto-collecting outstanding balances. Null means to follow the account defaults. |
rollUpTaxes | Boolean | This option determines if the taxes on the customer's invoices will appear 'rolled up' as one line (eg: Taxes: $4.56) or if the will be broken into multiple lines (eg: State Tax: $3.45 and Federal Tax: $1.34). Null means to follow the account defaults |
rollUpDiscounts | Boolean | If true, all of the discounts for all products and plans on the invoices for this customer will be rolled up into a single line item at the bottom of the invoice. Null follows the default of the Fusebill account. |
rollUpPdfsByPlanProduct | Boolean | Controls how subscription charges are displayed on downloaded invoices. True means to display summarized subscription product charges. False means to display detailed charges. |
rollUpPdfsDisplayName | Boolean | Controls whether plan names are displayed on summarized invoices |
rollUpPdfsDisplayDescription | Boolean | Controls whether plan descriptions are displayed on summarized invoices |
rollUpPdfsDisplayAllUnitPrices | Boolean | Controls whether all unit prices are displayed on summarized invoices |
pdfInvoiceEmailAttachmentOption | Enum:{Details, Summary, Both} | Controls how subscription charges are displayed on emailed invoices. "Details" means to show fully detailed charges. "Summary" means to show summarized charges. "Both" means to show both. |
trackedItemDisplay | Object (defined below) | Controls the appearance of tracked items on invoices for the customer. |
customerBillingStatementSetting | Object (defined below) | Controls the billing statement settings for this customer. |
defaultPaymentMethodId | Integer | The Fusebill generated ID of the customer's default payment method. |
postReadyChargesOnRenew | Boolean | Controls whether draft ready charges are posted on renewal. This includes new ready draft charges from renewals and any existing ready draft charges from subscriptions and purchases. Null means to follow the Fusebill account default. |
id | String | This is the Customer ID of the customer to whom these preferences apply. [Read Only] |
uri | String | The full string path to this resource. [Read Only] |
Billing Period Configuration Object Fields
Property | Type | Description |
---|---|---|
type | Enum:{SpecifiedDate, CustomerActivation, FirstSubscriptionActivation} | Controls when subscriptions of the configured interval are recharged |
rule | Enum:{SingleInvoice, MultipleInvoices, OneInvoicePerDay, Prompt} | Controls how to invoice. Single Invoice compiles subscriptions of the given interval on one invoice. Multiple Invoices separates them as one invoice per subscription. One Invoice Per Day posts an invoice every day. Prompt requires an agent to approve it each time. |
interval | Enum:{Yearly, Monthly} | Indicates which type of billing period this configuration applies to. |
day | Integer (1-31) | The day of the month to recharge. Use only if type is "SpecifiedDate" |
month | Integer (1-12) | The month of the year to recharge. Use only if type is "SpecifiedDate" and interval is "Yearly" |
Tracked Item Display Object Fields
Property | Type | Description |
---|---|---|
trackedItemDisplayFormat | Enum:{Inline, SeperatePage} | Controls where the tracked items are displayed. |
showTrackedItemName | Boolean | This controls if the tracked items names are displayed. |
showTrackedItemReference | Boolean | This controls if the tracked items' reference are displayed. |
showTrackedItemDescription | Boolean | This controls if the tracked items' description are displayed. |
showTrackedItemCreatedDate | Boolean | This controls if tracked items' created dates are displayed. |
Customer Billing Statement Setting Object Fields
Property | Type | Description |
---|---|---|
option | Enum:{Detailed, BySubscription, Summarized} | Controls how the statement is generated. |
type | Enum:{CustomerAnniversary, SpecifiedDate} | The basis for when statements are generated |
interval | Enum:{Monthly, Yearly} | Controls frequency of statement generation. |
day | Integer | The day of the month to generate the statement if type is "SpecifiedDate" |
month | Integer | The month of the year to generate the statement if type is "SpecifiedDate" and interval is "Yearly". |
trackedItemDisplay | Object (defined above) | Controls how tracked items are displayed on the statement. |
statementActivityType | Enum: {OnlyParentActivity, OnlyChildActivity, ParentAndChildActivity} | Controls which activities to generate if customer hierarchy is being used. |