@extends('layouts.public') @section('title', 'Webhooks - FinAegis Developer Documentation') @section('seo') @include('partials.seo', [ 'title' => 'Webhooks - FinAegis Developer Documentation', 'description' => 'FinAegis Webhooks - Real-time event notifications for your application. Get instant updates on transactions, accounts, and workflows.', 'keywords' => 'FinAegis, webhooks, real-time, notifications, API, events', ]) @endsection @push('styles') @endpush @section('content')
Real-time Event System

Webhooks

Real-time notifications for account events, transaction updates, and workflow completions delivered directly to your application.

How Webhooks Work

Never miss an important event. Get instant HTTP POST notifications when things happen in your FinAegis account.

@php $steps = [ ['icon' => 'M13 10V3L4 14h7v7l9-11h-7z', 'color' => 'yellow', 'title' => 'Event Occurs', 'description' => 'Transaction completes or account changes'], ['icon' => 'M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z', 'color' => 'orange', 'title' => 'Webhook Triggered', 'description' => 'Event queued for delivery'], ['icon' => 'M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z', 'color' => 'red', 'title' => 'POST Request Sent', 'description' => 'Secure HTTPS delivery to your endpoint'], ['icon' => 'M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z', 'color' => 'green', 'title' => 'You Respond', 'description' => 'Process event and return 200 OK'] ]; @endphp @foreach($steps as $index => $step)
@if($index === 0)
@endif

{{ $step['title'] }}

{{ $step['description'] }}

@endforeach

Quick Setup

curl -X POST https://api.finaegis.org/v2/webhooks \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{"url": "https://yourapp.com/webhooks", "events": ["*"]}'

Available Events

Subscribe to exactly what you need

@php $eventCategories = [ [ 'title' => 'Account Events', 'icon' => 'M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z', 'color' => 'blue', 'events' => [ ['name' => 'account.created', 'desc' => 'New account opened'], ['name' => 'account.updated', 'desc' => 'Account details changed'], ['name' => 'account.balance_updated', 'desc' => 'Balance changed'], ['name' => 'account.frozen', 'desc' => 'Account frozen'], ['name' => 'account.unfrozen', 'desc' => 'Account unfrozen'], ['name' => 'account.closed', 'desc' => 'Account closed'] ] ], [ 'title' => 'Transfer Events', 'icon' => 'M8 7h12m0 0l-4-4m4 4l-4 4m0 6H4m0 0l4 4m-4-4l4-4', 'color' => 'green', 'events' => [ ['name' => 'transfer.created', 'desc' => 'Transfer initiated'], ['name' => 'transfer.pending', 'desc' => 'Transfer processing'], ['name' => 'transfer.completed', 'desc' => 'Transfer successful'], ['name' => 'transfer.failed', 'desc' => 'Transfer failed'], ['name' => 'transfer.reversed', 'desc' => 'Transfer reversed'], ['name' => 'transfer.expired', 'desc' => 'Transfer expired'] ] ], [ 'title' => 'Workflow Events', 'icon' => 'M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2', 'color' => 'purple', 'events' => [ ['name' => 'workflow.started', 'desc' => 'Workflow initiated'], ['name' => 'workflow.step_completed', 'desc' => 'Step finished'], ['name' => 'workflow.completed', 'desc' => 'Workflow finished'], ['name' => 'workflow.failed', 'desc' => 'Workflow failed'], ['name' => 'workflow.timeout', 'desc' => 'Workflow timed out'], ['name' => 'workflow.compensation_executed', 'desc' => 'Rollback completed'] ] ], [ 'title' => 'System Events', 'icon' => 'M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z', 'color' => 'yellow', 'events' => [ ['name' => 'system.maintenance_start', 'desc' => 'Maintenance begins'], ['name' => 'system.maintenance_end', 'desc' => 'Maintenance ends'], ['name' => 'system.rate_limit_warning', 'desc' => 'Approaching rate limit'], ['name' => 'system.api_key_expiring', 'desc' => 'API key expiring soon'], ['name' => 'system.security_alert', 'desc' => 'Security event detected'], ['name' => 'system.status_change', 'desc' => 'System status changed'] ] ], [ 'title' => 'CrossChain Events', 'icon' => 'M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1', 'color' => 'cyan', 'events' => [ ['name' => 'bridge.initiated', 'desc' => 'Cross-chain bridge transfer started'], ['name' => 'bridge.completed', 'desc' => 'Bridge transfer confirmed on destination chain'], ['name' => 'bridge.failed', 'desc' => 'Bridge transfer failed or timed out'], ['name' => 'swap.completed', 'desc' => 'Cross-chain token swap completed'] ] ], [ 'title' => 'DeFi Events', 'icon' => 'M13 7h8m0 0v8m0-8l-8 8-4-4-6 6', 'color' => 'emerald', 'events' => [ ['name' => 'position.opened', 'desc' => 'DeFi position opened (lending, staking, LP)'], ['name' => 'position.closed', 'desc' => 'DeFi position closed and funds returned'], ['name' => 'position.liquidation_warning', 'desc' => 'Position approaching liquidation threshold'], ['name' => 'yield.harvested', 'desc' => 'Yield rewards harvested from protocol'] ] ], [ 'title' => 'RegTech Events', 'icon' => 'M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z', 'color' => 'rose', 'events' => [ ['name' => 'compliance.report.generated', 'desc' => 'MiFID II or MiCA compliance report ready'], ['name' => 'compliance.violation.detected', 'desc' => 'Regulatory compliance violation detected'], ['name' => 'travel_rule.check.completed', 'desc' => 'Travel Rule verification completed'] ] ], [ 'title' => 'Mobile Payment Events', 'icon' => 'M12 18h.01M8 21h8a2 2 0 002-2V5a2 2 0 00-2-2H8a2 2 0 00-2 2v14a2 2 0 002 2z', 'color' => 'violet', 'events' => [ ['name' => 'payment_intent.created', 'desc' => 'New payment intent initialized'], ['name' => 'payment_intent.completed', 'desc' => 'Payment intent successfully fulfilled'], ['name' => 'payment_intent.expired', 'desc' => 'Payment intent expired without completion'] ] ], [ 'title' => 'Partner BaaS Events', 'icon' => 'M21 13.255A23.931 23.931 0 0112 15c-3.183 0-6.22-.62-9-1.745M16 6V4a2 2 0 00-2-2h-4a2 2 0 00-2 2v2m4 6h.01M5 20h14a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z', 'color' => 'amber', 'events' => [ ['name' => 'partner.onboarded', 'desc' => 'New BaaS partner onboarding completed'], ['name' => 'sdk.generated', 'desc' => 'Partner SDK build generated and ready'], ['name' => 'widget.deployed', 'desc' => 'Embedded widget deployed to production'] ] ] ]; @endphp @foreach($eventCategories as $category)

{{ $category['title'] }}

@foreach($category['events'] as $event)
{{ $event['name'] }} {{ $event['desc'] }}
@endforeach
@endforeach

Implementation Guide

Get up and running in minutes

Complete Code Examples Available

We have comprehensive webhook implementation examples with signature verification, error handling, and idempotency patterns ready for you to use.

View Webhook Examples

Ready to receive real-time events?

Set up your first webhook in minutes

@endsection @push('scripts') @endpush