Kill Bill supports configuring the system by specifying external properties. This document explains how such properties can be configured.

Kill Bill Configuration

Overview

At a high level, Kill Bill configuration can be done in one of the following ways:

  • Per-tenant configuration - Used to define tenant-specific configuration properties (such as Catalog/Overdue XML files, Invoice, Payment properties, etc.).

  • Properties file - Used to define properties global to the system.

  • Java System Properties - Used to define certain "special" configuration properties.

  • Third Party Configuration Files - Can be used to specify third-party configuration (e.g. EhCache configuration file, logback configuration file, etc.

  • Environment variables - Can also be used to define configuration properties.

The subsequent sections elaborate each of these approaches.

Per Tenant Properties

Per tenant properties refers to properties that can be specified at a tenant level. Thus, each tenant can have different values for these properties.

Such properties are stored in the Kill Bill database and can be set by invoking the uploadPerTenantConfig endpoint.

For instance to set the invoice dry run notification schedule for the boblazar tenant, you can invoke the endpoint as follows:

curl -v \
     -X POST \
     -u 'admin:password' \
     -H "X-Killbill-ApiKey: bob" \
     -H "X-Killbill-ApiSecret: lazar" \
     -H "Content-Type: text/plain" \
     -H "X-Killbill-CreatedBy: configurator" \
     -d '{"org.killbill.invoice.dryRunNotificationSchedule":"48h"}' \
     "http://127.0.0.1:8080/1.0/kb/tenants/uploadPerTenantConfig"

This sets org.killbill.invoice.dryRunNotificationSchedule=48h for the boblazar tenant.

Important Notes:

  • Each call overwrites previous properties, so it is necessary to specify the full list of properties for a given tenant.

  • These properties can also be specified in the killbill properties file in which case they become global properties applicable to all tenants.

  • If a property is specified in the properties file as well as at a per-tenant level, the per-tenant configuration takes precedence.

The "Configuration Properties Table" below lists all the per tenant properties.

Properties File

Kill Bill configuration properties can also be defined within an explicit .properties file. Properties defined within this file are global and are applicable across all tenants. Typically, a default killbill.properties exists as explained in the "Setup Specific Notes" section. You can add new properties/modify property values in this file as required.

The "Configuration Properties Table" below lists all the global properties.

Environment Variables

Kill Bill also allows setting configuration properties via environment variables. In such a case, the value specified via the environment variable overrides the value defined in the killbill.properties file.

In order for environment variables to be enabled, you need to set the following property in the property file:

org.killbill.server.lookupEnvironmentVariables=true

Once enabled, you can define an environment variable corresponding to any property by prefixing the property name with KB_. For example, you can define an environment variable corresponding to the org.killbill.dao.url property as follows:

KB_org_killbill_dao_url = <jdbc URL here>

The "Configuration Properties Table" below lists all the environment variables.

Java System Properties

Certain "special" configuration properties need to be specified as Java system properties and cannot be specified in the properties file or as environment variables. Typically, you would not need to modify such properties.

The "Configuration Properties Table" below lists all the system properties.

Third Party Configuration Files

Third party configuration files can be used to specify configuration related to third party libraries like ehcache, logback, etc. The path of a third party configuration file in turn needs to be specified as a configuration property.

The following table lists the third party configuration files supported by Kill Bill and their corresponding configuration properties.

Third-Party Configuration Configuration Property Default Location

ehcache

org.killbill.cache.config.location

ehcache.xml

logback

logback.configurationFile

logback.xml

shiro

org.killbill.security.shiroResourcePath

shiro.ini

Configuration Properties Table

The following table lists all the Kill Bill configuration properties.

Payment Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.payment.retry.days/

KB_org_killbill_payment_retry_days

Specify the number of payment retries along with the interval in days between payment retries when payment failures occur

8,8,8

Per-Tenant/Config File/Environment Variable

org.killbill.payment.failure.retry.start.sec/

KB_org_killbill_payment_failure_retry_start_sec

Specify the interval of time in seconds before retrying a payment that failed due to a plugin failure (gateway is down, transient error, …​)

300

Per-Tenant/Config File/Environment Variable

org.killbill.payment.failure.retry.multiplier/

KB_org_killbill_payment_failure_retry_multiplier

Specify the multiplier to apply between in retry before retrying a payment that failed due to a plugin failure (gateway is down, transient error, …​)

2

Per-Tenant/Config File/Environment Variable

org.killbill.payment.janitor.unknown.retries/

KB_org_killbill_payment_janitor_unknown_retries

Delay before which unresolved transactions should be retried

5m,1h,1d,1d,1d,1d,1d

Per-Tenant/Config File/Environment Variable

org.killbill.payment.janitor.pending.retries/

KB_org_killbill_payment_janitor_pending_retries

Delay before which unresolved transactions should be retried

1h, 1d

Per-Tenant/Config File/Environment Variable

org.killbill.payment.failure.retry.max.attempts/

KB_org_killbill_payment_failure_retry_max_attempts

Specify the max number of attempts before retrying a payment that failed due to a plugin failure (gateway is down, transient error, …​)

8

Per-Tenant/Config File/Environment Variable

org.killbill.payment.invoice.plugin/

KB_org_killbill_payment_invoice_plugin

Default payment control plugin names

-

Per-Tenant/Config File/Environment Variable

org.killbill.payment.janitor.rate/

KB_org_killbill_payment_janitor_rate

Rate at which janitor tasks are scheduled

1h

Config File/Environment Variable

org.killbill.payment.janitor.attempts.delay/

KB_org_killbill_payment_janitor_attempts_delay

Delay before which unresolved attempt should be retried

12h

Config File/Environment Variable

org.killbill.payment.provider.default/

KB_org_killbill_payment_provider_default

Default payment provider to use

__external_payment__

Config File/Environment Variable

org.killbill.payment.plugin.timeout/

KB_org_killbill_payment_plugin_timeout

Timeout for each payment attempt

30s

Config File/Environment Variable

org.killbill.payment.plugin.threads.nb/

KB_org_killbill_payment_plugin_threads_nb

Number of threads for plugin executor dispatcher

10

Config File/Environment Variable

org.killbill.payment.globalLock.retries/

KB_org_killbill_payment_globalLock_retries

Maximum number of times the system will retry to grab global lock (with a 100ms wait each time)

50

Config File/Environment Variable

org.killbill.payment.method.overwrite/

KB_org_killbill_payment_method_overwrite

Ability to overwrite an existing payment method from a control plugin

false

Config File/Environment Variable

org.killbill.payment.allow.emptyInvoice/

KB_org_killbill_payment_allow_emptyinvoices

Ability to allow payments for zero amount invoices

false

Config File/Environment Variable

Invoice Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.invoice.maxNumberOfMonthsInFuture/

KB_org_killbill_invoice_maxNumberOfMonthsInFuture

Maximum target date to consider when generating an invoice

36

Per-Tenant/Config File/Environment Variable

org.killbill.invoice.sanitySafetyBoundEnabled/

KB_org_killbill_invoice_sanitySafetyBoundEnabled

Whether internal sanity checks to prevent mis- and double-billing are enabled

true

Per-Tenant/Config File/Environment Variable

org.killbill.invoice.disable.usage.zero.amount/

KB_org_killbill_invoice_disable_usage_zero_amount

Whether we disable writing $0 usage amounts

false

Per-Tenant/Config File/Environment Variable

org.killbill.invoice.usage.missing.lenient/

KB_org_killbill_invoice_usage_missing_lenient

Whether we fail invoice when we discover missing past usage records

false

Per-Tenant/Config File/Environment Variable

org.killbill.invoice.maxDailyNumberOfItemsSafetyBound/

KB_org_killbill_invoice_maxDailyNumberOfItemsSafetyBound

Maximum daily number of invoice items to generate for a subscription id

15

Per-Tenant/Config File/Environment Variable

org.killbill.invoice.dryRunNotificationSchedule/

KB_org_killbill_invoice_dryRunNotificationSchedule

DryRun invoice notification time before targetDate (ignored if set to 0s)

0s

Per-Tenant/Config File/Environment Variable

org.killbill.invoice.readMaxRawUsagePreviousPeriod/

KB_org_killbill_invoice_readMaxRawUsagePreviousPeriod

Maximum number of past billing periods we use to fetch raw usage data (usage optimization)

2

Per-Tenant/Config File/Environment Variable

org.killbill.invoice.globalLock.retries/

KB_org_killbill_invoice_globalLock_retries

Maximum number of times the system will retry to grab global lock (with a 100ms wait each time)

50

Config File/Environment Variable

org.killbill.invoice.plugin/

KB_org_killbill_invoice_plugin

Default invoice plugin names

-

Per-Tenant/Config File/Environment Variable

org.killbill.invoice.emailNotificationsEnabled/

KB_org_killbill_invoice_emailNotificationsEnabled

Whether to send email notifications on invoice creation (for configured accounts)

false

Config File/Environment Variable

org.killbill.invoice.enabled/

KB_org_killbill_invoice_enabled

Whether the invoicing system is enabled

true

Per-Tenant/Config File/Environment Variable

org.killbill.invoice.parent.commit.local.utc.time/

KB_org_killbill_invoice_parent_commit_local_utc_time

UTC Time when parent invoice gets committed

23:59:59.999

Per-Tenant/Config File/Environment Variable

org.killbill.invoice.item.result.behavior.mode/

KB_org_killbill_invoice_item_result_behavior_mode

How the result for an item will be reported (aggregate mode or detail mode).

AGGREGATE

Per-Tenant/Config File/Environment Variable

org.killbill.invoice.inArrear.mode/

KB_org_killbill_invoice_inArrear_mode

Determine how the system should behave for in-arrear plans.

DEFAULT

Per-Tenant/Config File/Environment Variable

org.killbill.invoice.parkAccountsWithUnknownUsage/

KB_org_killbill_invoice_parkAccountsWithUnknownUsage

Whether to park accounts when usage data is recorded but not defined in the catalog

false

Per-Tenant/Config File/Environment Variable

org.killbill.invoice.rescheduleIntervalOnLock/

KB_org_killbill_invoice_rescheduleIntervalOnLock

Time delay to reschedule an invoice run when lock is held

0s

Per-Tenant/Config File/Environment Variable

org.killbill.invoice.maxInvoiceLimit/

KB_org_killbill_invoice_maxInvoiceLimit

How far back in time should invoice generation look at

P200Y

Per-Tenant/Config File/Environment Variable

org.killbill.rescheduleIntervalOnLock/

KB_org_killbill_rescheduleIntervalOnLock

Tme delay to reschedule an invoice run when lock is held

30s, 1m, 1m, 3m, 3m, 10m

Per-Tenant/Config File/Environment Variable

org.killbill.invoice.usage.tz.mode/

KB_org_killbill_invoice_usage_tz_mode

Behavior to include usage points with respect to day light saving

FIXED

Per-Tenant/Config File/Environment Variable

org.killbill.invoice.proration.fixed.days/

KB_org_killbill_invoice_proration_fixed_days

Fixed number of days in a month to avoid proration

0

Per-Tenant/Config File/Environment Variable

Database Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.dao.url/

KB_org_killbill_dao_url

The jdbc url for the database

jdbc:h2:file:/var/tmp/killbill;MODE=MYSQL; DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE

Config File/Environment Variable

org.killbill.dao.user/

KB_org_killbill_dao_user

The jdbc user name for the database

killbill

Config File/Environment Variable

org.killbill.dao.password/

KB_org_killbill_dao_password

The jdbc password for the database

killbill

Config File/Environment Variable

org.killbill.dao.minIdle/

KB_org_killbill_dao_minIdle

The minimum allowed number of idle connections to the database

1

Config File/Environment Variable

org.killbill.dao.maxActive/

KB_org_killbill_dao_maxActive

The maximum allowed number of active connections to the database

100

Config File/Environment Variable

org.killbill.dao.leakDetectionThreshold/

KB_org_killbill_dao_leakDetectionThreshold

Amount of time that a connection can be out of the pool before a message is logged indicating a possible connection leak

60s

Config File/Environment Variable

org.killbill.dao.connectionTimeout/

KB_org_killbill_dao_connectionTimeout

How long to wait before a connection attempt to the database is considered timed out

10s

Config File/Environment Variable

org.killbill.dao.idleMaxAge/

KB_org_killbill_dao_idleMaxAge

The time for a connection to remain unused before it is closed off

60m

Config File/Environment Variable

org.killbill.dao.maxConnectionAge/

KB_org_killbill_dao_maxConnectionAge

Any connections older than this setting will be closed off whether it is idle or not. Connections currently in use will not be affected until they are returned to the pool

0m

Config File/Environment Variable

org.killbill.dao.idleConnectionTestPeriod/

KB_org_killbill_dao_idleConnectionTestPeriod

Time for a connection to remain idle before sending a test query to the DB

5m

Config File/Environment Variable

org.killbill.dao.connectionInitSql/

KB_org_killbill_dao_connectionInitSql

Sets a SQL statement executed after every new connection creation before adding it to the pool

null

Config File/Environment Variable

org.killbill.dao.prepStmtCacheSize/

KB_org_killbill_dao_prepStmtCacheSize

Number of prepared statements that the driver will cache per connection

500

Config File/Environment Variable

org.killbill.dao.prepStmtCacheSqlLimit/

KB_org_killbill_dao_prepStmtCacheSqlLimit

Maximum length of a prepared SQL statement that the driver will cache

2048

Config File/Environment Variable

org.killbill.dao.cachePrepStmts/

KB_org_killbill_dao_cachePrepStmts

Enable prepared statements cache

true

Config File/Environment Variable

org.killbill.dao.useServerPrepStmts/

KB_org_killbill_dao+useServerPrepStmts

Enable server-side prepared statements

true

Config File/Environment Variable

org.killbill.dao.dataSourceClassName/

KB_org_killbill_dao_dataSourceClassName

DataSource class name provided by the JDBC driver, leave null for autodetection

null

Config File/Environment Variable

org.killbill.dao.driverClassName/

KB_org_killbill_dao_driverClassName

JDBC driver to use (when dataSourceClassName is null)

null

Config File/Environment Variable

org.killbill.dao.mysqlServerVersion/

KB_org_killbill_dao_mysqlServerVersion

MySQL server version

5.1

Config File/Environment Variable

org.killbill.dao.logLevel/

KB_org_killbill_dao_logLevel

Log level for SQL queries

DEBUG

Config File/Environment Variable

org.killbill.dao.poolingType/

KB_org_killbill_dao_poolingType

Connection pooling type

HIKARICP

Config File/Environment Variable

org.killbill.dao.healthCheckConnectionTimeout/

KB_org_killbill_dao_healthCheckConnectionTimeout

How long to wait before a connection attempt to the database is considered timed out (healthcheck only)

10s

Config File/Environment Variable

org.killbill.dao.healthCheckExpected99thPercentile/

KB_org_killbill_dao_healthCheckExpected99thPercentile

Expected 99th percentile calculation to obtain a connection (healthcheck only)

50ms

Config File/Environment Variable

org.killbill.dao.initializationFailFast/

KB_org_killbill_dao_initializationFailFast

Whether or not initialization should fail on error immediately

false

Config File/Environment Variable

org.killbill.dao.transactionIsolationLevel/

KB_org_killbill_dao_transactionIsolationLevel

Set the default transaction isolation level

TRANSACTION_READ_COMMITTED

Config File/Environment Variable

org.killbill.dao.readOnly/

KB_org_killbill_dao_readOnly

Whether to put connections in read-only mode

false

Config File/Environment Variable

Plugin Database Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.billing.osgi.dao.url/

KB_org_killbill_billing_osgi_dao_url

The jdbc url for the database

jdbc:h2:file:/var/tmp/killbill;MODE=MYSQL; DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE

Config File/Environment Variable

org.killbill.billing.osgi.dao.user/

KB_org_killbill_billing_osgi_dao_user

The jdbc user name for the database

killbill

Config File/Environment Variable

org.killbill.billing.osgi.dao.password/

KB_org_killbill_billing_osgi_dao_password

The jdbc password for the database

password

Config File/Environment Variable

org.killbill.billing.osgi.dao.minIdle/

KB_org_killbill_billing_osgi_dao_minIdle

The minimum allowed number of idle connections to the database

1

Config File/Environment Variable

org.killbill.billing.osgi.dao.maxActive/

KB_org_killbill_billing_osgi_dao_maxActive

The maximum allowed number of active connections to the database

100

Config File/Environment Variable

org.killbill.billing.osgi.dao.leakDetectionThreshold/

KB_org_killbill_billing_osgi_dao_leakDetectionThreshold

Amount of time that a connection can be out of the pool before a message is logged indicating a possible connection leak

60s

Config File/Environment Variable

org.killbill.billing.osgi.dao.connectionTimeout/

KB_org_killbill_billing_osgi_dao_connectionTimeout

How long to wait before a connection attempt to the database is considered timed out

10s

Config File/Environment Variable

org.killbill.billing.osgi.dao.idleMaxAge/

KB_org_killbill_billing_osgi_dao_idleMaxAge

The time for a connection to remain unused before it is closed off

60m

Config File/Environment Variable

org.killbill.billing.osgi.dao.maxConnectionAge/

KB_org_killbill_billing_osgi_dao_maxConnectionAge

Any connections older than this setting will be closed off whether it is idle or not. Connections currently in use will not be affected until they are returned to the pool

0m

Config File/Environment Variable

org.killbill.billing.osgi.dao.idleConnectionTestPeriod/

KB_org_killbill_billing_osgi_dao_idleConnectionTestPeriod

Time for a connection to remain idle before sending a test query to the DB

5m

Config File/Environment Variable

org.killbill.billing.osgi.dao.prepStmtCacheSize/

KB_org_killbill_billing_osgi_dao_prepStmtCacheSize

Number of prepared statements that the driver will cache per connection

500

Config File/Environment Variable

org.killbill.billing.osgi.dao.prepStmtCacheSqlLimit/

KB_org_killbill_billing_osgi_dao_prepStmtCacheSqlLimit

Maximum length of a prepared SQL statement that the driver will cache

2048

Config File/Environment Variable

org.killbill.billing.osgi.dao.cachePrepStmts/

KB_org_killbill_billing_osgi_dao_cachePrepStmts

Enable prepared statements cache

true

Config File/Environment Variable

org.killbill.billing.osgi.dao.useServerPrepStmts/

KB_org_killbill_billing_osgi_dao_useServerPrepStmts

Enable server-side prepared statements

true

Config File/Environment Variable

org.killbill.billing.osgi.dao.dataSourceClassName/

KB_org_killbill_billing_osgi_dao_dataSourceClassName

DataSource class name provided by the JDBC driver, leave null for autodetection

Null

Config File/Environment Variable

org.killbill.billing.osgi.dao.driverClassName/

KB_org_killbill_billing_osgi_dao_driverClassName

JDBC driver to use (when dataSourceClassName is null)

Null

Config File/Environment Variable

org.killbill.billing.osgi.dao.mysqlServerVersion/

KB_org_killbill_billing_osgi_dao_mysqlServerVersion

MySQL server version

5.1

Config File/Environment Variable

org.killbill.billing.osgi.dao.logLevel/

KB_org_killbill_billing_osgi_dao_logLevel

Log level for SQL queries

DEBUG

Config File/Environment Variable

org.killbill.billing.osgi.dao.poolingType/

KB_org_killbill_billing_osgi_dao_poolingType

Connection pooling type

HIKARICP

Config File/Environment Variable

org.killbill.billing.osgi.dao.initializationFailFast/

KB_org_killbill_billing_osgi_dao_initializationFailFast

Whether or not initialization should fail on error immediately

false

Config File/Environment Variable

org.killbill.billing.osgi.dao.transactionIsolationLevel/

KB_org_killbill_billing_osgi_dao_transactionIsolationLevel

Set the default transaction isolation level

TRANSACTION_READ_COMMITTED

Config File/Environment Variable

org.killbill.billing.osgi.dao.readOnly/

KB_org_killbill_billing_osgi_dao_readOnly

Whether to put connections in read-only mode

false

Config File/Environment Variable

RO Database Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.billing.main.ro.dao.enabled/

KB_org_killbill_billing_main_ro_dao_enabled

Whether the read-only datasource is enabled. If enabled, read-only database queries are redirected to a separate read-only datasource details of which are configured via the other org_killbill_billing_main_ro.* properties listed below.

false

Config File/Environment Variable

org.killbill.billing.main.ro.dao.url/

KB_org_killbill_billing_main_ro_dao_url

The jdbc url for the database

jdbc:h2:file:/var/tmp/killbill;MODE=MYSQL;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;ACCESS_MODE_DATA=r

Config File/Environment Variable

org.killbill.billing.main.ro.dao.user/

KB_org_killbill_billing_main_ro_dao_user

The jdbc user name for the database

killbill

Config File/Environment Variable

org.killbill.billing.main.ro.dao.password/

KB_org_killbill_billing_main_ro_dao_password

The jdbc password for the database

killbill

Config File/Environment Variable

org.killbill.billing.main.ro.dao.minIdle/

KB_org_killbill_billing_main_ro_dao_minIdle

The minimum allowed number of idle connections to the database

1

Config File/Environment Variable

org.killbill.billing.main.ro.dao.maxActive/

KB_org_killbill_billing_main_ro_dao_maxActive

The maximum allowed number of active connections to the database

100

Config File/Environment Variable

org.killbill.billing.main.ro.dao.leakDetectionThreshold/

KB_org_killbill_billing_main_ro_dao_leakDetectionThreshold

Amount of time that a connection can be out of the pool before a message is logged indicating a possible connection leak

60s

Config File/Environment Variable

org.killbill.billing.main.ro.dao.connectionTimeout/

KB_org_killbill_billing_main_ro_dao_connectionTimeout

How long to wait before a connection attempt to the database is considered timed out

10s

Config File/Environment Variable

org.killbill.billing.main.ro.dao.idleMaxAge/

KB_org_killbill_billing_main_ro_dao_idleMaxAge

The time for a connection to remain unused before it is closed off

60m

Config File/Environment Variable

org.killbill.billing.main.ro.dao.maxConnectionAge/

KB_org_killbill_billing_main_ro_dao_maxConnectionAge

Any connections older than this setting will be closed off whether it is idle or not. Connections currently in use will not be affected until they are returned to the pool

0m

Config File/Environment Variable

org.killbill.billing.main.ro.dao.idleConnectionTestPeriod/

KB_org_killbill_billing_main_ro_dao_idleConnectionTestPeriod

Time for a connection to remain idle before sending a test query to the DB

5m

Config File/Environment Variable

org.killbill.billing.main.ro.dao.prepStmtCacheSize/

KB_org_killbill_billing_main_ro_dao_prepStmtCacheSize

Number of prepared statements that the driver will cache per connection

500

Config File/Environment Variable

org.killbill.billing.main.ro.dao.prepStmtCacheSqlLimit/

KB_org_killbill_billing_main_ro_dao_prepStmtCacheSqlLimit

Maximum length of a prepared SQL statement that the driver will cache

2048

Config File/Environment Variable

org.killbill.billing.main.ro.dao.cachePrepStmts/

KB_org_killbill_billing_main_ro_dao_cachePrepStmts

Enable prepared statements cache

true

Config File/Environment Variable

org.killbill.billing.main.ro.dao.useServerPrepStmts/

KB_org_killbill_billing_main_ro_dao_useServerPrepStmts

Enable server-side prepared statements

true

Config File/Environment Variable

org.killbill.billing.main.ro.dao.dataSourceClassName/

KB_org_killbill_billing_main_ro_dao_dataSourceClassName

DataSource class name provided by the JDBC driver, leave null for autodetection

null

Config File/Environment Variable

org.killbill.billing.main.ro.dao.driverClassName/

KB_org_killbill_billing_main_ro_dao_driverClassName

JDBC driver to use (when dataSourceClassName is null)

null

Config File/Environment Variable

org.killbill.billing.main.ro.dao.mysqlServerVersion/

KB_org_killbill_billing_main_ro_dao_mysqlServerVersion

MySQL server version

5.1

Config File/Environment Variable

org.killbill.billing.main.ro.dao.logLevel/

KB_org_killbill_billing_main_ro_dao_logLevel

Log level for SQL queries

DEBUG

Config File/Environment Variable

org.killbill.billing.main.ro.dao.poolingType/

KB_org_killbill_billing_main_ro_dao_poolingType

Connection pooling type

HIKARICP

Config File/Environment Variable

org.killbill.billing.main.ro.dao.initializationFailFast/

KB_org_killbill_billing_main_ro_dao_initializationFailFast

Whether or not initialization should fail on error immediately

false

Config File/Environment Variable

org.killbill.billing.main.ro.dao.transactionIsolationLevel/

KB_org_killbill_billing_main_ro_dao_transactionIsolationLevel

Set the default transaction isolation level

TRANSACTION_READ_COMMITTED

Config File/Environment Variable

org.killbill.billing.main.ro.dao.readOnly/

KB_org_killbill_billing_main_ro_dao_readOnly

Whether to put connections in read-only mode

true

Config File/Environment Variable

Push Notifications Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.billing.server.notifications.retries/

KB_org_killbill_billing_server_notifications_retries

Delay before which unresolved push notifications should be retried

15m,30m,2h,12h,1d

Per-Tenant/Config File/Environment Variable

Catalog Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.catalog.uri/

KB_org_killbill_catalog_uri

Default Catalog location, either in the classpath or in the filesystem. For multi-tenancy, one should use APIs to load per-tenant catalog

SpyCarAdvanced.xml

Config File/Environment Variable

org.killbill.catalog.loader.threads.pool.nb/ KB_org_killbill_catalog_loader_threads_pool_nb

Number of threads for the XML loader

1

Config File/Environment Variable

Persistent Bus Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.persistent.bus.${instanceName}.inMemory/

KB_org_killbill_persistent_bus_${instanceName}_inMemory

Whether the bus should be an in memory bus

false

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.max.failure.retry/

KB_org_killbill_persistent_bus_${instanceName}_max.failure_retry

Number of retries for a given event when an exception occurs

3

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.inflight.min/

KB_org_killbill_persistent_bus_${instanceName}_inflight_min

Min number of bus events to fetch from the database at once (only valid in 'STICKY_EVENTS')

1

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.inflight.max/

KB_org_killbill_persistent_bus_${instanceName}_inflight_max

Max number of bus events to fetch from the database at once (only valid in 'STICKY_EVENTS')

100

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.claimed/

KB_org_killbill_persistent_bus_${instanceName}_claimed

Number of bus events to fetch from the database at once (only valid in 'polling mode')

10

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.queue.mode/

KB_org_killbill_persistent_bus_${instanceName}_queue_mode

How entries are put in the queue

STICKY_EVENTS

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.claim.time/

KB_org_killbill_persistent_bus_${instanceName}_claim_time

Claim time

5m

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.sleep/

KB_org_killbill_persistent_bus_${instanceName}_sleep

Time in milliseconds to sleep between runs (only valid in STICKY_POLLING, POLLING)

3000

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.off/

KB_org_killbill_persistent_bus_${instanceName}_off

Whether to turn off the persistent bus

false

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.nbThreads/

KB_org_killbill_persistent_bus_${instanceName}_nbThreads

Max number of dispatch threads to use

30

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.lifecycle.dispatch.nbThreads/

KB_org_killbill_persistent_bus_${instanceName}_lifecycle_dispatch_nbThreads

Max number of lifecycle dispatch threads to use

1

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.lifecycle.complete.nbThreads/

KB_org_killbill_persistent_bus_${instanceName}_lifecycle_complete_nbThreads

Max number of lifecycle complete threads to use

2

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.queue.capacity/

KB_org_killbill_persistent_bus_${instanceName}_queue_capacity

Size of the inflight queue (only valid in STICKY_EVENTS mode)

30000

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.tableName/

KB_org_killbill_persistent_bus_${instanceName}_tableName

Bus events table name

bus_events

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.historyTableName/

KB_org_killbill_persistent_bus_${instanceName}_historyTableName

Bus events history table name

bus_events_history

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.reapThreshold/

KB_org_killbill_persistent_bus_${instanceName}_reapThreshold

Time span when the bus event must be re-dispatched

10m

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.maxReDispatchCount/

KB_org_killbill_persistent_bus_${instanceName}_maxReDispatchCount

Max number of bus events to be re-dispatched at a time

10

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.reapSchedule/

KB_org_killbill_persistent_bus_${instanceName}_reapSchedule

Reaper schedule period

3m

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.shutdownTimeout/

KB_org_killbill_persistent_bus_${instanceName}_shutdownTimeout

Shutdown sequence timeout

15s

Config File/Environment Variable

Notification Queue Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.notificationq.${instanceName}.inMemory/

KB_org_killbill_notificationq_${instanceName}_inMemory

Set to false, not available for NotificationQueue

false

Config File/Environment Variable

org.killbill.notificationq.${instanceName}.max.failure.retry/

KB_org_killbill_notificationq_${instanceName}_max_failure_retry

Number retry for a given event when an exception occurs

3

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.inflight.min/

KB_org_killbill_persistent_bus_${instanceName}_inflight_min

Min number of bus events to fetch from the database at once (only valid in 'STICKY_EVENTS')

-1

Config File/Environment Variable

org.killbill.persistent.bus.${instanceName}.inflight.max/

KB_org_killbill_persistent_bus_${instanceName}_inflight_max

Max number of bus events to fetch from the database at once (only valid in 'STICKY_EVENTS')

-1

Config File/Environment Variable

org.killbill.notificationq.${instanceName}.claimed/

KB_org_killbill_notificationq_${instanceName}_claimed

Number of notifications to fetch at once

10

Config File/Environment Variable

org.killbill.notificationq.${instanceName}.queue.mode/

KB_org_killbill_notificationq_${instanceName}_queue_mode

How entries are put in the queue

STICKY_POLLING

Config File/Environment Variable

org.killbill.notificationq.${instanceName}.claim.time/

KB_org_killbill_notificationq_${instanceName}_claim_time

Claim time

5m

Config File/Environment Variable

org.killbill.notificationq.${instanceName}.sleep/

KB_org_killbill_notificationq_${instanceName}_sleep

Time in milliseconds to sleep between runs

3000

Config File/Environment Variable

org.killbill.notificationq.${instanceName}.notification.off/

KB_org_killbill_notificationq_${instanceName}_notification_off

Whether to turn off the notification queue

false

Config File/Environment Variable

org.killbill.notificationq.${instanceName}.notification.nbThreads/

KB_org_killbill_notificationq_${instanceName}_notification_nbThreads

Number of threads to use

10

Config File/Environment Variable

org.killbill.notificationq.${instanceName}.lifecycle.dispatch.nbThreads/

KB_org_killbill_notificationq_${instanceName}_lifecycle_dispatch_nbThreads

Max number of lifecycle dispatch threads to use

1

Config File/Environment Variable

org.killbill.notificationq.${instanceName}.lifecycle.complete.nbThreads/

KB_org_killbill_notificationq_${instanceName}_lifecycle_complete_nbThreads

Max number of lifecycle complete threads to use

2

Config File/Environment Variable

org.killbill.notificationq.${instanceName}.queue.capacity/

KB_org_killbill_notificationq_${instanceName}_queue_capacity

Capacity for the worker queue

100

Config File/Environment Variable

org.killbill.notificationq.${instanceName}.tableName/

KB_org_killbill_notificationq_${instanceName}_tableName

Notifications table name

notifications

Config File/Environment Variable

org.killbill.notificationq.${instanceName}.historyTableName/

KB_org_killbill_notificationq_${instanceName}_historyTableName

Notifications history table name

notifications_history

Config File/Environment Variable

org.killbill.notificationq.${instanceName}.reapThreshold/

KB_org_killbill_notificationq_${instanceName}_reapThreshold

Time span when a notification must be re-dispatched

10m

Config File/Environment Variable

org.killbill.notificationq.${instanceName}.maxReDispatchCount/

KB_org_killbill_notificationq_${instanceName}_maxReDispatchCount

Max number of notification to be re-dispatched at a time

10

Config File/Environment Variable

org.killbill.notificationq.${instanceName}.reapSchedule/

KB_org_killbill_notificationq_${instanceName}_reapSchedule

Reaper schedule period

3m

Config File/Environment Variable

org.killbill.notificationq.${instanceName}.shutdownTimeout/

KB_org_killbill_notificationq_${instanceName}_shutdownTimeout

Shutdown sequence timeout

15s

Config File/Environment Variable

Events Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.billing.server.event.post.type.skip/

KB_org_killbill_billing_server_event_post_type_skip

List of event types to be skipped (not posted)

-

Per-Tenant/Config File/Environment Variable

org.killbill.billing.server.event.dispatch.type.skip/

KB_org_killbill_billing_server_event_dispatch_type_skip

List of event types to be skipped (not dispatched internally)

-

Per-Tenant/Config File/Environment Variable

org.killbill.billing.server.event.bulk.subscription.aggregate/

KB_org_killbill_billing_server_event_bulk_subscription_aggregate

Aggregate the events for bulk subscription

false

Per-Tenant/Config File/Environment Variable

Currency Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.currency.provider.default/

KB_org_killbill_currency_provider_default

Default currency provider to use

killbill-currency-plugin

Config File/Environment Variable

Broadcast Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.billing.util.broadcast.rate/

KB_org_killbill_billing_util_broadcast_rate

Rate at which broadcast service task is scheduled

5s

Config File/Environment Variable

Jax-rs Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.jaxrs.threads.pool.nb/

KB_org_killbill_jaxrs_threads_pool_nb

Number of threads for jaxrs executor

10

Config File/Environment Variable

org.killbill.jaxrs.timeout/

KB_org_killbill_jaxrs_timeout

Total timeout for all callables associated to a given api call (parallel mode)

30s

Config File/Environment Variable

org.killbill.jaxrs.location.full.url/

KB_org_killbill_jaxrs_location_full_url

Type of return for the jaxrs response location URL

true

Config File/Environment Variable

org.killbill.jaxrs.location.useForwardHeaders/

KB_org_killbill_jaxrs_location_useForwardHeaders

Whether to respect X-Forwarded headers for redirect URLs

true

Config File/Environment Variable

org.killbill.jaxrs.location.host/

KB_org_killbill_jaxrs_location_host

Base host address to use for redirect URLs

null

Config File/Environment Variable

org.killbill.jaxrs.get.ro/

KB_org_killbill_jaxrs_get_ro

Whether GET calls should leverage the read-only database connection

true

Config File/Environment Variable

Tenant Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.tenant.broadcast.rate/

KB_org_killbill_tenant_broadcast_rate

Rate at which tenant broadcast task is scheduled

5s

Config File/Environment Variable

Kill Bill Server Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.server.multitenant/

KB_org_killbill_server_multitenant

Whether multi-tenancy is enabled

true

Config File/Environment Variable

org.killbill.server.test.mode/

KB_org_killbill_server_test_mode

Whether to start in test mode

false

Config File/Environment Variable

org.killbill.server.test.clock.redis/

KB_org_killbill_server_test_clock_redis

Whether Redis integration for the clock is enabled

false

Config File/Environment Variable

org.killbill.server.test.clock.redis.url/

KB_org_killbill_server_test_clock_redis_url

Redis clock URL

redis://127.0.0.1:6379

Config File/Environment Variable

org.killbill.server.test.clock.redis.connectionMinimumIdleSize/

KB_org_killbill_server_test_clock_redis_connectionMinimumIdleSize

Minimum number of connections for the Redis clock

1

Config File/Environment Variable

org.killbill.server.baseUrl/

KB_org_killbill_server_baseUrl

Server base url

http://127.0.0.1:8080

Config File/Environment Variable

org.killbill.server.region/

KB_org_killbill_server_region

Region or data center where the server is deployed

local

Config File/Environment Variable

org.killbill.server.http.gzip/

KB_org_killbill_server_http_gzip

Allow Kill Bill to return gzip json when Content-Encoding is set with gzip

false

Config File/Environment Variable

org.killbill.server.shutdownDelay/

KB_org_killbill_server_shutdownDelay

Shutdown delay before starting shutdown sequence

0s

Config File/Environment Variable

org.killbill.server.queue.healthcheck/

KB_org_killbill_server_queue_healthcheck

Whether queue healthcheck is enabled

true

Config File/Environment Variable

Lifecycle Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.server.exit.on.lifecycle.error/

KB_org_killbill_server_exit_on_lifecycle_error

Whether to exit on lifecycle error

false

Config File/Environment Variable

Metrics Graphite Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.metrics.graphite/

KB_org_killbill_metrics_graphite

Whether metrics reporting to Graphite is enabled

false

Config File/Environment Variable

org.killbill.metrics.graphite.host/

KB_org_killbill_metrics_graphite_host

Graphite Hostname

localhost

Config File/Environment Variable

org.killbill.metrics.graphite.port/

KB_org_killbill_metrics_graphite_port

Graphite Port

2003

Config File/Environment Variable

org.killbill.metrics.graphite.prefix/

KB_org_killbill_metrics_graphite_prefix

Prefix all metric names with the given string

killbill

Config File/Environment Variable

org.killbill.metrics.graphite.interval/

KB_org_killbill_metrics_graphite_interval

Reporter polling interval in seconds

30

Config File/Environment Variable

OSGi Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.osgi.bundle.property.name/

KB_org_killbill_osgi_bundle_property_name

Name of the properties file for OSGI plugins

killbill.properties

Config File/Environment Variable

org.killbill.osgi.root.dir/ KB_org_killbill_osgi_root_dir

Bundles cache area for the OSGI framework

/var/tmp/felix

Config File/Environment Variable

org.killbill.osgi.bundle.cache.name/

KB_org_killbill_osgi_bundle_cache_name

Bundles cache name

osgi-cache

Config File/Environment Variable

org.killbill.osgi.bundle.install.dir/

KB_org_killbill_osgi_bundle_install_dir

Bundles install directory

/var/tmp/bundles

Config File/Environment Variable

org.killbill.osgi.system.bundle.export.packages.api/

KB_org_killbill_osgi_system_bundle_export_packages_api

Kill Bill API packages to export from the system bundle

org.killbill.billing.account.api, org.killbill.billing.analytics.api.sanity, org.killbill.billing.analytics.api.user, org.killbill.billing.beatrix.bus.api, org.killbill.billing.catalog.api, org.killbill.billing.catalog.api.rules, org.killbill.billing.invoice.plugin.api, org.killbill.billing.invoice.api, org.killbill.billing.invoice.api.formatters, org.killbill.billing.entitlement.api, org.killbill.billing, org.killbill.clock, org.killbill.billing.notification.api, org.killbill.billing.notification.plugin.api, org.killbill.billing.notification.plugin, org.killbill.billing.osgi.api, org.killbill.billing.osgi.api.config, org.killbill.billing.overdue, org.killbill.billing.overdue.api, org.killbill.billing.payment.api, org.killbill.billing.payment.plugin.api, org.killbill.billing.control.plugin.api, org.killbill.billing.tenant.api, org.killbill.billing.usage.api, org.killbill.billing.util.api, org.killbill.billing.util.nodes, org.killbill.billing.util.audit, org.killbill.billing.util.callcontext, org.killbill.billing.util.customfield, org.killbill.billing.util.email, org.killbill.billing.util.entity, org.killbill.billing.util.tag, org.killbill.billing.util.template, org.killbill.billing.util.template.translation, org.killbill.billing.currency.plugin.api, org.killbill.billing.catalog.plugin.api, org.killbill.billing.entitlement.plugin.api, org.killbill.billing.currency.api, org.killbill.billing.usage.plugin.api, org.killbill.billing.security, org.killbill.billing.security.api, org.killbill.billing.osgi.libs.killbill, org.joda.time;org.joda.time.format;version=2.9, org.apache.shiro;org.apache.shiro.subject;org.apache.shiro.util;version=1.3, org.slf4j;version=1.7.2, org.slf4j.event;version=1.7.2, org.slf4j.helpers;version=1.7.2, org.slf4j.spi;version=1.7.2, org.osgi.service.log;version=1.3, org.osgi.service.http;version=1.2.0, org.osgi.service.deploymentadmin;version=1.1.0, org.osgi.service.event;version=1.2.0

Config File/Environment Variable

org.killbill.osgi.system.bundle.export.packages.java/

KB_org_killbill_osgi_system_bundle_export_packages_java

Java extension/platform Packages to export from the system bundle

com.sun.xml.internal.ws, com.sun.xml.internal.ws.addressing, com.sun.xml.internal.ws.addressing.model, com.sun.xml.internal.ws.addressing.policy, com.sun.xml.internal.ws.addressing.v200408, com.sun.xml.internal.ws.api, com.sun.xml.internal.ws.api.addressing, com.sun.xml.internal.ws.api.client, com.sun.xml.internal.ws.api.config.management, com.sun.xml.internal.ws.api.config.management.policy, com.sun.xml.internal.ws.api.fastinfoset, com.sun.xml.internal.ws.api.ha, com.sun.xml.internal.ws.api.handler, com.sun.xml.internal.ws.api.message, com.sun.xml.internal.ws.api.message.stream, com.sun.xml.internal.ws.api.model, com.sun.xml.internal.ws.api.model.soap, com.sun.xml.internal.ws.api.model.wsdl, com.sun.xml.internal.ws.api.pipe, com.sun.xml.internal.ws.api.pipe.helper, com.sun.xml.internal.ws.api.policy, com.sun.xml.internal.ws.api.server, com.sun.xml.internal.ws.api.streaming, com.sun.xml.internal.ws.api.wsdl.parser, com.sun.xml.internal.ws.api.wsdl.writer, com.sun.xml.internal.ws.binding, com.sun.xml.internal.ws.client, com.sun.xml.internal.ws.client.dispatch, com.sun.xml.internal.ws.client.sei, com.sun.xml.internal.ws.config.management.policy, com.sun.xml.internal.ws.developer, com.sun.xml.internal.ws.encoding, com.sun.xml.internal.ws.encoding.fastinfoset, com.sun.xml.internal.ws.encoding.policy, com.sun.xml.internal.ws.encoding.soap, com.sun.xml.internal.ws.encoding.soap.streaming, com.sun.xml.internal.ws.encoding.xml, com.sun.xml.internal.ws.fault, com.sun.xml.internal.ws.handler, com.sun.xml.internal.ws.message, com.sun.xml.internal.ws.message.jaxb, com.sun.xml.internal.ws.message.saaj, com.sun.xml.internal.ws.message.source, com.sun.xml.internal.ws.message.stream, com.sun.xml.internal.ws.model, com.sun.xml.internal.ws.model.soap, com.sun.xml.internal.ws.model.wsdl, com.sun.xml.internal.ws.org.objectweb.asm, com.sun.xml.internal.ws.policy, com.sun.xml.internal.ws.policy.jaxws, com.sun.xml.internal.ws.policy.jaxws.spi, com.sun.xml.internal.ws.policy.privateutil, com.sun.xml.internal.ws.policy.sourcemodel, com.sun.xml.internal.ws.policy.sourcemodel.attach, com.sun.xml.internal.ws.policy.sourcemodel.wspolicy, com.sun.xml.internal.ws.policy.spi, com.sun.xml.internal.ws.policy.subject, com.sun.xml.internal.ws.protocol.soap, com.sun.xml.internal.ws.protocol.xml, com.sun.xml.internal.ws.resources, com.sun.xml.internal.ws.server, com.sun.xml.internal.ws.server.provider, com.sun.xml.internal.ws.server.sei, com.sun.xml.internal.ws.spi, com.sun.xml.internal.ws.streaming, com.sun.xml.internal.ws.transport, com.sun.xml.internal.ws.transport.http, com.sun.xml.internal.ws.transport.http.client, com.sun.xml.internal.ws.transport.http.server, com.sun.xml.internal.ws.util, com.sun.xml.internal.ws.util.exception, com.sun.xml.internal.ws.util.localization, com.sun.xml.internal.ws.util.pipe, com.sun.xml.internal.ws.util.xml, com.sun.xml.internal.ws.wsdl, com.sun.xml.internal.ws.wsdl.parser, com.sun.xml.internal.ws.wsdl.writer, com.sun.xml.internal.ws.wsdl.writer.document, com.sun.xml.internal.ws.wsdl.writer.document.http, com.sun.xml.internal.ws.wsdl.writer.document.soap, com.sun.xml.internal.ws.wsdl.writer.document.soap12, com.sun.xml.internal.ws.wsdl.writer.document.xsd, javax.annotation, javax.management, javax.naming, javax.naming.ldap, javax.net, javax.net.ssl, javax.crypto, javax.crypto.spec, javax.sql, javax.sql.rowset, javax.sql.rowset.serial, javax.transaction, javax.transaction.xa, javax.xml, javax.xml.bind, javax.xml.validation, javax.xml.namespace, javax.xml.parsers, javax.xml.validation, javax.xml.stream, javax.xml.stream.events, javax.xml.stream.util, javax.xml.transform, javax.xml.transform.dom, javax.xml.transform.sax, javax.xml.transform.stax, javax.xml.transform.stream, javax.xml.xpath, javax.jws.soap, javax.security, javax.security.cert, com.sun.org, com.sun.org.apache, com.sun.org.apache.xml, com.sun.org.apache.xml.internal, com.sun.org.apache.xml.internal.utils, com.sun.org.apache.xpath, com.sun.org.apache.xpath.internal, com.sun.org.apache.xpath.internal.jaxp, com.sun.org.apache.xpath.internal.objects, org.w3c.dom, org.w3c.dom.bootstrap, org.w3c.dom.events, org.w3c.dom.ls, org.w3c.dom.css, org.w3c.dom.html, org.w3c.dom.ranges, org.w3c.dom.stylesheets, org.w3c.dom.traversal, org.w3c.dom.views, org.xml.sax, org.xml.sax.ext, org.xml.sax.helpers, sun.misc, sun.misc.unsafe, sun.security, sun.security.util, javax.servlet;version=3.1, javax.servlet.http;version=3.1

Config File/Environment Variable

org.killbill.osgi.system.bundle.export.packages.extra/

KB_org_killbill_osgi_system_bundle_export_packages_extra

Extra packages to export from the system bundle

-

Config File/Environment Variable

org.killbill.billing.plugin.mandatory.plugins/

KB_org_killbill_billing_plugin_mandatory_plugins

Comma separated list of mandatory plugins

-

Config File/Environment Variable

Rbac Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.rbac.globalSessionTimeout/

KB_org_killbill_rbac_globalSessionTimeout

System-wide default time that any session may remain idle before expiring

1h

Config File/Environment Variable

Security Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.security.shiroResourcePath/

KB_org_killbill_security_shiroResourcePath

Path to the shiro.ini file (classpath, url or file resource)

classpath:shiro.ini

Config File/Environment Variable

org.killbill.security.shiroNbHashIterations/

KB_org_killbill_security_shiroNbHashIterations

Sets the number of times submitted credentials will be hashed before comparing to the credentials stored in the system

200000

Config File/Environment Variable

org.killbill.security.ldap.userDnTemplate/

KB_org_killbill_security_ldap_userDnTemplate

LDAP server’s User DN format (e.g. uid={0},ou=users,dc=mycompany,dc=com)

Null

Config File/Environment Variable

org.killbill.security.ldap.dnSearchTemplate/

KB_org_killbill_security_ldap_dnSearchTemplate

LDAP server’s DN search template (e.g. sAMAccountName={0}) for search-then-bind authentication (in case a static DN format template isn’t enough)

Null

Config File/Environment Variable

org.killbill.security.ldap.searchBase/

KB_org_killbill_security_ldap_searchBase

LDAP search base to use

Null

Config File/Environment Variable

org.killbill.security.ldap.groupSearchFilter/

KB_org_killbill_security_ldap_groupSearchFilter

LDAP search filter to use to find groups (e.g. memberOf=uid={0},ou=users,dc=mycompany,dc=com)

memberOf=uid={0}

Config File/Environment Variable

org.killbill.security.ldap.groupNameId/

KB_org_killbill_security_ldap_groupNameId

Group name attribute ID in LDAP

memberOf

Config File/Environment Variable

org.killbill.security.ldap.permissionsByGroup/

KB_org_killbill_security_ldap_permissionsByGroup

LDAP permissions by LDAP group

admin = :\n"
"finance = invoice:*, payment:*\n"
"support = entitlement:*, invoice:item_adjust

Config File/Environment Variable

org.killbill.security.ldap.url/

KB_org_killbill_security_ldap_url

LDAP server url

ldap://127.0.0.1:389

Config File/Environment Variable

org.killbill.security.ldap.systemUsername/

KB_org_killbill_security_ldap_systemUsername

LDAP username

Null

Config File/Environment Variable

org.killbill.security.ldap.systemPassword/

KB_org_killbill_security_ldap_systemPassword

LDAP password

Null

Config File/Environment Variable

org.killbill.security.ldap.authenticationMechanism/

KB_org_killbill_security_ldap_authenticationMechanism

LDAP authentication mechanism (e.g. DIGEST-MD5)

simple

Config File/Environment Variable

org.killbill.security.ldap.disableSSLCheck/

KB_org_killbill_security_ldap_disableSSLCheck

Whether to ignore SSL certificates checks

false

Config File/Environment Variable

org.killbill.security.ldap.followReferrals/

KB_org_killbill_security_ldap_followReferrals

Whether to follow referrals

false

Config File/Environment Variable

org.killbill.security.okta.url/

KB_org_killbill_security_okta_url

Okta org full url

Null

Config File/Environment Variable

org.killbill.security.okta.apiToken/

KB_org_killbill_security_okta_apiToken

Okta API token

Null

Config File/Environment Variable

org.killbill.security.okta.permissionsByGroup/

KB_org_killbill_security_okta_permissionsByGroup

Okta permissions by Okta group

admin = :\n"
"finance = invoice:*, payment:*\n"
"support = entitlement:*, invoice:item_adjust

Config File/Environment Variable

org.killbill.security.auth0.url/

KB_org_killbill_security_auth0_url

Auth0 tenant full url

Null

Config File/Environment Variable

org.killbill.security.auth0.clientId/

KB_org_killbill_security_auth0_clientId

Auth0 application Client ID

Null

Config File/Environment Variable

org.killbill.security.auth0.clientSecret/

KB_org_killbill_security_auth0_clientSecret

Auth0 application Client Secret

Null

Config File/Environment Variable

org.killbill.security.auth0.apiIdentifier/

KB_org_killbill_security_auth0_apiIdentifier

Auth0 API identifier

Null

Config File/Environment Variable

org.killbill.security.auth0.issuer/

KB_org_killbill_security_auth0_issuer

Auth0 JWT expected issuer

Null

Config File/Environment Variable

org.killbill.security.auth0.audience/

KB_org_killbill_security_auth0_audience

Auth0 JWT expected audience

Null

Config File/Environment Variable

org.killbill.security.auth0.usernameClaim/

KB_org_killbill_security_auth0_usernameClaim

JWT claim to use as the user name

sub

Config File/Environment Variable

org.killbill.security.auth0.databaseConnectionName/

KB_org_killbill_security_auth0_databaseConnectionName

Auth0 database connection name

Null

Config File/Environment Variable

org.killbill.security.auth0.connectTimeout/

KB_org_killbill_security_auth0_connectTimeout

Auth0 client connect timeout

5s

Config File/Environment Variable

org.killbill.security.auth0.readTimeout/

KB_org_killbill_security_auth0_readTimeout

Auth0 client read timeout

60s

Config File/Environment Variable

org.killbill.security.auth0.requestTimeout/

KB_org_killbill_security_auth0_requestTimeout

Auth0 client request timeout

60s

Config File/Environment Variable

org.killbill.security.auth0.allowedClockSkew/

KB_org_killbill_security_auth0_allowedClockSkew

Auth0 JWT allowed clock skew

60s

Config File/Environment Variable

org.killbill.security.skipAuthForPlugins/

KB_org_killbill_security_skipAuthForPlugins

Specifies whether authentication should be skipped for plugins

false

Config File/Environment Variable

killbill.server.ldap/-

Is LDAP enabled

false

System property

killbill.server.okta/-

Is OKTA enabled

false

System property

killbill.server.auth0/-

Is AUTH0 enabled

false

System Property

killbill.server.rbac/-

Is RBAC enabled

true

System Property

Logging Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

killbill.server.log.obfuscate.keywords

Keywords to obfuscate

accountnumber,authenticationdata,bankaccountnumber,banknumber,bic,cardvalidationnum,cavv,ccFirstName,ccLastName,ccNumber,ccTrackData, ccVerificationValue,ccvv,cvNumber,cvc,cvv,email,iban,name,number,password, xid

System Property

killbill.server.log.obfuscate.patterns

Key value patterns to use

\s*=\s*'()',\s*=\s*"([^"])"

