Balance configuration use cases
Configure banking account cash-out limit
Banking account cash-out is the default configuration for handling cash-out from the main available balance. You can apply it at the organization, program, or account level for all cash-out authorizations.
The following payload is a sample of a banking account cash-out operation limit configuration.
- The
tenantin thelevelfield indicates that the configuration applies at the organization level. Note that if any program or account within the organization has a configuration defined at the program or account level, the platform skips this organization-level configuration. - The
filtersobject indicates that the configuration applies to withdrawals with the processing code of01. - The
scenariosobject lists one defaultconditionand defines the following in theresultobject:- The value in the
impactfield indicates that the platform debits theAvailableCreditLimitduring the cash-out operation. - The value in the
considerfield indicates that the platform uses theAvailableCreditLimitto validate whether the account has sufficient funds. - The value in the
amountfield indicates that the platform uses thecontract_amount(final amount that includes any interest and fees) to debit the account limit.
- The value in the
{
"level": "tenant",
"configs": [
{
"filters": {
"processing_codes": [
"01"
]
},
"scenarios": [
{
"condition": {
"order": 1,
"type": "default"
},
"result": {
"impact": [
"AvailableCreditLimit"
],
"consider": [
"AvailableCreditLimit"
],
"amount": "contract_amount"
}
}
]
}
]
}
In this use case, if there is a cash-out of $30 that has a processing code of 01 on an account in the organization, the account has its available credit limit (AvailableCreditLimit) debited by $30. If AvailableCreditLimit was $1000, it would be $970 after this cash-out operation.
Configure credit card purchase limits
You can create configurations for credit card purchases at the organization, program, or account level. The following payload is a sample of a credit card purchase limit configuration.
- The values in the
levelandprogram_idfield define the program for this configuration. - The
filtersobject indicates that the configuration applies to credit card purchases with the processing code of00. - The value in the
impactfield indicates that the platform debits theAvailableCreditLimitduring the credit card purchase. - The values in the
considerfield indicate that the platform adds the limits ofAvailableCreditLimitandOverLimitto check if the account has sufficient funds. - The value in the
reset_limitfield indicates that the account limit is reset when the customer pays their bill.
{
"level": "program",
"program_id": 1234567,
"configs": [
{
"filters": {
"processing_codes": [
"00"
]
},
"scenarios": [
{
"condition": {
"order": 1,
"type": "default"
},
"result": {
"impact": [
"AvailableCreditLimit"
],
"consider": [
"AvailableCreditLimit",
"OverLimit"
],
"amount": "contract_amount",
"reset_limit": "payment"
}
}
]
}
]
}
In this use case, if there is a transaction for $30 that has a processing code of 00, the account that belongs to the 1234567 program has its available credit limit (AvailableCreditLimit) debited $30. If AvailableCreditLimit was $1000, it would be $970 after this transaction.
Configure credit card withdrawal limit
The Pismo platform supports withdrawals using a credit card. You can configure a withdrawal limit and an available credit limit. The platform first impacts the withdrawal limit and then the available credit limit. You can apply credit card withdrawal limits at the organization, program, or account level.
The following payload is a sample of a credit card withdrawal limit configuration.
- The values in the
levelandaccount_idfield define the account for this configuration. - The
filtersobject indicates that the configuration applies to credit card withdrawals with the processing code of01. - The values in the
impactfield indicate that the platform makes the withdrawal from theAvailableWithdrawalCreditandAvailableCreditLimit. - The
AvailableWithdrawalCreditandAvailableCreditLimitvalues in theconsiderfield indicate that the platform separately evaluates both of these limits to validate whether the account has sufficient funds to perform the withdrawal. Also, theOverlimitin theconsiderfield indicates that if the account has an overlimit set, the platform includes it in the calculation by adding it to theAvailableCreditLimit. - The value in the
reset_limitfield indicates that both available limits are reset when the customer pays their bill.
{
"level": "account",
"account_id": 987654,
"configs": [
{
"filters": {
"processing_codes": [
"01"
]
},
"scenarios": [
{
"condition": {
"order": 1,
"type": "default"
},
"result": {
"impact": [
"AvailableCreditLimit",
"AvailableWithdrawalCredit"
],
"consider": [
"AvailableCreditLimit",
"AvailableWithdrawalCredit",
"OverLimit"
],
"amount": "contract_amount",
"reset_limit": "payment"
}
}
]
}
]
}
In this use case, if there is a $100 credit card withdrawal that has a processing code of 01, the 987654 account has its available credit limit (AvailableCreditLimit) and available withdrawal limit (AvailableWithdrawalCredit) debited $100. If AvailableCreditLimit was $1000 and AvailableWithdrawalCredit was $500, the AvailableCreditLimit would be $900 and the AvailableWithdrawalCredit $400 after this transaction.
Adjust available credit limit based on transaction spending
In the following payload, the account’s available credit limit is set so the account cannot exceed their spending limit on transportation services. You can manage the account’s available credit limit based on transaction amount. In this case, the account is allowed to directly adjust the available credit limit without checking if the available credit limit has been exceeded.
- The
levelis set toaccountindicating the balance configuration is applied to an account, specifically to account12345678. This is the same account identified in theimpact_accountobject that will have its available credit limit adjusted based on transaction amounts. - The
configsobject is the balance configuration. Thefiltersobject determines the transaction filtering criteria likeprocessing_codesor merchant category codes (mcc). Theprocessing_codesfield is required. Processing code903002is for utilities andmcc4000is for transportation services. - In the
resultobject, theimpactvalue ofAvailableCreditLimitindicates that the platform adjusts this limit. Sinceamountis thecontract_amount, the amount credited toAvailableCreditLimitis thecontract_amount, which is the final amount including any interest or fees. - The value in the
impact_account.account_ididentifies the account that has its available credit limit (AvailableCreditLimit) adjusted.
{
"level": "account",
"account_id": 12345678,
"configs": [
{
"filters": {
"processing_codes": [
"903002"
],
"mcc":[
"4000"
]
},
"scenarios": [
{
"condition": {
"order": 1,
"type": "default"
},
"result": {
"impact": [
"AvailableCreditLimit"
],
"amount": "contract_amount",
"impact_account": {
"account_id": 89101112
}
}
}
]
}
]
}
Given a transaction for $10 that had a processing code of 903002 and an mcc of 4000 , the 89101112 account has its available credit limit (AvailableCreditLimit) debited by $10. If AvailableCreditLimit was $100, it would be $90 after this transaction.
Configure installment purchase using installment limit
You can use this configuration to separate the customer’s installment purchases into a limit other than the main credit limit. You can apply this configuration at the organization, program, or account level for installment purchases using credit card authorizations.
The balance configuration first validates the available installment limit and only considers the available credit limit if there are insufficient funds in the available installment limit. When the customer pays the bill, the platform resets only the impacted balance at the moment of authorization.
The following payload is a sample of a purchase in installments configuration.
- The values in the
levelandprogram_idfield define the program for this configuration. - The
filtersobject indicates that the configuration applies to purchases with the processing code of00 - The
min_installmentsandmax_installmentsvalues indicate that the configuration supports between 2 and 99 installments. - The
customvalue in theconditionfield with theorderof1indicates the platform evaluates whether the balance specified in theconsiderfield has sufficient funds to fulfill the current debit request. If the condition is met, the configuration is applied; otherwise, the platform proceeds to the next configuration indicated in theorderfield. - The
defaultvalue in theconditionfield with theorderof2serves as a fallback. The platform applies this scenario only if no prior configurations meet their conditions.
{
"level": "program",
"program_id": 1234567,
"configs": [
{
"filters": {
"processing_codes": [
"00"
],
"min_installments": 2,
"max_installments": 99
},
"scenarios": [
{
"condition": {
"order": 1,
"type": "custom",
"amount_to_check_balance": "amount"
},
"result": {
"impact": [
"AvailableTotalInstallmentCredit"
],
"consider": [
"AvailableTotalInstallmentCredit"
],
"amount": "contract_amount",
"reset_limit": "payment"
}
},
{
"condition": {
"order": 2,
"type": "default"
},
"result": {
"impact": [
"AvailableCreditLimit"
],
"consider": [
"AvailableCreditLimit",
"OverLimit"
],
"amount": "contract_amount",
"reset_limit": "payment"
}
}
]
}
]
}
In this use case, a bank provides a customer with two distinct credit limits under the same account.
- Primary limit
AvailableCreditLimitof $1000 is used for everyday purchases. - Installment limit
AvailableTotalInstallmentCreditof $500 is reserved specifically for purchases made in multiple installments.
When a customer initiates a purchase with multiple installments, the balance configuration first checks the installment limit. If sufficient funds are available in the installment limit, the transaction is debited from the installment limit and the primary limit remains unchanged. If the funds are not available in the installment limit, the transaction is debited from the primary limit and the installment limit is not impacted.
- If there is a $100 purchase with 5 installments that has a processing code of
00, the platform evaluates the limits for the account that belongs to the1234567program. Since the account's installment limit (AvailableTotalInstallmentCredit) is $500 and there are sufficient funds in it for this purchase, the platform debitsAvailableTotalInstallmentCreditby $100, making it $400 after this transaction. - If there is a $600 purchase with 5 installments that has a processing code of
00, the platform evaluates the limits for the account that belongs to the1234567program. Since $600 is larger than theAvailableTotalInstallmentCreditof 500, the platform doesn't impact theAvailableTotalInstallmentCredit. The platform debitsAvailableCreditLimitby $600, making it $400 after this transaction.
Manage credit limits based on number of installments
The Pismo platform provides customizable credit limits such as personal loans. In the following example, Pismo handles credit limit impacts based on the number of installments.
Scenario A - authorizations up to 12 Installments:
- Condition 1: If authorizations have up to 12 installments and there is sufficient available credit, the platform impacts the
AvailableCreditLimit. - Condition 2: If the available credit is insufficient, the platform impacts the
InstallmentCreditLimit.
Scenario B - authorizations with more than 12 Installments:
- Condition 1: For authorizations with more than 12 installments and if there is sufficient installment credit, the platform directly impacts the
InstallmentCreditLimit. - Condition 2: If the
InstallmentCreditLimitis insufficient, the platform impacts theAvailableCreditLimit.
To perform these configurations, create two distinct scenarios, each containing two specific conditions, as follows.
{
"level": "program",
"program_id": 1065,
"configs": [
{
"filters": {
"processing_codes": [
"00"
],
"min_installments": 1,
"max_installments": 12
},
"scenarios": [
{
"condition": {
"order": 1,
"type": "custom",
"amount_to_check_balance": "amount"
},
"result": {
"impact": [
"AvailableCreditLimit"
],
"consider": [
"AvailableCreditLimit",
"OverLimit"
],
"amount": "contract_amount",
"amount_consider": "principal_amount",
"reset_limit": "payment"
}
},
{
"condition": {
"order": 2,
"type": "default"
},
"result": {
"impact": [
"AvailableTotalInstallmentCredit"
],
"amount": "contract_amount",
"amount_consider": "principal_amount",
"reset_limit": "payment"
}
}
]
},
{
"filters": {
"processing_codes": [
"00"
],
"min_installments": 13,
"max_installments": 99
},
"scenarios": [
{
"condition": {
"order": 1,
"type": "custom",
"amount_to_check_balance": "amount"
},
"result": {
"impact": [
"AvailableTotalInstallmentCredit"
],
"consider": [
"AvailableTotalInstallmentCredit"
],
"amount": "contract_amount",
"amount_consider": "principal_amount",
"reset_limit": "payment"
}
},
{
"condition": {
"order": 2,
"type": "default"
},
"result": {
"impact": [
"AvailableCreditLimit"
],
"amount": "contract_amount",
"amount_consider": "principal_amount",
"reset_limit": "payment"
}
}
]
}
]
}
In this use case, the AvailableCreditLimit is $1000 and AvailableTotalInstallmentCredit is $500.
- If there is a $100 purchase with 5 installments that has a processing code of
00, the account that belongs to the1234567program has itsAvailableCreditLimitdebited by $100. IfAvailableCreditLimitwas $1000, theAvailableTotalInstallmentCreditwould be $900 after this transaction. - If there is a $100 purchase with 16 installments that has a processing code of
00, the account that belongs to the1234567program has its installment limit (AvailableTotalInstallmentCredit) debited by $100. IfAvailableTotalInstallmentCreditwas $500, theAvailableTotalInstallmentCreditwould be $400 after this transaction. - If there is a $600 purchase with 16 installments that has a processing code of
00, the account that belongs to the123456program has itsAvailableCreditLimitdebited by $600. IfAvailableCreditLimitwas $1000, theAvailableCreditLimitwould be $400 after this transaction.
Related topics
Updated 3 months ago