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:
| Scenario | Result |
|---|---|
| All services complete before the timeout | One webhook fires containing results from all services. |
| One or more services exceed the timeout | A 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
| Field | Type | Description |
|---|---|---|
Type | Integer | Always 4 for this event |
EventIdentifier | String | Always Batched_UnderwritingComplete |
EventData | Object | Contains underwriting results. See EventData Fields below. |
EventData Fields
| Field | Type | Description |
|---|---|---|
CategoryResults | Array | Array of results by underwriting service category. See CategoryResults Fields below. |
MerchantApplicationId | Integer | The merchant application ID |
Status | String | Overall underwriting status. Values: Incomplete, Approved, Acquirer Review, NewPend, FollowUp, Re-Pend, Approved and Boarded, Pre-Generated |
StatusValue | Integer | Numeric representation of Status. See Status Values below. |
ExternalApplicationIdentifier | String | The unique ID created by the user, set when the merchant application is created via API |
MerchantIdentifier | String | The merchant application ID as a string identifier |
UnderwritingResultsURL | String | URL to the merchant application's underwriting results |
UnderwritingDeclineReason | String | The reason the application was declined, if applicable |
InfiniceptMerchantIdentifier | String | The unique ID created by Infinicept to identify the merchant entity |
CategoryResults Fields
| Field | Type | Description |
|---|---|---|
UnderwritingResults | Object | Keyed by underwriting service name. Each key maps to an array of individual result objects. See UnderwritingResults Fields below. |
Status | String | Overall status for this category. Values: Green, Yellow, Red, HardDecline |
Category | String | The 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.
| Field | Type | Description |
|---|---|---|
Value | String | The result output for this check |
Status | String | Values: Green, Yellow, Red, HardDecline, NotSet |
ExtraData | Object | May contain a Data property with additional data associated with the result or may be empty. |
Status Values
| StatusValue | Status |
|---|---|
0 | Incomplete |
1 | Approved |
2 | Acquirer Review |
3 | New Pend |
4 | Follow Up |
5 | Re-Pend |
7 | Approved and Boarded |
12 | Pre-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:
- Check
StatusValueto determine the overall outcome. A value of1(Approved) or7(Approved and Boarded) typically requires no further action. Values like3(New Pend) or4(Follow Up) indicate the application needs attention. - Iterate over
CategoryResultsto identify which service categories returnedYellow,Red, orHardDeclinestatuses. This tells you where the underwriting friction is. - Use
UnderwritingResultsURLto link users or internal teams directly to the full underwriting dashboard for that application. - Store
InfiniceptMerchantIdentifierandExternalApplicationIdentifierto 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.
Updated 11 days ago