System Property

killbill.server.log.obfuscate.patterns.separator

Key value pattern separator

,

System Property

Cache Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.catalog.frequentValuesCacheSize

Number of distinct price values to be held in cache

1000

System property

org.killbill.cache.disabled/

KB_org_killbill_cache_disabled

Caches to be disabled

null

Config File/Environment Variable

EHCache Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.cache.config.location/

KB_org_killbill_cache_config_location

Path to Ehcache XML configuration

ehcache.xml

Config File/Environment Variable

Redis Cache Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.cache.config.redis/

KB_org_killbill_cache_config_redis

Whether Redis integration for caching is enabled

false

Config File/Environment Variable

org.killbill.cache.config.redis.url/

KB_org_killbill_cache_config_redis_url

Redis URL

redis://127.0.0.1:6379

Config File/Environment Variable

org.killbill.cache.config.redis.connectionMinimumIdleSize/

KB_org_killbill_cache_config_redis_connectionMinimumIdleSize

Minimum number of connections

1

Config File/Environment Variable

org.killbill.cache.config.redis.password/

KB_org_killbill_cache_config_redis_password

Redis Password

Null

Config File/Environment Variable

Subscription Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.subscription.align.effectiveDateForExistingSubscriptions/

KB_org_killbill_subscription_align_effectiveDateForExistingSubscriptions

