iBanFirst · AsyncAPI Specification
Ibanfirst Webhooks
Version
View Spec
View on GitHub
CompanyFintech InsurtechCross-Border PaymentsForeign ExchangeB2B PaymentsTreasurymulti-currency-accountsSwiftSEPAPSD2Open Bankingcurrency-risk-managementWebhookMCPBelgiumEuropeAsyncAPIWebhooksEvents
AsyncAPI Specification
generated: '2026-08-17'
method: searched
source: https://docs.ibanfirst.com/api/clientapi/webhook-subscriptions
spec_type: Webhooks
asyncapi_published: false
asyncapi_note: >-
iBanFirst publishes NO AsyncAPI document. /asyncapi.yaml and /asyncapi.json were not served on
the docs host, the docs portal's only machine-readable spec is the REST OpenAPI
(_spec/api/ClientAPI.json|yaml), and the GitHub organisation github.com/iBanFirst has zero
public repositories. The event surface is real but it is only described in prose and in the REST
operations that manage subscriptions - it is captured here as a webhook catalog rather than
fabricated as an AsyncAPI.
surface:
kind: outbound HTTP webhooks
managed_via: iBanFirst REST API (openapi/ibanfirst-clientapi-openapi.yml)
introduced: 1.4.0 (2025-12-19, payment events); trade events added in 1.6.0 (2026-03-19)
docs: https://docs.ibanfirst.com/api/clientapi/webhook-subscriptions
max_active_subscriptions: 10
ordering: not guaranteed - "Notifications may arrive out of order."
management_operations:
- method: POST
path: /webhooks
summary: Create webhook subscription
- method: GET
path: /webhooks
summary: Get webhook subscriptions list
- method: GET
path: /webhooks/{webhookId}
summary: Get webhook subscription details
- method: PATCH
path: /webhooks/{webhookId}
summary: Update webhook subscription
- method: DELETE
path: /webhooks/{webhookId}
summary: Cancel webhook subscription
- method: POST
path: /webhooks/{webhookId}/rotate-secret
summary: Rotate secret
- method: GET
path: /webhooks/{webhookId}/failed-notifications
summary: Get failed notifications
events:
payment:
- PAYMENT_CREATED
- PAYMENT_PLANIFIED
- PAYMENT_FINALIZED
- PAYMENT_WAITING_SIGNATURE
- PAYMENT_AWAITING_CONFIRMATION
- PAYMENT_CANCELED
- PAYMENT_BLOCKED
- PAYMENT_WAITING_JUSTIFICATION
- PAYMENT_INCOMING
trade:
- TRADE_PLANIFIED
- TRADE_FINALIZED
- TRADE_CANCELED
- TRADE_BLOCKED
event_count: 13
events_source: components.schemas.events enum in openapi/ibanfirst-clientapi-openapi.yml
payload:
schema: notificationContent
shape:
event: event label that triggered the notification
payload: >-
The full object - identical to the body of "Get payment details" or "Get trade details" for
the corresponding resource.
webhookId: the subscription that produced the notification
content_type: application/json
security:
signature:
header: x-ibanfirst-signature
timestamp_header: x-ibanfirst-timestamp
algorithm: HMAC-SHA256
signed_message: '{x-ibanfirst-timestamp}.{raw request body}'
secret: >-
The subscription secret, 32-64 alphanumeric characters, returned when the subscription is
created; rotatable via POST /webhooks/{webhookId}/rotate-secret.
verification_rule: >-
"reject the notification if the signatures do not match" - compare against the RAW body,
before any JSON re-serialisation.
replay_protection: >-
The timestamp is part of the signed message, so a receiver can bound acceptable clock skew.
No explicit tolerance window is published.
delivery:
retry_on: [400, 500]
retries: 2
total_attempts: 3
retry_delay_seconds: 60
failure_log:
operation: 'GET /webhooks/{webhookId}/failed-notifications'
schema: webhookFailedNotification
fields:
- id
- notificationContent
- errorMessage
- httpStatusCode
- failedAt
- retryCount
note: >-
Three attempts over roughly two minutes is a short envelope for a payments event. A receiver
that is down for more than ~2 minutes loses the notification and must reconcile by polling
GET /payments/{status} or GET /trades/_{status}.
streaming:
present: false
note: No SSE, WebSocket, Kafka, or message-queue surface is published.
gaps:
- No AsyncAPI document.
- No per-event payload schema in the machine-readable contract (payload is described by reference to the REST detail operations).
- No documented signature tolerance window.
- No dead-letter or manual redelivery operation - failures can be listed but not replayed.
x-evidence:
fetched: '2026-08-17'
probes:
- url: https://docs.ibanfirst.com/api/clientapi/webhook-subscriptions
http_status: 200
- url: https://docs.ibanfirst.com/_spec/api/ClientAPI.yaml
http_status: 200
- url: https://api.github.com/orgs/ibanfirst/repos
http_status: 200
note: zero public repositories