The first look up in the sample determines the default batch and transaction billing code,
whether the product is billed by tier, and the default billing tier based on the product code. The
provided sample table record layout for the inbound product look up includes fields for the
availability and billing code computations since the data source is common for those calculations
and the same table is used in the samples. The highlighted rows are not used in the billing code
computation and can be removed by the user if availability is not configured.
Table 1. Inbound Product Table Record Layout
| Field Type |
Field Name |
Data Type |
Length |
Description |
| Key |
ibmValProductId |
char |
4 |
Inbound product code |
| Payload |
ibmIntAvailDollarThreshold |
byte |
4 |
Availability threshold in cents (not a decimal). It is not used by the billing
code calculation. |
| Payload |
ibmIntFixedAvailDays |
byte |
2 |
Fixed availability days (used as a default). It is not used by the billing
code calculation. |
| Payload |
ibmCLBillingCode |
char |
5 |
Batch billing code |
| Payload |
ibmIntTieredProd |
char |
1 |
Indicates if this is a tiered product |
| Payload |
ibmNprItemBillingCode |
char |
5 |
Transaction billing code |
| Payload |
ibmIntBillingTier |
char |
6 |
Billing tier |
Note: If the product is not billed by tier, the batch and transaction billing code from the inbound
product look up table are assigned and no further billing processing is performed. Otherwise,
processing continues.
The next look up is used to determine the batch billing code by using the billing code prefix,
which is an input parameter. If this look up fails, the batch billing code from the deposit products
table is used to prevent errors.
Table 2. Billing Code Prefix Look up Table Record Layout
| Field Type |
Field Name |
Data Type |
Length |
Description |
| Key |
ibmValBillCodePrefix |
char |
6 |
Billing code prefix |
| Payload |
ibmCLBillingCode |
char |
5 |
Batch billing code |
The sample billing code assignment workflow uses a direct and range look up on the billing tier
prefix and transaction routing transit number to determine the billing tier. If the direct look up
fails, a second look up is executed against the range table. Any set of look ups that return the
billing tier can be substituted for this logic.
Table 3. Direct Billing Tier Table Record Layout
| Field Type |
Field Name |
Data Type |
Length |
Description |
| Key |
ibmValBillTierPrefix |
char |
6 |
Billing tier prefix |
| Key |
ibmNprRT |
char |
9 |
Transaction routing transit number |
| Payload |
ibmIntBillingTier |
byte |
2 |
Billing tier |
Table 4. Range Billing Tier Table Record layout
| Field Type |
Field Name |
Data Type |
Length |
Description |
| Key |
ibmValBillTierPrefix |
char |
6 |
Billing tier prefix |
| StartKey |
ibmNprRT |
char |
9 |
Transaction routing transit number lower limit |
| EndKey |
ibmNprRTHigh |
char |
9 |
Transaction routing transit number upper limit |
| Payload |
ibmIntBillingTier |
byte |
2 |
Billing tier |
The final look up in the sample billing code assignment workflow uses the billing code prefix and
transaction amount (which are inputs) and the billing tier (which is calculated from the direct and
range tables) to determine the transaction billing code. If no records are returned from the look
up, the value retrieved from the deposit products table is used as a default.
Table 5. Tiered Billing Code Lookup Table Record Layout
| Field Type |
Field Name |
Data Type |
Length |
Description |
| Key |
ibmValBillCodePrefix |
char |
6 |
Billing code prefix |
| Key |
ibmIntBillingTier |
byte |
2 |
Billing tier |
| Key |
ibmNprAmount |
char |
10 |
Amount lower limit |
| Key |
ibmNprAmountHigh |
char |
10 |
Amount upper limit |
| Payload |
ibmNprItemBillingCode |
char |
4 |
Transaction billing code |