Whether to align the per-plan effectiveDateForExistingSubscriptions with the next per-subscription BCD

false

Per-Tenant/Config File/Environment Variable

Translation Properties

Note
The Per-tenant properties mentioned below can be set by invoking the corresponding endpoints in the translation and template sections in the API docs.
Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.default.locale/

KB_org_killbill_default_locale

Default Killbill locale

en_US

Config File/Environment Variable

org.killbill.catalog.bundlePath/

KB_org_killbill_catalog_bundlePath

Path to the catalog translation bundle

org/killbill/billing/util/template/translation/CatalogTranslation

Per-tenant/Config File/Environment Variable

org.killbill.template.bundlePath/

KB_org_killbill_template_bundlePath

Path to the invoice template translation bundle

org/killbill/billing/util/invoice/translation/InvoiceTranslation

Per-tenant/Config File/Environment Variable

org.killbill.template.name/

KB_org_killbill_template_name

Path to the HTML invoice template

org/killbill/billing/util/invoice/templates/HtmlInvoiceTemplate.mustache

Per-tenant/Config File/Environment Variable

org.killbill.manualPayTemplate.name/

KB_org_killbill_manualPayTemplate_name

Path to the invoice template for accounts with MANUAL_PAY tag

org/killbill/billing/util/email/templates/HtmlInvoiceTemplate.mustache

