Record ID Validation
The record ID validation is not a node, but is a common operation executed by the routing transit, account, process control, amount, and AuxOnUs nodes.
Each time a payments record ID (ibmNprRecordId) is altered by a node’s primary lookup, the record ID table is searched for each of the seven MICR fields.
- Missing field (on any single field)
- Digit (on any single field)
- Minimum length (on any single field)
- Maximum length (on any single field)
- Modulus (on any single field)
- Mutual exclusion (on any pair of fields)
- Mutual inclusion (on any pair of fields)
- Treasury (on any single field)
- Missing errors
- Occur when the value is blank
- Digit errors
- Occur when the value contains characters other than digits or dashes
- Length errors
- Occur when the number of characters in the value is less than a minimum or greater than a maximum
- Modulus errors
- Occur when one of two optional algorithms fail
- Mutual exclusion
- Means one and only one field must be set.
- Mutual inclusion
- Means one or both of the fields must be set. May be disabled.
- Treasury checks
- Only apply to a treasury document. It validates the date in the process control field.
Each of these checks can be enabled or disabled. It is permitted to enable all, none, or any combination of them. Associated with the validity checks is an optional error record ID, which replaces the current record ID field. It is optional when set to ‘-1’. This means the field validity flag is marked invalid, but the record ID is left unchanged. Six separate error record IDs exist; minimum and maximum length share the length error and mutual exclusion and mutual inclusion share the mutual error.
The list also shows the order of precedence. Should a field fail two or more validations, the first one is the validation error assigned.
Table Record Layout
| Field Type | Field Name | Data Type | Length | Notes |
|---|---|---|---|---|
| Key | ibmNprRecordID | byte | 2 | |
| Key | ibmIntField | byte | 2 | MICR index (see MICR Field Validation) |
| Payload | ibmIntRequired | char | 1 | Identifies if the length, digit, and modulus are required |
| ibmIntVerify | char | 1 | If field is set, it identifies if validation is performed | |
| ibmSetMutualIncl | byte | 2 | MICR index (see MICR Field Validation) | |
| ibmSetMutualExcl | byte | 2 | MICR index (see MICR Field Validation) | |
| ibmIntMutualError | byte | 2 | Invalid record ID | |
| ibmIntMin | byte | 2 | ||
| ibmIntMax | byte | 2 | ||
| ibmIntMissingError | byte | 2 | Invalid record ID | |
| ibmIntDigitError | byte | 2 | Invalid record ID | |
| ibmIntLengthError | byte | 2 | Invalid record ID | |
| ibmSetModulus | byte | 2 | ||
| ibmSetModRemainder | byte | 2 | ||
| ibmSetModWeights | char | 48 | ||
| ibmSetModOption | byte | 2 | ||
| ibmSetModError | byte | 2 | Invalid record ID | |
| ibmIntTreasury | char | 1 | Y or N | |
| ibmIntTreasuryError | byte | 2 | Invalid record ID |
Fields that can Change
| Field Name | Data Type | Length |
|---|---|---|
| ibmNprRecordId | byte | 2 |
| ibmNprValidationError | byte | 1 |
| ibmNprValidAmount | byte | 1 |
| ibmNprValidPc | byte | 1 |
| ibmNprValidAccount | byte | 1 |
| ibmNprValidField4 | byte | 1 |
| ibmNprValidRT | byte | 1 |
| ibmNprValidExtProcCode | byte | 1 |
| ibmNprValidAuxOnUs | byte | 1 |