Skip to content

Military Search

Verified against source (13)

  • Options/ParsePermutateOptions.cs
  • qbo4.Permutator/ParserServiceOptions.cs
  • Utilities/Permutator.cs
  • qbo4.Permutator.AdvancedPermutator/AdvancedPermutator.cs
  • qbo4.Permutator.NameSegmentParser/NameSegmentParser.cs
  • qbo4.ContactServices.QMS.Provider/SCRASingleSearchProvider.cs
  • qbo4.DMDC/BatchEnumerations.cs
  • Military/SCRAResult.BatchSettings.Home.xslt
  • Extensions/AttachmentExtensions.cs
  • Config/Setup.QmsBatch.xml
  • Config/Setup.QmsIntegrationNearRealTime.xml
  • Process/QMSOrder.Request.xslt
  • military/readme.md

Power users decide who gets searched, how often, and how names are expanded before searching.

Channel Best for How results come back
Instant (API) One person, while the customer or application is waiting In the same response, with optional certificates
Batch file Hundreds or thousands of people at once Results and certificates when DMDC has processed the file
Near real-time order from QBO Checks launched from a process, such as a foreclosure Imported into the process when the order completes
Recurring batch from QBO Monthly portfolio re-checks Imported onto each contact

Batch and sFTP ordering for direct Military Search clients is set up with Quandis during onboarding. The rest of this page covers the QBO side, plus the Permutations settings that apply to every channel.

The QMS Batch Order workflow selects contacts, writes an order file, and transmits it to Military Search over sFTP. When the order completes, QBO imports the product file and the certificates.

  1. Authenticate with SSH. Generate an SSH key, then on the Military Search file object choose Set Credentials, with Auth Type set to SSH Private Key.
  2. Set the username. It usually follows the pattern {Environment}{ClientName}, typically the first part of your host name (for example, uatacme for https://uatacme.quandis.io). Confirm it with Quandis.
  3. Check the selection filters. By default the workflow selects every valid contact that hasn’t been searched this month:
    • QMSMonthlyFilter skips any contact that already has an SCRA result this month, so scheduling the workflow more often doesn’t create duplicate searches.
    • ValidQMSRequest keeps only contacts with the minimum search criteria: a last name and either a 9-digit SSN or a birth date.

The setup steps are also on the QMS Batch Order Configuration page in QBO.

  • Each result becomes an SCRA Result on its contact.
  • The certificate file is split into one document per person, saved on the contact with the DMDC Certificate template, and linked to that person’s result.
  • The order request, product file, and image package are kept as documents (QMS Order Request, QMS Product File, QMS Image Package).

Batch orders can ask DMDC for certificates for active-duty matches only, non-active-duty matches only, or both.

The QMS Near Real-Time Order workflow runs from a foreclosure. It sends the borrowers to Military Search, waits until Military Search signals that the order is complete, then imports the results and any custom images.

To enable it, your administrator:

  1. Creates a QBO user for Military Search to call back with, adds it to the QDS role, and generates an access key for it.
  2. Contacts Quandis to set up a system profile, exchanging access keys.
  3. Saves the Military Search key in the QMSNearRealTimeBatch credential.

The QMS Order Parameters matrix sets order options per servicer, including permutation settings. A parameter is sent only when the matrix returns a value for it. Outputs whose names start with UserDefined_ are sent as custom options; a comma-separated value becomes one option per item. Every order also carries the QBO process ID as its SourceReferenceNumber.

Names arrive in every shape: prefixes in the first-name field, suffixes in the last name, several people in one field, and notes such as “(Deceased)” or “estate of”. Military Search handles this in two steps, parse then permutate, and searches every resulting name.

Parsing splits a name field into clean, separate names, called aliases.

Input: John A Doe Jr aka Jane Smith fka Janice Smith
Aliases: John A Doe Jr · Jane Smith · Janice Smith
Parsing step What it does
Segment parsing Splits the field into separate people at delimiters such as aka, a/k/a, fka, nka, pka, “also known as”, “formerly known as”, “now known as”, “executor of the estate of”, “known heir of”, husband, wife, and and. The first name is the primary; the rest become aliases, with duplicates removed.
Character cleanup Removes punctuation such as commas, periods, and parentheses, and collapses extra spaces.
Prefix parsing Moves prefixes such as “Mr” out of the first name. On by default (parsePrefix).
Suffix parsing Moves suffixes such as “Jr” out of the last name. On by default (parseSuffix).
Known-word removal Removes words that describe a role rather than a name, such as “deceased”, “estate”, “trustee”, “heirs”, “unknown”, and “a minor”.

To search names exactly as given, with no parsing or permutations, set parseModel to None.

Each alias is then expanded into variations. A compound last name is always searched both whole and part by part: John Doe Smith searches John Doe Smith, John Doe, and John Smith. The options below add more variations.

Option API name Default Example: name → added variations
Transpose transpose Off John Doe Smith → John Smith Doe
Merge names mergeNameParts Off Sarah O Connor → Sarah OConnor
Force hyphen forceHyphen Off John Doe Smith → John Doe-Smith (two-part last names only)
Toggle middle name toggleMiddleName Off John Bailey Doe → John Doe
Toggle primary name togglePrimaryName Off John A Doe → Doe (last name only)
Mixed-case split mixedCaseSplit Off John DeCosta → John De Costa, John De, John Costa
Remove particles removeNobiliaryParticiple Off By default, particles such as de, la, da, le, del, and di stay attached to the next part, so de la Cruz is kept together. Turn this on to drop them and search Cruz.
Keep original keepOriginal On Also searches the name as given, even when parsing found a known word (John A Doe (Deceased)). Turn off to search only the cleaned name.

includeSuffix controls how parsed suffixes are searched:

Value Behavior Example: John Doe Sr. AKA John Smith
None (default) Suffix is dropped John Doe · John Smith
OriginalOnly The original name is also searched with its suffix John Doe · John Doe Sr. · John Smith
All Every variation of a suffixed name is searched with and without the suffix Each variation of John Doe, plus the same with Sr.

By default, a hyphenated last name is searched whole and by each part. suppressHyphenParse changes that:

Value Example: John Doe-Smith Example: John Doe-Smith Bailey
Never (default) Doe-Smith · Doe · Smith Each part, including Doe and Smith separately
MultipleOnly Doe-Smith · Doe · Smith Doe-Smith Bailey · Doe-Smith · Bailey
Always Doe-Smith Doe-Smith Bailey · Doe-Smith · Bailey

middleNameParse applies middle names and initials to aliases and variations. With AppendMiddleInitialAll, every variation of a name with a full middle name is also searched with its middle initial: John Bailey Doe adds John B Doe. The default is None.

Options work together. For example, John Doe Smith with Transpose, Force hyphen, and Keep original on searches John Doe Smith, John Smith Doe, John Doe, John Smith, John Doe-Smith, and John Smith-Doe.