Per-tenant/Config File/Environment Variable

org.killbill.template.invoiceFormatterFactoryPluginName/

KB_org_killbill_template_invoiceFormatterFactoryPluginName

Invoice formatter factory plugin name

null

Config File/Environment Variable

Queue Properties

Property Name/Environment Variable Name Description Default Value Configuration Method

org.killbill.queue.creator.name /KILLBILL_QUEUE_CREATOR_NAME

Allow to override the default naming based on Hostname

-

System Property/Environment Variable

org.killbill.queue.creator.autoGeneratedName /KILLBILL_QUEUE_CREATOR_AUTOGENERATE_NAME

If set to true and org.killbill.queue.creator.name is not set, generate a UUID instead of using default hostname

true

System Property/Environment Variable

Note
In case of a Tomcat-based environment, the above properties can be configured as system properties. In case of Docker systems, they can be set via the environment variables mentioned above.

Persistent Bus/Notification Queue Configuration Notes

Note that the Persistence Bus and Notification Queue configuration properties use a substitution parameter called instanceName. This is because the properties defined here are built to be used across multiple instances. Kill Bill typically uses two persistent buses named main and external and one notification queue named main. Thus, instanceName needs to be replaced with appropriate values while specifying these properties. Some common examples of instanceName are main, external, and analytics

