Create Partner Webhook
This endpoint allows a partner to create and register a new webhook with the Netevia Banking API. By registering a webhook, the partner defines a destination URL and the category of events they want to be notified about. Once registered, the system will automatically POST event payloads to the specified URL whenever the subscribed event type occurs.
Endpoint
POST /api/Partners/webhooks
Authentication
Bearer token required. Obtain via:
POST https://api.banking.netevia.dev/api/auth/v2
Include in header: Authorization: Bearer {token}
Token lifetime: 10 minutes. Refresh via POST /api/auth/refresh.
When to use
Use this endpoint when your integration needs real-time, event-driven updates from the Netevia platform — for example, alerting your system when a payment card is authorized, an ACH transfer completes, or a profile is locked. Webhooks eliminate the need for polling and allow your backend to react immediately to banking events. This is typically called once during onboarding or whenever a new event subscription is needed.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | A descriptive label for the webhook. Must be between 1 and 50 characters. |
url | string (uri) | Yes | The fully qualified HTTPS URL where webhook event payloads will be delivered. |
notificationType | string (enum) | Yes | The event category to subscribe to. See allowed values below. |
Allowed values for notificationType:
| Value | Description |
|---|---|
ApplicationStatus | Notifications when an application status changes. |
PaymentCardStatus | Notifications when a payment card status changes (e.g., activated, suspended). |
PaymentCardAuthorization | Notifications for payment card authorization events. |
Ach | Notifications for inbound ACH transactions. |
AChOut | Notifications for outbound ACH transactions. |
InternalTransfers | Notifications for internal transfer events between accounts. |
Fee | Notifications when a fee is assessed on an account. |
LockUnlockProfile | Notifications when a customer profile is locked or unlocked. |
{
"name": "Card Authorization Alerts",
"url": "https://partner.example.com/webhooks/card-auth",
"notificationType": "PaymentCardAuthorization"
}Response
200 OK
The webhook was successfully created. The response body confirms creation (specific fields may vary based on server implementation).
{
"success": true
}Error Codes
| Code | When it happens |
|---|---|
| 400 | Missing required fields, name exceeds 50 characters, or URL format is invalid |
| 401 | Token missing, expired, or invalid |
| 403 | Insufficient permissions to register webhooks for this partner |
| 409 | A webhook with the same URL and notification type already exists |
| 500 | Internal server error while creating the webhook |
Common Mistakes
- Providing an invalid or non-HTTPS URL for the
urlfield — the platform recommends HTTPS endpoints and will reject malformed URIs. - Using a free-form string for
notificationTypeinstead of one of the exact enum values (e.g., sending"transaction.created"instead of"PaymentCardAuthorization"). - Exceeding the 50-character limit for the
namefield, which will result in a 400 validation error. - Attempting to register a duplicate webhook with the same
urlandnotificationTypecombination, which returns a 409 Conflict.
Related Endpoints
GET /api/Partners/webhooks— Retrieve a list of all registered webhooks for the partnerDELETE /api/Partners/webhooks/{webhookId}— Remove a registered webhook by IDPUT /api/Partners/webhooks/{webhookId}— Update an existing webhook's URL, name, or notification type
Example
curl -X POST https://api.banking.netevia.dev/api/Partners/webhooks \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Card Authorization Alerts",
"url": "https://partner.example.com/webhooks/card-auth",
"notificationType": "PaymentCardAuthorization"
}' 200Success
