---
title: "Pool Deposit Events"
method: POST
path: "pool_deposit_request.events"
tags: ["Webhooks"]
---

# Pool Deposit Events

`POST pool_deposit_request.events` (webhook)

Afriex delivers a webhook to your configured URL when a pool account deposit you submitted is rejected during review.

Submitting proof through `POST /api/v1/transaction/pool-account` creates a transaction in `IN_REVIEW`. An operator then confirms or rejects the inflow: approval surfaces as `TRANSACTION.CREATED`, rejection surfaces here. This event cannot be fired from `POST /api/v1/webhooks/trigger`.

**Security**: Every request includes an `x-webhook-signature` header and an `x-afriex-business-id` header carrying your business id. You **must** verify this signature using Afriex's public key before processing. The key is an elliptic-curve (secp384r1 / P-384) key, not RSA. The signature is ECDSA with SHA-256, DER-encoded and then base64-encoded, computed over the exact raw request body, so verify it before parsing or re-serialising the JSON. See the [Webhooks Overview & Security](https://docs.afriex.com/api-reference/endpoint/webhooks/introduction) section for verification instructions.

## Payload

- object
  - `id` string, uuid, required: Unique ID of this event. Every delivery attempt of the same event carries the same `id`, so use it to ignore a delivery you have already processed.
  - `event` 'POOL_DEPOSIT_REQUEST.REJECTED', required: Identifies which pool deposit event occurred
  - `createdAt` string, date-time, required: When Afriex created the event. Retries keep this value, and the signature covers it, so you can reject a delivery that is older than you expect.
  - `data` object, required: Details of the rejected pool deposit. A flat, purpose-built shape rather than the full transaction object. Fetch the transaction with `GET /api/v1/transaction/{transactionId}` if you need the rest of it.
    - `transactionId` string, required: The transaction created by your proof submission, the one that was reviewed and rejected
    - `reference` string, required: The reference you supplied on the submission
    - `amount` number: The deposit amount. Omitted when the transaction carries no destination amount.
    - `currency` string: ISO 4217 currency code. Omitted when the transaction carries no destination amount.
    - `rejectionReason` string, required: Free-text reason entered by the reviewer. Surface it to your operator; do not branch on its contents.
    - `resubmissionRequired` boolean, required: `true` when you can correct the submission and send fresh proof, `false` when the rejection is final.

## Acknowledgement `200`

Acknowledge receipt. Return any 2xx status code quickly. Response body is ignored.

## Other responses

- `400`: Bad Request, malformed payload, invalid/missing signature, etc. Afriex will retry delivery.
- `401`: Unauthorized, signature verification failed.

---

[API](https://skmtc.dev/afriex/apis/afriex-business-api.md) - [All operations](https://skmtc.dev/afriex/apis/afriex-business-api/llms.txt) - [OpenAPI document](https://skmtc.dev/afriex/apis/afriex-business-api/revisions/d94198b6c256?raw)