Setup Specific Notes

As explained in the Getting Started guide, there are several ways to install Kill Bill. In addition, you may also be using Kill Bill for development/debugging using a standalone setup.

This section provides some setup specific instructions such as location of the default killbill.properties and so forth.

AWS

In case of an AWS installation, the killbill.properties is present at the /var/lib/killbill/config/killbill.properties location.

Docker

In case of a Docker installation, the killbill.properties file is present at the /var/lib/killbill/killbill.properties path within the Docker container. You can modify the properties defined here.

Alternatively, you can bind mount your own file, by specifying -v /path/to/killbill.properties:/var/lib/killbill/killbill.properties when starting your container.

You can also specify configuration properties using individual environment variables as specified in the "Configuration Properties Table" above.

Tomcat/Jetty

In case of a Tomcat Installation, the global configuration properties and system properties need to be specified within the TOMCAT_HOME/conf/catalina.properties file.

In case of a Standalone Jetty Setup, configuration properties need to be specified within an explicit killbill.properties file. Its path needs to be specified via the org.killbill.server.properties Java system property while starting the application as follows:

mvn -Dorg.killbill.server.properties=file:///PROJECT_ROOT/profiles/killbill/src/main/resources/killbill-server.properties

Additional system properties can also be set at the commandline as follows:

