Validating the Payment Fields Operation

Following a successful lookup in a PVR node’s table (routing transit, account, process control, amount, and AuxOnUs), each MICR field performs a lookup in the record ID validation table. Based on the settings from this table, various validity checks are made on selected MICR fields.

The record ID and the MICR field’s ID, together, form the key to this table. They are matched against the ibmNprRecordId and the ibmIntField values in the table.

For each MICR field, the following steps are performed:
Note: If a validation error is detected, the ibmNprRecordId is set to an invalid record ID as indicated in the table if the value of the invalid record ID is not ‘-1’. This is shown in that step. Also performed (but not shown in that step) is that the ibmNprValidXXX flag for that field is set to false. The ibmNprValidationError flag is set to true and all other validity checks are skipped, unless otherwise explicitly stated.
  1. Perform the lookup in the record ID validation table. If the record is not found, all processing stops. This is not considered a validation error.
  2. If ibmIntRequired is set to Y and the MICR field’s value is blank, set ibmNprRecordId to ibmIntMissingError.
  3. If ibmIntRequired is set to Y or ibmIntVerify is set to Y, check its digit, length, and perform a mod (modification) check. If the MICR field has any character other than a digit or a dash, set ibmNprRecordId to ibmIntDigitError.
    1. If the MICR field’s length is not zero, ifibmIntMin is not zero, and if the MICR field’s length is less, set ibmNprRecordId to ibmIntLengthError.
    2. If the MICR field’s length is not zero, if ibmIntMax is not zero, and if the MICR field’s length is greater, set ibmNprRecordId to ibmIntLengthError.
    3. If the MICR field’s length is not zero and ibmSetModulus is not -1, set ibmNprRecordId to ibmIntModError if the CheckMod operation fails.
  4. Get the ibmIntMutualExcl value. This identifies one of the other MICR fields (value ranges: 1...7, or -1, which means skip this validity check).
    1. If the MICR field value is not blank and the MICR field identified by ibmIntMutualExcl is also not blank, set ibmNprRecordId to ibmIntMutualError.
    2. If the MICR field value is blank and the MICR field identified by ibmIntMutualExcl is also blank, set ibmNprRecordId to ibmIntMutualError.
  5. Get the ibmIntMutualIncl value. This also identifies one of the other MICR fields (value ranges: 1...7, or -1, which means skip this validity check).
    1. If both the MICR field and the MICR field identified by ibmIntMutualIncl are blank, regardless of whether the MICR field value is blank or not, and if the MICR field identified by ibmIntMutualIncl is blank, set ibmNprRecordId to ibmIntMutualError.
  6. If ibmIntTreasury is Y, perform the validate the treasury check operation (see Validating the Treasury Check Operation). If it returns with a validation error, set ibmNprRecordId to ibmIntTreasuryError.