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 the level 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 of 01.
  • The scenarios object lists one default condition and defines the following in the result object:
    • The value in the impact field indicates that the platform debits the AvailableCreditLimit during the cash-out operation.
    • The value in the consider field indicates that the platform uses the AvailableCreditLimit to validate whether the account has sufficient funds.
    • The value in the amount field indicates that the platform uses the contract_amount (final amount that includes any interest and fees) to debit the account limit.
{
    "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 and program_id field define the program for this configuration.
  • The filters object indicates that the configuration applies to credit card purchases with the processing code of 00.
  • The value in the impact field indicates that the platform debits the AvailableCreditLimit during the credit card purchase.
  • The values in the consider field indicate that the platform adds the limits of AvailableCreditLimit and OverLimit 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 and account_id field define the account for this configuration.
  • The filters object indicates that the configuration applies to credit card withdrawals with the processing code of 01.
  • The values in the impact field indicate that the platform makes the withdrawal from the AvailableWithdrawalCredit and AvailableCreditLimit.
  • The AvailableWithdrawalCredit and AvailableCreditLimit values in the consider field indicate that the platform separately evaluates both of these limits to validate whether the account has sufficient funds to perform the withdrawal. Also, the Overlimit in the consider field indicates that if the account has an overlimit set, the platform includes it in the calculation by adding it to the AvailableCreditLimit.
  • 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 to account indicating the balance configuration is applied to an account, specifically to account 12345678. This is the same account identified in the impact_account object that will have its available credit limit adjusted based on transaction amounts.
  • The configs object is the balance configuration. The filters object determines the transaction filtering criteria like processing_codes or merchant category codes (mcc). The processing_codes field is required. Processing code 903002 is for utilities and mcc 4000 is for transportation services.
  • In the result object, the impact value of AvailableCreditLimit indicates that the platform adjusts this limit. Since amount is the contract_amount, the amount credited to AvailableCreditLimit is the contract_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 and program_id field define the program for this configuration.
  • The filters object indicates that the configuration applies to purchases with the processing code of 00
  • The min_installments and max_installments values indicate that the configuration supports between 2 and 99 installments.
  • The custom value in the condition field with the order of 1 indicates the platform evaluates whether the balance specified in the consider 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 the order field.
  • The default value in the condition field with the order of 2 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 the 1234567 program. Since the account's installment limit (AvailableTotalInstallmentCredit) is $500 and there are sufficient funds in it for this purchase, the platform debits AvailableTotalInstallmentCredit 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 the 1234567 program. Since $600 is larger than the AvailableTotalInstallmentCredit of 500, the platform doesn't impact the AvailableTotalInstallmentCredit. The platform debits AvailableCreditLimit 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 the AvailableCreditLimit.

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 the 1234567 program has its AvailableCreditLimit debited by $100. If AvailableCreditLimit was $1000, the AvailableTotalInstallmentCredit 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 the 1234567 program has its installment limit (AvailableTotalInstallmentCredit) debited by $100. If AvailableTotalInstallmentCredit was $500, the AvailableTotalInstallmentCredit 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 the 123456 program has its AvailableCreditLimit debited by $600. If AvailableCreditLimit was $1000, the AvailableCreditLimit would be $400 after this transaction.

Related topics