mvn -Dorg.killbill.server.properties=file:///PROJECT_ROOT/profiles/killbill/src/main/resources/killbill-server.properties -Dkillbill.server.log.obfuscate.keywords=accountnumber,authenticationdata,bankaccountnumber,banknumber

Kaui Configuration

In addition to Kill Bill, Kaui can also be configured via some configuration properties. These can either be set as system properties or environment variables. Note that in case of a Tomcat installation, system properties can be specified in the catalina.properties file.

The following table lists the Kaui Configuration properties.

Database Properties

Property Name/Environment Variable Name Description Default Value

kaui.db.adapter/

KAUI_DB_ADAPTER

Specifies the Kaui Database Adapter

mysql2

kaui.db.encoding/

KAUI_DB_ENCODING

Specifies the Kaui Database Encoding

utf8

kaui.db.database/

KAUI_DB_DATABASE

Specifies the Kaui Database Encoding (only applicable if kaui.db.adapter=sqlite3)

/var/tmp/kaui.sqlite3

kaui.db.url/

KAUI_DB_URL/

KAUI_CONFIG_DAO_URL

Specifies the Kaui Database URL

jdbc:mysql://localhost:3306/kaui?useUnicode=true&useJDBCCompliantTimezoneShift=true& useLegacyDatetimeCode=false&serverTimezone=UTC

