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
tenant
in thelevel
field 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
filters
object indicates that the configuration applies to withdrawals with the processing code of01
. - The
scenarios
object lists one defaultcondition
and defines the following in theresult
object:- The value in the
impact
field indicates that the platform debits theAvailableCreditLimit
during the cash-out operation. - The value in the
consider
field indicates that the platform uses theAvailableCreditLimit
to validate whether the account has sufficient funds. - The value in the
amount
field 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
level
andprogram_id
field define the program for this configuration. - The
filters
object indicates that the configuration applies to credit card purchases with the processing code of00
. - The value in the
impact
field indicates that the platform debits theAvailableCreditLimit
during the credit card purchase. - The values in the
consider
field indicate that the platform adds the limits ofAvailableCreditLimit
andOverLimit
to check if the account has sufficient funds. - The value in the
reset_limit
field 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
level
andaccount_id
field define the account for this configuration. - The
filters
object indicates that the configuration applies to credit card withdrawals with the processing code of01
. - The values in the
impact
field indicate that the platform makes the withdrawal from theAvailableWithdrawalCredit
andAvailableCreditLimit
. - The
AvailableWithdrawalCredit
andAvailableCreditLimit
values in theconsider
field indicate that the platform separately evaluates both of these limits to validate whether the account has sufficient funds to perform the withdrawal. Also, theOverlimit
in theconsider
field 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_limit
field 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
level
is set toaccount
indicating the balance configuration is applied to an account, specifically to account12345678
. This is the same account identified in theimpact_account
object that will have its available credit limit adjusted based on transaction amounts. - The
configs
object is the balance configuration. Thefilters
object determines the transaction filtering criteria likeprocessing_codes
or merchant category codes (mcc
). Theprocessing_codes
field is required. Processing code903002
is for utilities andmcc
4000
is for transportation services. - In the
result
object, theimpact
value ofAvailableCreditLimit
indicates that the platform adjusts this limit. Sinceamount
is thecontract_amount
, the amount credited toAvailableCreditLimit
is thecontract_amount
, which is the final amount including any interest or fees. - The value in the
impact_account.account_id
identifies 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
level
andprogram_id
field define the program for this configuration. - The
filters
object indicates that the configuration applies to purchases with the processing code of00
- The
min_installments
andmax_installments
values indicate that the configuration supports between 2 and 99 installments. - The
custom
value in thecondition
field with theorder
of1
indicates the platform evaluates whether the balance specified in theconsider
field 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 theorder
field. - The
default
value in thecondition
field with theorder
of2
serves 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
AvailableCreditLimit
of $1000 is used for everyday purchases. - Installment limit
AvailableTotalInstallmentCredit
of $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 the1234567
program. Since the account's installment limit (AvailableTotalInstallmentCredit
) is $500 and there are sufficient funds in it for this purchase, the platform debitsAvailableTotalInstallmentCredit
by $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 the1234567
program. Since $600 is larger than theAvailableTotalInstallmentCredit
of 500, the platform doesn't impact theAvailableTotalInstallmentCredit
. The platform debitsAvailableCreditLimit
by $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
InstallmentCreditLimit
is 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 the1234567
program has itsAvailableCreditLimit
debited by $100. IfAvailableCreditLimit
was $1000, theAvailableTotalInstallmentCredit
would 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 the1234567
program has its installment limit (AvailableTotalInstallmentCredit
) debited by $100. IfAvailableTotalInstallmentCredit
was $500, theAvailableTotalInstallmentCredit
would 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 the123456
program has itsAvailableCreditLimit
debited by $600. IfAvailableCreditLimit
was $1000, theAvailableCreditLimit
would be $400 after this transaction.
Related topics
Updated about 4 hours ago