Afriex · AsyncAPI Specification
Afriex Business Webhooks
Version
View Spec
View on GitHub
PaymentsRemittancesCross-Border PaymentsFintechFinancial ServicesForeign ExchangeMobile MoneyMoney TransferAfricaStablecoinsVirtual AccountsWebhookA2AAsyncAPIEvents
AsyncAPI Specification
generated: '2026-09-12'
method: searched
source: openapi/afriex-business-openapi-original.json (OpenAPI 3.1 webhooks block) + https://docs.afriex.com/api-reference/endpoint/webhooks/introduction
spec_type: OpenAPI-3.1-webhooks
asyncapi_published: false
note: 'Afriex publishes no AsyncAPI document — /asyncapi.yaml and /asyncapi.json were not served on any
host and the docs index names no event spec. It does, however, describe its event surface machine-readably
inside the OpenAPI 3.1 contract itself, using the top-level webhooks block: five webhook channels, each
a real operation with a typed request body, plus a WebhookEventName enum of ten event names. That is
a genuine machine-readable event contract, so this artifact captures it verbatim from the spec rather
than deriving a fabricated AsyncAPI from prose. The Webhooks pointer is emitted; no AsyncAPI pointer
is, because no AsyncAPI document exists.'
transport: https-webhook-push
channels:
- channel: customer.events
operation_id: customerWebhookEvent
summary: Customer Events
description: 'Afriex delivers real-time notifications to your configured webhook URL whenever a customer
is **created**, **updated**, or **deleted**.
The payload structure is **identical** across all events. Only the `event` field changes.
**Security**: Every request includes an `x-webhook-signature` header. You **must** verify this signature
using Afriex''s public key before processing. See the [Webhooks Over'
payload_media_type:
- application/json
- channel: payment_method.events
operation_id: paymentMethodWebhookEvent
summary: Payment Method Events
description: 'Afriex delivers real-time notifications to your configured webhook URL whenever a payment
method is **created**, **updated**, or **deleted** for a customer.
The payload structure is **identical** across all events. Only the `event` field changes.
**Security**: Every request includes an `x-webhook-signature` header. You **must** verify this signature
using Afriex''s public key before processing. S'
payload_media_type:
- application/json
- channel: transaction.events
operation_id: transactionWebhookEvent
summary: Transaction Events
description: 'Afriex sends real-time webhook notifications to your configured URL whenever a transaction
is **created** or **updated**.
- `TRANSACTION.CREATED`: Fired when a new transaction is initiated.
- `TRANSACTION.UPDATED`: Fired when the transaction status or other fields change (most commonly `status`
and `updatedAt`).
The payload structure is **identical** for both events. Only the `event` field and p'
payload_media_type:
- application/json
- channel: checkout_session.events
operation_id: checkoutSessionWebhookEvent
summary: Checkout Session Events
description: 'Afriex delivers a webhook to your configured URL when a hosted checkout session is created.
Checkout sessions are currently available in the sandbox/staging environment only.
**Security**: Every request includes an `x-webhook-signature` header. You **must** verify this signature
using Afriex''s public key before processing. See the [Webhooks Overview & Security](https://docs.afriex.com/api-referen'
payload_media_type:
- application/json
- channel: pool_deposit_request.events
operation_id: poolDepositRequestWebhookEvent
summary: Pool Deposit Events
description: '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/trigg'
payload_media_type:
- application/json
events:
- name: CUSTOMER.CREATED
resource: CUSTOMER
- name: CUSTOMER.UPDATED
resource: CUSTOMER
- name: CUSTOMER.DELETED
resource: CUSTOMER
- name: PAYMENT_METHOD.CREATED
resource: PAYMENT_METHOD
- name: PAYMENT_METHOD.UPDATED
resource: PAYMENT_METHOD
- name: PAYMENT_METHOD.DELETED
resource: PAYMENT_METHOD
- name: TRANSACTION.CREATED
resource: TRANSACTION
- name: TRANSACTION.UPDATED
resource: TRANSACTION
- name: CHECKOUT_SESSION.CREATED
resource: CHECKOUT_SESSION
- name: POOL_DEPOSIT_REQUEST.REJECTED
resource: POOL_DEPOSIT_REQUEST
event_count: 10
security:
signature_header: x-webhook-signature
algorithm: RSA-SHA256
encoding: base64
signed_data: raw request body bytes
key_source: Dashboard -> Developers -> Webhooks
key_note: Staging and production use different public keys.
verification_guidance: Verify against raw bytes, never parsed JSON.
delivery:
ack_status: 200 (or any 2xx)
ack_budget_seconds: 30
failure_response: Return 400 or 401 on signature verification failure.
retries: 12
backoff: 30s, 1m, 2m, 4m, 8m, 16m, 32m, 1h, 2h, 4h, 8h, 16h
source_ips:
sandbox: 34.234.189.210
production: 34.197.33.100
firewall_note: Inbound allowlisting of the Afriex source IPs is required or deliveries are blocked.
configuration:
where: Dashboard -> Developers -> Webhooks
subscription_api: null
subscription_note: Webhook endpoints are configured in the dashboard UI only. There is no API operation
to register, list, update or delete a webhook subscription, so an agent cannot provision its own callback
— a human must do it once in the console. triggerWebhook (sandbox) fires a test delivery but does
not manage subscriptions.
testing:
operation: triggerWebhook
http: POST /api/v1/webhooks/trigger
scope: sandbox/staging only
docs: https://docs.afriex.com/api-reference/endpoint/webhooks/introduction
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/afriex-business-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.