kaui.db.username/

KAUI_DB_USERNAME/

KAUI_CONFIG_DAO_USER

Specifies the Kaui Database Username

root

kaui.db.password/

KAUI_DB_PASSWORD/

KAUI_CONFIG_DAO_PASSWORD

Specifies the Kaui Database Password

root

kaui.db.host/

KAUI_DB_HOST

Specifies the Kaui Database Host

None

kaui.db.port/ KAUI_DB_PORT

Specifies the Kaui Database Port

None

kaui.db.pool/

KAUI_DB_POOL

Specifies the Kaui Database thread pool

50

kaui.db.timeout/

KAUI_DB_TIMEOUT

Specifies the Kaui Database connection timeout

5000

Kill Bill Client Properties

Property Name/Environment Variable Name Description Default Value

kaui.url/

KILLBILL_URL/KAUI_KILLBILL_URL

Specifies the Kill Bill URL

http://127.0.0.1:8080

kaui.disable_ssl_verification/

KILLBILL_DISABLE_SSL_VERIFICATION/

KAUI_KILLBILL_DISABLE_SSL_VERIFICATION

Whether to ignore SSL certificates checks

false

kaui.read_timeout/

KILLBILL_READ_TIMEOUT/

KAUI_KILLBILL_READ_TIMEOUT

