Create a webhook
Webhooks
Create Webhook
Register a new webhook endpoint to receive events from your business. POST /webhooks. Requires webhooks:write scope.
POST
Create a webhook
Overview
Registers a new webhook endpoint for your business. The endpoint will receive HTTP POST requests from FYATU whenever the subscribed events occur. Your endpoint must respond with HTTP2xx within 30 seconds.
The response includes a secret field at the top level containing the raw webhook signing secret. This is shown exactly once — store it securely in an environment variable. It cannot be retrieved again; if lost, delete the webhook and create a new one.
Request Body
| Field | Type | Required | Constraint | Description |
|---|---|---|---|---|
url | string | Yes | https:// required for LIVE | Your endpoint URL |
events | array | Yes | 1–20 event types | List of event types to subscribe to |
description | string | No | Max 255 chars | Internal label for this endpoint |
Available Events
Subscribe to one or more events from this list: Account events:ACCOUNT_LOW_BALANCE, ACCOUNT_WITHDRAWAL_INITIATED, ACCOUNT_WITHDRAWAL_COMPLETED, ACCOUNT_WITHDRAWAL_FAILED
Billing events: BILLING_INVOICE_CREATED, BILLING_INVOICE_PAID, BILLING_INVOICE_OVERDUE, BILLING_DEPOSIT_DETECTED, BILLING_DEPOSIT_CONFIRMED
Cardholder events: CARDHOLDER_CREATED, CARDHOLDER_SUSPENDED, CARDHOLDER_REACTIVATED, CARDHOLDER_DELETED, CARDHOLDER_KYC_APPROVED, CARDHOLDER_KYC_REJECTED
Card events: CARD_ISSUED, CARD_FROZEN, CARD_UNFROZEN, CARD_TERMINATED, CARD_FUNDED, CARD_UNLOADED, CARD_FUND_FAILED, CARD_UNLOAD_FAILED, CARD_3DS_OTP, CARD_TOKENIZATION_OTP, CARD_AUTHORIZATION
Transaction events: TRANSACTION_AUTHORIZED, TRANSACTION_CLEARED, TRANSACTION_REVERSED, TRANSACTION_DECLINED, TRANSACTION_FEE
Example
Success Response (201)
Error Codes
| Code | HTTP | Cause |
|---|---|---|
WEBHOOK_LIMIT_REACHED | 422 | Maximum of 10 webhook endpoints per environment |
WEBHOOK_HTTPS_REQUIRED | 422 | LIVE environment requires an https:// URL |
INVALID_EVENT_TYPE | 422 | One or more event types in events are not recognised |
VALIDATION_ERROR | 422 | Missing or invalid fields |
INSUFFICIENT_SCOPE | 403 | Key lacks webhooks:write scope |
Authorizations
API key from the FYATU CaaS portal. Pass as Authorization: Bearer <key>.
Body
application/json
Example:
"https://yourapp.com/webhooks/fyatu"
Required array length:
1 - 20 elementsAvailable options:
CARD_ISSUED, CARD_FROZEN, CARD_UNFROZEN, CARD_TERMINATED, CARD_FUNDED, CARD_UNLOADED, CARD_FUND_FAILED, CARD_UNLOAD_FAILED, CARDHOLDER_CREATED, CARDHOLDER_UPDATED, CARDHOLDER_SUSPENDED, CARDHOLDER_REACTIVATED, CARDHOLDER_TERMINATED, CARDHOLDER_KYC_SUBMITTED, CARDHOLDER_KYC_SUBMISSION_FAILED, CARDHOLDER_KYC_APPROVED, CARDHOLDER_KYC_REJECTED, CARDHOLDER_KYC_REVIEW_PENDING, PROGRAM_CREATED, PROGRAM_PAUSED, PROGRAM_RESUMED, PROGRAM_CLOSED, PROGRAM_BALANCE_LOW, PROGRAM_BALANCE_FUNDED, PROGRAM_WITHDRAWAL_INITIATED, PROGRAM_WITHDRAWAL_COMPLETED, PROGRAM_WITHDRAWAL_FAILED, TRANSACTION_AUTHORIZED, TRANSACTION_CLEARED, TRANSACTION_REVERSED, TRANSACTION_DECLINED, TRANSACTION_FEE, BILLING_INVOICE_CREATED, BILLING_INVOICE_PAID, BILLING_INVOICE_OVERDUE, BILLING_DEPOSIT_DETECTED, BILLING_DEPOSIT_CONFIRMED Example:
[
"CARD_ISSUED",
"CARD_FUNDED",
"TRANSACTION_AUTHORIZED",
"TRANSACTION_DECLINED"
]Example:
"Production card events"
Response
Webhook created. The secret is at the top level alongside data — returned once only.
The secret field is a top-level sibling of data — not nested inside it. It is returned exactly once.

