Webhooks

Pool Deposit Events

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 section for verification instructions.

postWebhookpool_deposit_request.events

Payload

idstring 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

createdAtstring 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.

Example payload

{
  "id": "8f14e45f-ceea-4e7a-9f1d-6b1c2a3d4e5f",
  "event": "POOL_DEPOSIT_REQUEST.REJECTED",
  "createdAt": "2026-04-24T09:13:33.883Z",
  "data": {
    "transactionId": "69528240ba52c13b669fb239",
    "reference": "pool-account-reference",
    "amount": 5000,
    "currency": "NGN",
    "rejectionReason": "Sender name does not match the submitted proof",
    "resubmissionRequired": true
  }
}

Response

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

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.