# Get Blade verification check results for a merchant. Returns stored results grouped and ordered by verification category (Clear, Credit Profile, GlaCt, Google Abusive Experience Report, Google Places API, Google.com search, Master Card Termination, MaxMind, Netevia HQ, OFAC, TINCheck, WHOIS).

## Get Blade Review

Retrieves stored Blade verification check results for a merchant, grouped and ordered by verification category. Returns results across 12 verification sources including OFAC, TINCheck, MaxMind, Google Places, MasterCard Termination, and others — giving underwriters a comprehensive risk assessment view in a single call.

### Endpoint

`GET /api/v1/merchant/bladeReview`

### Authentication

Basic HTTP Authentication required. Encode `username:password` in Base64 and pass in the Authorization header:

```
Authorization: Basic {base64(username:password)}
```

### When to use

Use this endpoint during underwriting review to get a consolidated view of all automated risk and compliance checks run against a merchant. Each result shows the check category, what was queried, the raw scan result, what the application requires, and the final verification outcome. Useful for identifying merchants that need manual review due to OFAC hits, TIN mismatches, or fraud signals.

### Query Parameters

| Parameter | Type            | Required | Description                                                                           |
| --------- | --------------- | -------- | ------------------------------------------------------------------------------------- |
| id        | integer (int32) | No       | Merchant profile ID. If omitted, returns results for the authenticated user's context |

### Response

**200 OK**

| Field                                  | Type    | Description                                                   |
| -------------------------------------- | ------- | ------------------------------------------------------------- |
| data                                   | array   | List of Blade verification check results                      |
| data\[].name                           | string  | Name of the specific check within the category                |
| data\[].verificationType               | string  | Verification category — see categories below                  |
| data\[].query                          | string  | The value that was queried against this source                |
| data\[].scanResult                     | string  | Raw result returned by the verification source                |
| data\[].merchantApplicationRequirement | string  | What the merchant application requires for this check to pass |
| data\[].verificationResult             | string  | Final outcome: `Pass`, `Fail`, `Review`, `N/A`                |
| requestId                              | integer | Unique request identifier for tracing                         |
| success                                | boolean | `true` if request succeeded                                   |
| error                                  | string  | Error message if `success` is `false`                         |

**Verification categories (`verificationType`):**

* `Clear` — general clearance checks
* `Credit Profile` — Experian credit checks
* `GlaCt` — geographic/location checks
* `Google Abusive Experience Report` — Google's abusive experience detection
* `Google Places API` — business listing verification
* `Google.com search` — web presence check
* `Master Card Termination` — MasterCard terminated merchant list
* `MaxMind` — fraud and IP risk scoring
* `Netevia HQ` — internal Netevia checks
* `OFAC` — Office of Foreign Assets Control sanctions screening
* `TINCheck` — Tax Identification Number validation
* `WHOIS` — domain registration lookup

```json
{
  "data": [
    {
      "name": "OFAC SDN Search",
      "verificationType": "OFAC",
      "query": "FAMILY SALON LLC",
      "scanResult": "No matches found",
      "merchantApplicationRequirement": "No OFAC matches",
      "verificationResult": "Pass"
    },
    {
      "name": "TIN Match",
      "verificationType": "TINCheck",
      "query": "811893122",
      "scanResult": "Match",
      "merchantApplicationRequirement": "TIN must match IRS records",
      "verificationResult": "Pass"
    },
    {
      "name": "MaxMind Risk Score",
      "verificationType": "MaxMind",
      "query": "192.168.1.100",
      "scanResult": "Risk: 12",
      "merchantApplicationRequirement": "Risk score < 50",
      "verificationResult": "Pass"
    },
    {
      "name": "MasterCard MATCH",
      "verificationType": "Master Card Termination",
      "query": "FAMILY SALON LLC / 811893122",
      "scanResult": "No records found",
      "merchantApplicationRequirement": "Not on MATCH list",
      "verificationResult": "Pass"
    },
    {
      "name": "Google Places Lookup",
      "verificationType": "Google Places API",
      "query": "TIP TOP NAILS Philadelphia PA",
      "scanResult": "Business found, rating: 4.2",
      "merchantApplicationRequirement": "Business must be findable",
      "verificationResult": "Pass"
    }
  ],
  "requestId": 4188456,
  "success": true,
  "error": null
}
```

### Error Codes

| Code | When it happens                           |
| ---- | ----------------------------------------- |
| 400  | Invalid `id` parameter format             |
| 401  | Invalid or missing Basic Auth credentials |
| 403  | User does not have Underwriting access    |
| 404  | Merchant profile not found                |
| 500  | Internal server error                     |

### Common Mistakes

* Expecting real-time checks — this endpoint returns **stored** results from the last time Blade checks were run. If checks have not been run yet, the array may be empty.
* Ignoring `Review` results — `verificationResult: "Review"` means the check did not pass or fail automatically and requires manual underwriter decision.
* Not checking all 12 categories — a single `Fail` in OFAC or MasterCard Termination may be grounds for rejection regardless of other results.

### Related Endpoints

* [`GET /api/v1/merchant/creditProfile`](./creditprofile_getcreditprofile.md) — Experian-specific credit profile checks
* [`POST /api/v1/merchant/creditProfile/softPull`](./creditprofile_triggersoftpull.md) — trigger Experian soft pull
* [`GET /api/v1/merchant/getAutoUwResults`](./underwriting_getautouwresults.md) — get automated underwriting decision results

### Example

```bash
curl -X GET "https://hq.staging.netevia.dev/api/v1/merchant/bladeReview?id=161787" \
  -H "Authorization: Basic $(echo -n 'username:password' | base64)"
```

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "version": "v1",
    "title": "Netevia HQ | API Documentation",
    "description": "Netevia HQ | API Documentation"
  },
  "paths": {
    "/api/v1/merchant/bladeReview": {
      "get": {
        "tags": [
          "Underwriting"
        ],
        "summary": "Get Blade verification check results for a merchant. Returns stored results grouped and ordered by verification category (Clear, Credit Profile, GlaCt, Google Abusive Experience Report, Google Places API, Google.com search, Master Card Termination, MaxMind, Netevia HQ, OFAC, TINCheck, WHOIS).",
        "operationId": "Underwriting_GetBladeReview",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Merchant profile ID (optional)",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultArray1_BladeReviewItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultArray1_BladeReviewItem"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultArray1_BladeReviewItem"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultArray1_BladeReviewItem"
                }
              }
            }
          }
        }
      }
    }
  },
  "security": [
    {
      "Basic": []
    }
  ],
  "servers": [
    {
      "url": "https://hq.staging.netevia.dev"
    }
  ],
  "components": {
    "securitySchemes": {
      "Basic": {
        "type": "http",
        "description": "Basic HTTP Authentication",
        "scheme": "basic"
      }
    },
    "schemas": {
      "ValidationError": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string"
          },
          "error": {
            "type": "string"
          }
        }
      },
      "ApiResultArray1_BladeReviewItem": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BladeReviewItem"
            }
          },
          "requestId": {
            "format": "int32",
            "type": "integer"
          },
          "success": {
            "type": "boolean"
          },
          "error": {
            "type": "string"
          },
          "validationErrors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            }
          }
        }
      },
      "BladeReviewItem": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "verificationType": {
            "type": "string"
          },
          "query": {
            "type": "string"
          },
          "scanResult": {
            "type": "string"
          },
          "merchantApplicationRequirement": {
            "type": "string"
          },
          "verificationResult": {
            "type": "string"
          }
        }
      }
    }
  }
}
```