Fireblocks Integration
Connect your Fireblocks workspace to Corsa to automatically sync vault accounts, wallets, and transactions into a unified compliance view.
What Does the Integration Do?
Once connected, Corsa continuously syncs data from your Fireblocks workspace:
| Fireblocks Data | Corsa Entity | Description |
|---|---|---|
| Vault Accounts | Corporate Clients | Each Fireblocks vault account is mapped to a Corsa corporate client with its name, ID, and customer reference. |
| Deposit Addresses | Blockchain Wallets | Every deposit address across your vault assets becomes a tracked blockchain wallet in Corsa. |
| Transactions | Deposits & Withdrawals | Incoming and outgoing transactions are mapped to Corsa deposit and withdrawal operations with full metadata. |
What Gets Synced
- Vault accounts — name, vault ID, customer reference ID, and all associated assets.
- Wallets — blockchain address, chain, associated vault, and asset type.
- Transactions — transaction hash, status, sub-status, amount, source/destination addresses, timestamps, operation type, and notes.
Real-Time Updates via Webhooks
In addition to periodic polling, the integration listens for Fireblocks webhook events for near real-time updates:
| Event | What Happens |
|---|---|
transaction.created | New transaction is synced into Corsa immediately. |
transaction.status.updated | Transaction status/confirmation changes are reflected in Corsa. |
vault_account.created | New vault accounts are automatically created as corporate clients. |
vault_account.asset.added | New asset wallets and deposit addresses are synced. |
Setup Guide
Prerequisites
- A Fireblocks workspace with Admin or Non-Signing Admin access.
- Access to Corsa's Settings > Integrations page.
Step 1 — Create the Integration in Corsa
- Navigate to Settings > Developers > Integrations in the Corsa dashboard.
- Select Fireblocks from the available integrations.
- Optionally configure the polling interval (how often Corsa syncs data from Fireblocks, in minutes). The default is 10 minutes.
- Click Create.
Corsa will generate:
- A Certificate Signing Request (CSR) — needed to create an API user in Fireblocks.
- A Webhook URL — the endpoint Fireblocks will send events to.
- A list of webhook events — the events to enable in Fireblocks.
Step 2 — Create an API User in Fireblocks
- In the Corsa integration setup screen, download or copy the CSR file.
- Open the Fireblocks Console.
- Go to Settings > Users > API Users.
- Click Add API User.
- Give the API user a name (e.g.,
Corsa Integration). - Upload the CSR file from Corsa.
- Set the role to Viewer (required for full vault and transaction access).
- Complete the API user creation.
- Copy the API User ID (also called API Key) that Fireblocks provides.
Step 3 — Configure Webhooks in Fireblocks
- In the Fireblocks Console, go to Settings > Webhooks.
- Click Add Webhook.
- Paste the Webhook URL provided by Corsa.
- Enable the following events:
transaction.createdtransaction.status.updatedvault_account.created(appears under wallets)vault_account.asset.added(appears under wallets)
- Save the webhook configuration.
Step 4 — Complete Setup in Corsa
- Return to the Corsa integration setup screen.
- Enter the Fireblocks API User ID (from Step 2).
- Click Complete Setup.
The integration status will change to Active and the first data sync will begin automatically.
How It Works
Data Sync
Once active, the integration performs two types of syncs:
- Partial sync — Runs on the configured polling interval (default: every 10 minutes). Fetches only changes since the last sync.
- Full sync — Can be triggered manually. Re-syncs all vault accounts, wallets, and transactions.
During each sync, the service:
- Fetches vault accounts from Fireblocks and creates/updates corporate clients in Corsa.
- Fetches deposit addresses for each vault asset and creates/updates blockchain wallets.
- Fetches recent transactions and creates/updates deposit and withdrawal records.
Webhook Processing
Webhook events are processed in near real-time. When Fireblocks sends an event:
- The webhook signature is validated (RSA-SHA512 or JWKS-based verification).
- The event is routed to the Fireblocks integration service.
- The relevant data (transaction, vault, or wallet) is fetched from Fireblocks and synced to Corsa.
Entity Mapping
Vault Accounts → Corporate Clients:
- Each vault account becomes a corporate client in Corsa.
- If a
customerRefIdis set on the vault in Fireblocks, it is preserved and used for correlation. - Custom fields include the Fireblocks vault ID and vault name.
Deposit Addresses → Blockchain Wallets:
- Each deposit address is tracked as a blockchain wallet.
- The wallet is associated with the corporate client that owns the vault.
- Chain detection is automatic based on the Fireblocks asset type.
Transactions → Deposits & Withdrawals:
- Incoming transfers to your vaults are mapped as deposits.
- Outgoing transfers from your vaults are mapped as withdrawals.
- Transaction metadata (status, sub-status, operation type, hash, notes) is preserved as custom fields.
Configuration Options
| Setting | Description | Default |
|---|---|---|
| Polling Interval | How often Corsa pulls data from Fireblocks (minutes). | 10 minutes |
The polling interval can be updated at any time from the integration settings page.
Security
- API credentials are securely stored encrypted and never exposed in the Corsa UI after setup.
- Webhook signatures are cryptographically verified on every incoming event using Fireblocks' public keys.
- CSR-based authentication ensures the private key never leaves Corsa's infrastructure — only the CSR (public) is shared with Fireblocks.
- All communication with Fireblocks uses HTTPS/TLS.
Troubleshooting
Integration status is stuck on "Pending Setup"
Make sure you've completed all four setup steps, including entering the Fireblocks API User ID and clicking Complete Setup in Corsa.
Data is not syncing
- Verify the integration status is Active in Corsa.
- Check that the Fireblocks API user has proper role permissions.
- Ensure the API user is not disabled or expired in the Fireblocks Console.
Webhooks are not being received
- Confirm the webhook URL in Fireblocks matches the one provided by Corsa exactly.
- Verify all four required event types are enabled in the Fireblocks webhook configuration.
- Check that the webhook is not paused or disabled in the Fireblocks Console.
Missing vaults or wallets
- Vault accounts and wallets are synced during periodic polling. Wait for the next sync cycle or trigger a manual full sync.
- Ensure the vault accounts are not hidden in Fireblocks.
Transactions not appearing
- Only transactions involving your vault accounts are synced (not external wallet transfers).
- Transactions in very early states may appear after subsequent status updates.
- For immediate visibility, ensure webhooks are properly configured.
Updated about 6 hours ago