| Key Name | Description | Allowed Values | Example |
|---|---|---|---|
BillingCycleUpgrade | Whether a customer can upgrade their billing cycle (e.g. monthly to annual) mid-subscription. | Allowed, NotAllowed | "Allowed" |
BillingCycleDowngrade | Whether a customer can downgrade their billing cycle (e.g. annual to monthly) mid-subscription. | Allowed, NotAllowed | "Allowed" |
BillingCycleUpgradeForAdmin | Whether an admin/merchant can upgrade a customer's billing cycle (e.g. monthly to annual) on the customer's behalf. | Allowed, NotAllowed | "Allowed" |
BillingCycleDowngradeForAdmin | Whether an admin/merchant can downgrade a customer's billing cycle (e.g. annual to monthly) on the customer's behalf. | Allowed, NotAllowed | "Allowed" |
| Key Name | Description | Allowed Values | Example |
|---|---|---|---|
RetryFrequency | How often a failed payment retry is attempted during dunning. | EveryDay, EverySecondDay, EveryThirdDay, Custom (custom-defined interval) | "EveryDay" |
SubscriptionStatusWhenInvoiceIsNotPaid | What happens to a subscription once its invoice goes unpaid through the full dunning process. | PauseSubscription (subscription is paused), NoActionRequired (subscription stays active) | "NoActionRequired" |
RetryDays | Number of days over which failed payment retries are attempted before dunning stops. | Numeric string (^[0-9]+$) | "3" |
RetrialAlertHrs | Number of hours around a retry attempt that an alert notification is sent. | Numeric string (^[0-9]+$) | "24" |
| Key Name | Description | Allowed Values | Example |
|---|---|---|---|
PlanChangePostpaidAllowed | Whether a customer can change plans within postpaid billing at all. | Allowed, NotAllowed | "Allowed" |
PlanChangePostpaidAllowedForProductOwner | Whether an admin/merchant can change a customer's postpaid plan on the customer's behalf. | Allowed, NotAllowed | "Allowed" |
PlanChangePostpaidToPostpaidWithPriceIncrease | Whether/how a customer can move from one postpaid plan to another postpaid plan when the new plan costs more. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
PlanChangePostpaidToPrepaidWithPriceIncrease | Whether/how a customer can move from a postpaid plan to a prepaid plan when the new plan costs more. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
PlanChangePostpaidToPostpaidWithPriceIncreaseForProductOwner | Whether/how an admin/merchant can move a customer from one postpaid plan to another postpaid plan on the customer's behalf when the new plan costs more. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
PlanChangePostpaidToPrepaidWithPriceIncreaseForProductOwner | Whether/how an admin/merchant can move a customer from a postpaid plan to a prepaid plan on the customer's behalf when the new plan costs more. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
PlanChangePostpaidToPostpaidWithPriceDecrease | Whether/how a customer can move from one postpaid plan to another postpaid plan when the new plan costs less. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
PlanChangePostpaidToPostpaidForProductOwner | Whether an admin/merchant can move a customer between postpaid plans on the customer's behalf, regardless of price direction. | Allowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends), NotAllowed | "Allowed" |
PlanChangePostpaidToPrepaidWithPriceDecrease | Whether/how a customer can move from a postpaid plan to a prepaid plan when the new plan costs less. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
PlanChangePostpaidToPostpaidWithPriceDecreaseForProductOwner | Whether/how an admin/merchant can move a customer from one postpaid plan to another postpaid plan on the customer's behalf when the new plan costs less. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
PlanChangePostpaidToPrepaidWithPriceDecreaseForProductOwner | Whether/how an admin/merchant can move a customer from a postpaid plan to a prepaid plan on the customer's behalf when the new plan costs less. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
PlanChangePostpaidToPrepaidAllowed | Whether a customer can change from a postpaid plan to a prepaid plan at all. | Allowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends), NotAllowed | "Allowed" |
PlanChangePostpaidToPrepaidAllowedForProductOwner | Whether an admin/merchant can change a customer from a postpaid plan to a prepaid plan on the customer's behalf. | Allowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends), NotAllowed | "Allowed" |
PlanChangePostpaidToPostpaid | Whether a customer can change between postpaid plans generally. | Allowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends), NotAllowed | "Allowed" |
| Key Name | Description | Allowed Values | Example |
|---|---|---|---|
PlanChangePrepaidAllowed | Whether a customer can change plans within prepaid billing at all. | Allowed, NotAllowed | "Allowed" |
PlanChangePrepaidAllowedForProductOwner | Whether an admin/merchant can change a customer's prepaid plan on the customer's behalf. | Allowed, NotAllowed | "Allowed" |
PlanChangePrepaidToPrepaidWithPriceIncrease | Whether/how a customer can move from one prepaid plan to another prepaid plan when the new plan costs more. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
PlanChangePrepaidToPostpaidWithPriceIncrease | Whether/how a customer can move from a prepaid plan to a postpaid plan when the new plan costs more. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
PlanChangePrepaidToPrepaidWithPriceIncreaseForProductOwner | Whether/how an admin/merchant can move a customer from one prepaid plan to another prepaid plan on the customer's behalf when the new plan costs more. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
PlanChangePrepaidToPostpaidWithPriceIncreaseForProductOwner | Whether/how an admin/merchant can move a customer from a prepaid plan to a postpaid plan on the customer's behalf when the new plan costs more. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
PlanChangePrepaidToPrepaidWithPriceDecrease | Whether/how a customer can move from one prepaid plan to another prepaid plan when the new plan costs less. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
PlanChangePrepaidToPostpaidWithPriceDecrease | Whether/how a customer can move from a prepaid plan to a postpaid plan when the new plan costs less. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
PlanChangePrepaidToPrepaidWithPriceDecreaseForProductOwner | Whether/how an admin/merchant can move a customer from one prepaid plan to another prepaid plan on the customer's behalf when the new plan costs less. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
PlanChangePrepaidToPostpaidWithPriceDecreaseForProductOwner | Whether/how an admin/merchant can move a customer from a prepaid plan to a postpaid plan on the customer's behalf when the new plan costs less. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
PlanChangePrepaidToPostpaidAllowed | Whether a customer can change from a prepaid plan to a postpaid plan at all. | Allowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends), NotAllowed | "Allowed" |
PlanChangePrepaidToPostpaidAllowedForProductOwner | Whether an admin/merchant can change a customer from a prepaid plan to a postpaid plan on the customer's behalf. | Allowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends), NotAllowed | "Allowed" |
PlanChangePrepaidToPrepaid | Whether a customer can change between prepaid plans generally. | Allowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends), NotAllowed | "Allowed" |
PlanChangePrepaidToPrepaidForProductOwner | Whether an admin/merchant can change a customer between prepaid plans on the customer's behalf. | Allowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends), NotAllowed | "Allowed" |
| Key Name | Description | Allowed Values | Example |
|---|---|---|---|
QuantityChangeWithPriceIncrease | Whether/how a customer can increase their subscribed quantity when it raises the price. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
QuantityChangeWithPriceDecrease | Whether/how a customer can decrease their subscribed quantity when it lowers the price. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
QuantityChangeWithPriceIncreaseForAdmin | Whether/how an admin/merchant can increase a customer's subscribed quantity on the customer's behalf when it raises the price. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
QuantityChangeWithPriceDecreaseForAdmin | Whether/how an admin/merchant can decrease a customer's subscribed quantity on the customer's behalf when it lowers the price. | Allowed, NotAllowed, AllowedWithImmediateEffect (takes effect immediately), AllowedAfterBillingCycleEnds (takes effect next cycle), AllowedAfterContractEnds (takes effect after contract term ends) | "Allowed" |
| Key Name | Description | Allowed Values | Example |
|---|---|---|---|
RenewBillingCycleAfterExpiry | Renew Billing Cycle After Expiry — whether a subscription's billing cycle automatically renews once its current term expires. | Allowed (auto-renews), NotAllowed (does not auto-renew) | "Allowed" |
AllowMultipleSubscriptionsToSamePlan | Whether a customer can hold more than one active subscription to the same plan at once. | True (allowed), False (not allowed) | "False" |
ParameterUsageReporting | How usage reported beyond a subscription's allowed parameter/resource quantity is handled. | AllowExcessReportingAndGenerateInvoice (excess is reported and billed), BlockExcessReporting (excess usage is rejected) | "AllowExcessReportingAndGenerateInvoice" |
SubscriptionCreationMaxDays | Maximum number of days in the future a new subscription's start date can be scheduled. | Numeric string (^[0-9]+$) | "30" |
SubscriptionEndDateRule | Whether specifying an end date is required when creating a subscription. | Mandatory (required), Optional (offered but not required), Disabled (end date cannot be set) | "Disabled" |
AllowSubscriptionEndDateToCustomer | Whether the subscription's end date is visible to the customer. | Allowed (visible), NotAllowed (hidden) | "NotAllowed" |
SubscriptionEndReminderDays | Number of days before a subscription's end date that a reminder notification is sent. | Numeric string (^[0-9]+$) | "3" |
PostpaidInvoiceGenerationPreference | How invoices are generated for postpaid subscriptions. | DirectInvoices (finalized immediately), ProformaInvoices (draft, requires confirmation) | "DirectInvoices" |
PrepaidInvoiceGenerationPreference | How invoices are generated for prepaid subscriptions. | DirectInvoices, ProformaInvoices | "DirectInvoices" |
CreditCalculationScopeForSubscriptionChanges | Whether credit from a subscription change (e.g. downgrade) is calculated per subscription or pooled across the customer's subscriptions. | SubscriptionLevel (per subscription), CustomerLevel (pooled across the customer) | "SubscriptionLevel" |
ExternalSubscriptionFlowType | Which flow the external API uses to create a new subscription. | Default (standard multi-step flow), OneStepFlow (condensed single-call flow) | "Default" |
DefaultProductSharingType | Default Product Sharing Type — which sub-merchants a product is shared with by default. | OnlySubscribedSubMerchants (only those already subscribed), AllSubMerchants (every sub-merchant), SpecificSubMerchants (an explicit list) | "OnlySubscribedSubMerchants" |
DueDaysForInvoice | Number of days after generation before an invoice is due. | Numeric string (^[0-9]+$) | "5" |
SubscriptionGracePeriod | Number of days after an invoice's due date before the subscription is treated as delinquent. | Numeric string (^[0-9]+$) | "5" |
NoOfDaysSubscriptionListedAfterExpiry | Number of days an expired subscription remains listed before being hidden. | Numeric string (^[0-9]+$) | "5" |
DataRetentiondays | Number of days subscription-related data is retained before being purged. | Numeric string (^[0-9]+$) | "5" |
NextInvoiceGeneration | Number of days before the billing cycle date that the next invoice is generated. | Numeric string (^[0-9]+$) | "5" |
NewSubscriptionWithPendingInvoices | Whether a customer with unpaid invoices can create a new subscription. | Allowed, NotAllowed | "Allowed" |
NewSubscriptionWithPendingInvoicesForProductOwner | Whether a new subscription can be created for a customer with unpaid invoices when the product owner creates it on the customer's behalf. | Allowed, NotAllowed | "Allowed" |
RefundPaymentInSubscriptionForAdmin | Whether an administrator is allowed to refund payments made against a subscription. | Allowed (admin can process subscription payment refunds), NotAllowed (admin cannot process subscription payment refunds) | "Allowed" |
| Key Name | Description | Allowed Values | Example |
|---|---|---|---|
IsAutoUpgradeApplicableForTrialSubscription | Whether a trial subscription automatically upgrades to paid once the trial period ends. | True (auto-upgrades), False (does not auto-upgrade) | "True" |
| Key Name | Description | Allowed Values | Example |
|---|---|---|---|
AllowFeatures | Whether add-on features can be attached to plans for this product. | True (features can be added), False (features cannot be added) | "False" |
AllowPermissions | Whether granular permissions can be configured on plans for this product. | True (permissions configurable), False (not configurable) | "False" |
AllowMenus | Whether menu-level access control can be configured on plans for this product. | True (menus configurable), False (not configurable) | "False" |
AllowRoles | Whether custom roles can be configured on plans for this product. | True (roles configurable), False (not configurable) | "False" |
AddAdditionalRecurringPrice | Whether an extra recurring price component can be added to a plan on top of its base price. | True (allowed), False (not allowed) | "False" |
AddAdditionalOneTimePrice | Whether an extra one-time price component can be added to a plan on top of its base price. | True (allowed), False (not allowed) | "False" |
DefaultPlanScope | Default visibility scope applied to newly created plans. | MerchantOnly (visible only to the creating merchant), Public (shareable across sub-merchants) | "MerchantOnly" |
ZeroCostTierInTieredPricing | Whether a $0-cost tier is allowed when configuring tiered pricing on a plan. | True (allowed), False (not allowed) | "False" |
DefaultOverageCalculationType | Default method for calculating charges when usage exceeds a plan's included quantity. | NoOverage (no overage billing), Reconciliation (excess usage reconciled and billed after the fact) | "NoOverage" |
OverrideOverageCalculationTypeForPlan | Whether an individual plan can override the product-level default overage calculation type. Note: the Allowed option was removed in a later migration, so only NotAllowed remains valid — this override is effectively disabled platform-wide. | NotAllowed (override disabled) | "NotAllowed" |
DefaultProrationCalculationType | Default method for prorating charges on a mid-cycle plan change. | Prorated (charged by day within the cycle), Non-Prorated (full charge regardless of when the change occurs) | "Prorated" |
OverrideProrationCalculationTypeForPlan | Whether an individual plan can override the product-level default proration calculation type. | Allowed, NotAllowed | "NotAllowed" |
ShowIsRevenueOptionInPlan | Show Revenue Classification for Pricing Items During Plan Creation — controls whether the revenue-classification toggle is shown when building a plan's pricing. | Allowed (toggle shown), NotAllowed (toggle hidden) | "NotAllowed" |
CollectOneTimeChargeOnChangePlan | Collect One-Time Charges During Plan Change — whether a plan's configured one-time charges are collected when a customer switches to it. | True (collected), False (not collected) | "False" |
OverrideOneTimeChargeOnChangePlanOptionInPlan | Allow Plan-Level Override for One-Time Charges During Plan Change — whether an individual plan can override the product-level default for collecting one-time charges on plan change. | Allowed, NotAllowed | "NotAllowed" |
| Key Name | Description | Allowed Values | Example |
|---|---|---|---|
DueDaysForOnDemandInvoice | Number of days after generation before an on-demand invoice is due. | Numeric string (^[0-9]+$) | "0" |
OnDemandInvoiceGenerationPreference | How on-demand invoices are generated. | DirectInvoices (finalized immediately), ProformaInvoices (draft, requires confirmation) | "DirectInvoices" |
RefundPaymentInOnDemandInvoicesForAdmin | Controls whether administrators are allowed to process refunds for on-demand invoice payments. | Allowed(admin can process invoice payment refunds), NotAllowed(admin cannot process invoice payment refunds) | "Allowed" |
| Key Name | Description | Allowed Values | Example |
|---|---|---|---|
EnableOneTimePayment | Whether one-time (non-recurring) payments can be collected for this product. | True (enabled), False (disabled) | "True" |
EnableMandateCreation | Whether pre-authorized recurring payment mandates can be created for this product. | True (enabled), False (disabled) | "True" |
CollectPaymentDetailsForRegularPrepaidSubscription | Whether payment details must be collected when a customer signs up for a regular (non-trial) prepaid subscription. | Mandatory (required), Optional (offered but not required), NotRequired (not collected) | "Optional" |
RequirePaymentDetailsForMandateCreationInTrialSubscription | Whether payment details must be collected for mandate creation during a trial subscription. | Mandatory, Optional, NotRequired | "Optional" |
CollectPaymentDetailsForRegularPostpaidSubscription | Whether payment details must be collected when a customer signs up for a regular (non-trial) postpaid subscription. | Mandatory, Optional, NotRequired | "Optional" |
CollectPaymentForOnDemandProformaInvoice | Whether payment is collected when a proforma (draft) on-demand invoice is issued. | Yes, No | "No" |
CollectPaymentForRecurringProformaInvoice | Whether payment is collected when a proforma (draft) invoice is issued for a recurring subscription. | Yes, No | "No" |
OnDemandInvoicePaymentPreference | Whether payment for on-demand invoices is collected before or after the invoice is finalized. | PayFirst (collected before finalization), PayLater (collected after) | "PayLater" |
| Key Name | Description | Allowed Values | Example |
|---|---|---|---|
EnablePortalForCustomer | Whether customers of this product get access to the self-service customer portal. | True (portal enabled), False (portal disabled) | "True" |
| Key Name | Description | Allowed Values | Example |
|---|---|---|---|
CaptureBusinessPrimaryContactFirstName | Whether a business customer's primary contact first name must be captured at creation. | Mandatory, Optional, NotRequired | "Mandatory" |
CaptureBusinessPrimaryContactLastName | Whether a business customer's primary contact last name must be captured at creation. | Mandatory, Optional, NotRequired | "Mandatory" |
CaptureBusinessContactNumber | Whether a business customer's contact/phone number must be captured at creation. | Mandatory, Optional, NotRequired | "Optional" |
CaptureBusinessEmailAddress | Whether a business customer's email address must be captured at creation. | Mandatory, Optional, NotRequired | "Mandatory" |
CaptureBusinessAddress | Whether a business customer's address must be captured at creation. | Mandatory, Optional, NotRequired | "Mandatory" |
| Key Name | Description | Allowed Values | Example |
|---|---|---|---|
CaptureIndividualCustomerFirstName | Whether an individual customer's first name must be captured at creation. | Mandatory (required), Optional (offered but not required), NotRequired (not captured) | "Mandatory" |
CaptureIndividualCustomerLastName | Whether an individual customer's last name must be captured at creation. | Mandatory, Optional, NotRequired | "Mandatory" |
CaptureIndividualCustomerAddress | Whether an individual customer's address must be captured at creation. | Mandatory, Optional, NotRequired | "Mandatory" |
CaptureIndividualCustomerContactNumber | Whether an individual customer's phone/contact number must be captured at creation. | Mandatory, Optional, NotRequired | "Optional" |
CaptureIndividualCustomerEmailAddress | Whether an individual customer's email address must be captured at creation. | Mandatory, Optional, NotRequired | "Mandatory" |
| Key Name | Description | Allowed Values | Example |
|---|---|---|---|
InvoiceForecastCriterion | Which date drives the invoice forecast report's calculations. | BillingCycleStartDate, InvoiceGeneratedDate, DueDate | "InvoiceGeneratedDate" |
ShowInvoiceForecastReportBasedOn | What entity the invoice forecast report is scoped to. | SubscriptionsOnly (report is scoped to subscriptions) | "SubscriptionsOnly" |
curl --location --request PUT 'https://api-sandbox.saaslogic.io/v1/configurations' \
--header 'Authorization: Bearer ' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"BillingCycleUpgrade": "notallowed",
"DueDaysForInvoice": "4"
}'{}