Specifies the time KAUI waits to receive response from Kill Bill server

60000

kaui.connection_timeout/

KILLBILL_CONNECTION_TIMEOUT/

KAUI_KILLBILL_CONNECTION_TIMEOUT

Specifies the time KAUI waits to establish connection with Kill Bill server

60000

Kaui Properties

Property Name/Environment Variable Name Description Default Value

kaui.demo/

KAUI_DEMO_MODE

Whether to run Kaui in demo mode

false

kaui.plugins_whitelist/

KAUI_PLUGINS_WHITELIST

Kaui plugins to be shown in the installed plugins list

None (shows all installed plugins)

kaui.root_username/

KAUI_ROOT_USERNAME

Specifies the root username

admin

kaui.disable_sign_up_link/

KAUI_DISABLE_SIGN_UP_LINK

Whether to disable the sign up link

false

kaui.chargeback_reason_codes/

KAUI_CHARGEBACK_REASON_CODES

Default reason codes for chargebacks

None

kaui.credit_reason_codes/

KAUI_CREDIT_REASON_CODES

Default reason codes for credits

None

kaui.invoice_item_reason_codes/

KAUI_INVOICE_ITEM_REASON_CODES

Default reason codes for item adjustments

None

kaui.invoice_payment_reason_codes/

KAUI_INVOICE_PAYMENT_REASON_CODES

Default reason codes for invoice payments

None

kaui.payment_reason_codes/

KAUI_PAYMENT_REASON_CODES

Default reason codes for payments

None

kaui.refund_reason_codes/

KAUI_REFUND_REASON_CODES

Default reason codes for refunds

None

Encryption Properties

Property Name/Environment Variable Name Description Default Value

kaui.encryption.filename/

KAUI_ENCRYPTION_FILENAME

File containing the encryption keys

config/symmetric-encryption.yml

kaui.secret_key_base/

KAUI_SECRET_KEY_BASE

Secret key base used for securing session data and other sensitive information.

Any string value (A long randomly generated string of characters is recommended to be set for Tomcat installation. In case of AWS/Docker, a default value is auto-generated.)