> For the complete documentation index, see [llms.txt](https://docs.0xprocessing.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.0xprocessing.com/0xprocessing-api-v1/webhooks/webhooks-for-payment-form-with-fixed-amount.md).

# Webhooks for Payment Form with Fixed Amount

Receive payment status updates for fixed-amount payment forms through secure webhooks.

0xProcessing sends a webhook when the status of a fixed-amount payment changes.

Set the webhook URL under **Settings → API → Webhook URL**. HTTPS (TLS/SSL) is required.

For request authentication, header descriptions, signature verification, response requirements, retries, and implementation examples, see [Webhooks](/0xprocessing-api-v1/webhooks.md).

**Request method:** `POST`

**Content type:** `application/json`

## Payload parameters

| Name             | Type      | Description                                                                                                                                                    |
| ---------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `PaymentId`      | Integer   | Payment identifier in 0xProcessing.                                                                                                                            |
| `MerchantId`     | String    | Merchant identifier in 0xProcessing.                                                                                                                           |
| `ShopId`         | String    | Merchant identifier in 0xProcessing.                                                                                                                           |
| `Amount`         | Double    | Expected payment amount in the payment currency.                                                                                                               |
| `AmountUSD`      | Double    | Expected payment amount in USD.                                                                                                                                |
| `TotalAmount`    | Double    | Amount actually received in the payment currency, before fees.                                                                                                 |
| `TotalAmountUSD` | Double    | Amount actually received in USD, before fees.                                                                                                                  |
| `Currency`       | String    | Payment currency.                                                                                                                                              |
| `Email`          | String    | Client email address.                                                                                                                                          |
| `Status`         | String    | Payment status. Possible values: `Success`, `Canceled`, or `Insufficient`.                                                                                     |
| `BillingID`      | String    | Payment identifier in the Merchant's system.                                                                                                                   |
| `Insufficient`   | Boolean   | Indicates whether an underpaid payment was subsequently confirmed.                                                                                             |
| `Test`           | Boolean   | Indicates whether this is a test payment. Do not credit funds when `Test` is `true`.                                                                           |
| `ClientId`       | String    | Client identifier in the Merchant's system.                                                                                                                    |
| `TxHashes`       | String\[] | Hashes of successful incoming transactions.                                                                                                                    |
| `Senders`        | String\[] | Sender wallet addresses. Currently available for Tron, BNB Chain, Ethereum, Arbitrum, Avalanche, Polygon, Base, opBNB, Optimism, HypeEVM, and Robinhood Chain. |

## Payment statuses

* `Success`: The payment was completed successfully.
* `Canceled`: The payment was not completed within the payment window, or funds arrived after the payment window had closed.
* `Insufficient`: The amount received was lower than the required amount. If the amount is below the minimum deposit amount, the payment cannot be confirmed until additional funds are received.

If automatic confirmation of insufficient payments is enabled, or the Merchant confirms the payment manually under **Confirmations**, 0xProcessing sends another webhook with `Status` set to `Success` and `Insufficient` set to `true`. Update the original payment using the amount actually received.

## Example payload

```json
{
  "PaymentId": 10453,
  "MerchantId": "Asv0232SSd",
  "ShopId": "Asv0232SSd",
  "Amount": 0.00264765,
  "TotalAmount": 0.00264765,
  "Currency": "BTC",
  "Email": "test@example.com",
  "Status": "Success",
  "BillingID": "13304",
  "AmountUSD": 115.0,
  "TotalAmountUSD": 115.0,
  "Insufficient": false,
  "Test": false,
  "ClientId": "1000",
  "TxHashes": [
    "0e61e33a0c02204c41ac210c2fcffda4bea4399792acc49479aa8374465ef63a"
  ],
  "Senders": [
    "bc1qexampleaddress"
  ]
}
```

{% hint style="warning" %}
Use `PaymentId` from the 0xProcessing webhook as an additional validation factor. Process the event only after verifying the `X-Webhook-Signature` header.
{% endhint %}
