Batched Underwriting Results Webhook

New Accounts Webhooks

Overview

The Batched_UnderwritingComplete event fires when all underwriting services have finished processing for a merchant application. Because underwriting services run independently, this webhook may fire more than once for a single application — once at the 15-minute timeout if any services are still pending, and again as each remaining service completes.

Use this event to check the overall underwriting status and the results of individual service categories, then take appropriate action in your system.


Webhook Event Timing

The webhook behaves differently depending on whether all underwriting services complete within the 15-minute timeout window:

ScenarioResult
All services complete before the timeoutOne webhook fires containing results from all services.
One or more services exceed the timeoutA webhook fires at the 15-minute mark with available results, then an additional webhook fires each time a late service completes.

Example

A merchant application has 3 underwriting services configured to run: InfiniScore Social, USPS Address Validation, and LegitScript Direct. After 15 minutes, only InfiniScore Social is complete.

  • Webhook 1: fires at the 15-minute timeout with the results of InfiniScore Social only. USPS Address Validation and LegitScript Direct are not included.
  • Webhook 2: USPS Address Validation completes 2 minutes after the timeout. A webhook fires with InfiniScore Social and USPS Address Validation results. LegitScript Direct is not included.
  • Webhook 3: LegitScript Direct underwriting completes 3 minutes later. A webhook fires containing the results from all three services — InfiniScore Social, USPS Address Validation, and LegitScript Direct.

Trigger Conditions

This event may be configured to trigger when underwriting services complete after any of the following:

  • Application submission — runs underwriting automatically on submit
  • First authorization — runs underwriting on first auth
  • Demographic data change — runs on application data updates
  • Manual re-run — runs when an underwriter clicks Re-Run All UW Checks on the Underwriting Dashboard in your cobrand



Payload Schema


Top-Level Fields

FieldTypeDescription
TypeIntegerAlways 4 for this event
EventIdentifierStringAlways Batched_UnderwritingComplete
EventDataObjectContains underwriting results. See EventData Fields below.

EventData Fields

FieldTypeDescription
CategoryResultsArrayArray of results by underwriting service category. See CategoryResults Fields below.
MerchantApplicationIdIntegerThe merchant application ID
StatusStringOverall underwriting status. Values: Incomplete, Approved, Acquirer Review, NewPend, FollowUp, Re-Pend, Approved and Boarded, Pre-Generated
StatusValueIntegerNumeric representation of Status. See Status Values below.
ExternalApplicationIdentifierStringThe unique ID created by the user, set when the merchant application is created via API
MerchantIdentifierStringThe merchant application ID as a string identifier
UnderwritingResultsURLStringURL to the merchant application's underwriting results
UnderwritingDeclineReasonStringThe reason the application was declined, if applicable
InfiniceptMerchantIdentifierStringThe unique ID created by Infinicept to identify the merchant entity

CategoryResults Fields

FieldTypeDescription
UnderwritingResultsObjectKeyed by underwriting service name. Each key maps to an array of individual result objects. See UnderwritingResults Fields below.
StatusStringOverall status for this category. Values: Green, Yellow, Red, HardDecline
CategoryStringThe underwriting service category. Values: AcceptableUse, Credit, Fraud, KYCBusiness, KYCPersonal, Social, Custom Application Checks

UnderwritingResults Fields

Each entry in the UnderwritingResults array represents an individual check within a service category.

FieldTypeDescription
ValueStringThe result output for this check
StatusStringValues: Green, Yellow, Red, HardDecline, NotSet
ExtraDataObjectMay contain a Data property with additional data associated with the result or may be empty.

Status Values

StatusValueStatus
0Incomplete
1Approved
2Acquirer Review
3New Pend
4Follow Up
5Re-Pend
7Approved and Boarded
12Pre-Generated

Note: Values 6 and 8–11 are not currently used.


Example Payload


{
  "Type": 4,
  "EventIdentifier": "Batched_UnderwritingComplete",
  "EventData": {
    "CategoryResults": [
      {
        "UnderwritingResults": {
          "Custom Application Checks": [
            {
              "Value": "Green: NO MATCHES\n",
              "Status": "Green",
              "ExtraData": {}
            },
            {
              "Value": "2021-03-09T16:20:33.1419749Z",
              "Status": "NotSet",
              "ExtraData": {}
            },
            {
              "Value": "Yellow: Provided CC Volume: $10.00 is less than Yellow Threshold of: $20,000.00.\r\n",
              "Status": "Yellow",
              "ExtraData": {}
            },
            {
              "Value": "10FBBDE940411A1C0DF6092FA87C74DD58A74EBB",
              "Status": "NotSet",
              "ExtraData": {}
            }
          ]
        },
        "Status": "Yellow",
        "Category": "AcceptableUse"
      }
    ],
    "MerchantApplicationId": 66828,
    "Status": "NewPend",
    "StatusValue": 3,
    "ExternalApplicationIdentifier": "947bd6b4-16c7-402b-adfe-17d80b970000",
    "MerchantIdentifier": "947bd6b4-16c7-402b-adfe-17d80b976000",
    "UnderwritingResultsURL": "https://merchantapp.io/example/CoBrands/MerchantUW?applicationId=0000",
		"UnderwritingDeclineReason": null,
    "InfiniceptMerchantIdentifier": "212d0ea1-8db9-45d5-adce-4cc0f2210000"
  }
}

Handling This Event

When you receive this event, a typical handling pattern looks like this:

  1. Check StatusValue to determine the overall outcome. A value of 1 (Approved) or 7 (Approved and Boarded) typically requires no further action. Values like 3 (New Pend) or 4 (Follow Up) indicate the application needs attention.
  2. Iterate over CategoryResults to identify which service categories returned Yellow, Red, or HardDecline statuses. This tells you where the underwriting friction is.
  3. Use UnderwritingResultsURL to link users or internal teams directly to the full underwriting dashboard for that application.
  4. Store InfiniceptMerchantIdentifier and ExternalApplicationIdentifier to correlate this event with records in your own system.


Support

💬Have a question? Contact us on the Customer Support Portal.

🔹Learn about updates in our Changelog.