> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gate.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sub-account Verification Result Notification

> When sub-account KYB verification completes (passed or rejected), GatePay sends an asynchronous POST notification to the callback URL configured by the merchant.

The callback payload includes `bizType`, `bizId`, `bizStatus`, `clientId`, and `data`, where `data` is a JSON string of the verification result object. The merchant must accept and parse the notification at that URL and return HTTP 200 to acknowledge receipt.

## Overview

This page documents `webhook institutionVerifyResultWebhook`. Parameters, response schema, and examples are rendered from the linked OpenAPI definition above.

When sub-account KYB verification completes (passed or rejected), GatePay sends a POST request to the callback URL configured by the merchant. The merchant should receive and parse the notification at that URL and return HTTP 200 to acknowledge receipt.

## Notes

* Use `bizId` for idempotency.
* Signature verification, retries, parsing `data`, and the success response are covered in [Notifications Overview](/api-reference/version/100/en/common/asyncNotification); see [Security and Signature](/api-reference/version/100/en/common/securityAndSignature) for signing rules.

## Trigger scenarios

* Triggered when KYB verification completes after a sub-account submits verification and the status becomes passed or rejected
* GatePay sends the notification to the merchant's configured **callback URL**
* If delivery fails, see retry rules in [Notifications Overview](/api-reference/version/100/en/common/asyncNotification)

## Message Structure

| Field       | Type   | Description                                                                   |
| ----------- | ------ | ----------------------------------------------------------------------------- |
| `bizType`   | string | Notification type; INSTITUTION = institution notification                     |
| `bizId`     | string | Notification business ID                                                      |
| `bizStatus` | string | Business status: PASSED = verification passed, FAILED = verification rejected |
| `clientId`  | string | Institution merchant client\_id                                               |
| `data`      | string | Message content as a JSON string                                              |

## Parsed `data` Content

| Field          | Type   | Description                                             |
| -------------- | ------ | ------------------------------------------------------- |
| `subAccountId` | string | Sub-account ID                                          |
| `authStatus`   | string | Verification result: PASSED = passed, FAILED = rejected |
| `accountType`  | string | Verification type; always `KYB`                         |
| `auditTime`    | int64  | Audit completion time (milliseconds)                    |
| `rejectReason` | string | Rejection reason; empty when passed                     |

## Callback examples

**Verification passed:**

```json theme={null}
{
  "bizType": "INSTITUTION",
  "bizId": "2060249001916727298",
  "bizStatus": "PASSED",
  "clientId": "caoLHPyfvjtnJPJe",
  "data": "{\"subAccountId\":\"53695180\",\"authStatus\":\"PASSED\",\"accountType\":\"KYB\",\"auditTime\":1780036714339,\"rejectReason\":null}"
}
```

**Parsed content of `data`:**

```json theme={null}
{
  "subAccountId": "53695180",
  "authStatus": "PASSED",
  "accountType": "KYB",
  "auditTime": 1780036714339,
  "rejectReason": null
}
```

### Verification rejected

```json theme={null}
{
  "bizType": "INSTITUTION",
  "bizId": "2060249001916727299",
  "bizStatus": "FAILED",
  "clientId": "caoLHPyfvjtnJPJe",
  "data": "{\"subAccountId\":\"53695180\",\"authStatus\":\"FAILED\",\"accountType\":\"KYB\",\"auditTime\":1780036714339,\"rejectReason\":\"ID photo is unclear\"}"
}
```


## OpenAPI

````yaml api-reference/version/100/en/openapi/institutional-openapi.json webhook institutionVerifyResultWebhook
openapi: 3.1.0
info:
  title: GatePay Institutional API
  description: >-
    Gate Pay Institution API documentation. Create and manage sub-accounts,
    finance, orders, payout, transfer, and more.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://openplatform.gateapi.io
security: []
paths: {}

````