# Equipment Activation

The **Equipment Activation** webhook is a callback process that enables payment terminal activation for merchants. The Activation Webhook allows clients to notify the `activations-service` when terminal activations are ready to be processed. The service then forwards API keys to the merchant's endpoint.

### Endpoint details

<table><thead><tr><th width="197">Item</th><th>Value</th></tr></thead><tbody><tr><td>Service</td><td><code>activations-service</code></td></tr><tr><td>HTTP Method</td><td>POST</td></tr><tr><td>URL Path</td><td><code>/activations/{merchantId}/callback</code></td></tr><tr><td>Parameters</td><td><code>merchantId (URL parameter)</code></td></tr></tbody></table>

### Request format

The endpoint accepts a request with the following components:

* `merchantId` as a URL parameter
* JSON body containing an external identifier

Refer to the below sample request body:

{% code lineNumbers="true" %}

```json
{
  "externalId": "12345"
}
```

{% endcode %}

{% hint style="warning" %}
The `externalId` is typically initiated through the Partner Portal.
{% endhint %}

### Process flow

When the service receives a callback request, it:

1. Validates that an equipment order exists for the specified `merchantId`.
2. Retrieves the merchant URL for the given `merchantId`.
   1. If no merchant URL is found, it returns the parent HNK URL.
3. Forwards API keys for terminals in the placed order to the merchant URL.
4. Records the callback in the `ActivationDetails` table of the Equipment database.

### Callback to merchant

The service sends a POST request to the merchant URL with API keys for each terminal in the order. Refer to the below sample code:

{% code lineNumbers="true" %}

```json
{
    "externalIdentifier": "12345",
    "merchantAccountNumber": "6588000001234567",
    "keys": [
    {
       "type": "cnp",
       "productName": "Pi Technologies (ASeries)",
       "apiKey": "abc16ed42a9a99dd1f7890e4f00",
       "terminalid": "80608483",
       "publicKey": "301406072a8648ce3d0201060....459a12d5780d65e5a7a624a4ca005"
    }
 ]
}
```

{% endcode %}

### Response codes <a href="#response-codes" id="response-codes"></a>

<table><thead><tr><th width="169">Status Code</th><th width="180">Meaning</th><th>Description</th></tr></thead><tbody><tr><td><code>200</code> (OK)</td><td>Success</td><td>The activation process completed successfully (no response payload)</td></tr><tr><td><code>424</code> (Failed Dependency)</td><td>Failure</td><td>The activation process failed (no response payload)</td></tr></tbody></table>


---

# 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/equipment-tracking-and-activation-webhooks/equipment-activation.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.
