# Application Status

Each merchant application goes through multiple stages before approval and onboarding. The webhook sends notifications when an application moves into one of the following states:

<table><thead><tr><th width="190">State</th><th>Description</th></tr></thead><tbody><tr><td><code>Pended</code></td><td>The application requires manual intervention before proceeding.</td></tr><tr><td><code>Manual Review</code></td><td>The application is undergoing a detailed underwriting review.</td></tr><tr><td><code>Approved</code></td><td>The application has been approved and is ready for onboarding.</td></tr><tr><td><code>Declined</code></td><td>The application has been rejected and will not proceed further.</td></tr><tr><td><code>Boarded</code></td><td>The merchant account has been successfully boarded to the gateway and is ready to begin processing transactions.</td></tr></tbody></table>

### Webhook event structure <a href="#webhook-event-structure" id="webhook-event-structure"></a>

The **Application Status Webhook** sends structured JSON payloads to the subscribed endpoint when an application status changes. The payload includes the following fields:

* `event` – The current status of the application.
* `merchantId` – The unique merchant account identification number.
* `payload` – An empty set for most statuses

{% hint style="warning" %}
The `payload` field includes additional details only when the status is `Boarded`.
{% endhint %}

### Webhook examples

Below are sample webhook payloads for each application status:

#### **For Pended status**

{% code lineNumbers="true" %}

```javascript
{
  "event": "Pended",
  "merchantId": "6588000000049726",
  "payload": ""
}
```

{% endcode %}

#### **For Manual Review status**

{% code lineNumbers="true" %}

```javascript
{
  "event": "Manual Review",
  "merchantId": "6588000000049726",
  "payload": ""
}
```

{% endcode %}

#### **For Approved status**

{% code lineNumbers="true" %}

```javascript
{
  "event": "Approved",
  "merchantId": "6588000000049726",
  "payload": ""
}
```

{% endcode %}

#### **For Declined status**

{% code lineNumbers="true" %}

```javascript
{
  "event": "Declined",
  "merchantId": "6588000000049726",
  "payload": ""
}
```

{% endcode %}

#### **For Boarded status**

{% code lineNumbers="true" %}

```javascript
{
  "event": "Boarded",
  "merchantId": "88880000000123456",
  "orderId": "999990000000987654",
  "payload": {
    "terminals": [
      {
        "apiKey": "2P0H1L84133",
        "publicKey": "ABCDEFGHIJK123456789",
        "name": "Merchant Name"
      }
    ]
  }
}
```

{% endcode %}

{% hint style="warning" %}
The Boarded status includes additional merchant details, including terminal API keys and encryption keys.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.xplorpay.com/api-reference/webhooks/working-with-webhooks/merchant-onboarding-webhooks/application-status.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
