Skip to content

Webhooks ​

Looking for partner Card webhooks?

Subscribing to partner Card webhooks with your API token? See Partner Card API → Webhook subscriptions. This page covers a different system: inbound callbacks Agio receives from providers (BitGo / Auth0 / Sumsub) plus internal database/cron triggers, not partner outbound deliveries.

The Agio Platform uses an event-driven architecture. Webhooks fall into three categories: external service callbacks (from third-party providers), database event triggers (fired by Hasura when rows change), and cron triggers (scheduled jobs).

Authentication ​

CategoryAuth Mechanism
External (BitGo)Payload signature verification (HMAC)
External (Agio Card)Payload signature verification
External (Sumsub)Payload signature verification (HMAC-SHA1)
External (Auth0)IP allowlist
Database event triggersx-agio-api-token header (platform admin secret)
Cron triggersx-agio-api-token header (platform admin secret)

External Service Webhooks ​

These endpoints receive callbacks from third-party services. Each service signs its payloads using a service-specific scheme.

POST /webhooks/on-insert-bitgo-webhook-payload-transaction ​

Receives transaction notifications from BitGo. Payloads are signed using BitGo's webhook signature scheme.

  • Auth: BitGo HMAC signature
  • Triggers: Wallet balance updates, transaction confirmations, pending approval notifications

Example payload:

json
{
  "hash": "0xabc123...",
  "transfer": "txid_abc123",
  "coin": "eth",
  "type": "transfer",
  "state": "confirmed",
  "walletId": "wallet_abc123"
}

POST /webhooks/on-card-webhook ​

Receives card and payment events from Agio Cards.

  • Auth: Agio Card payload signature
  • Triggers: Card status changes, transaction authorizations, settlements, card spend events

Example payload:

json
{
  "eventType": "TRANSACTION_AUTHORIZED",
  "cardId": "card_abc123",
  "amount": 150.0,
  "currency": "USD",
  "merchantName": "Example Merchant",
  "timestamp": "2026-03-23T10:30:00Z"
}

POST /webhooks/on-sumsub-webhook-payload ​

Receives KYC/AML verification events from Sumsub.

  • Auth: HMAC-SHA1 signature in x-payload-digest header
  • Triggers: Applicant review status changes, document verification results

See the KYC Webhook Data page for full field reference and status codes.

Example payload:

json
{
  "applicantId": "5cb744200a975a67ed1798a4",
  "inspectionId": "5cb744200a975a67ed1798a5",
  "externalUserId": "auth0|abc123",
  "type": "applicantReviewed",
  "reviewStatus": "completed",
  "reviewResult": {
    "reviewAnswer": "GREEN"
  },
  "createdAt": "2026-03-23T10:30:00+0000"
}

POST /webhooks/on-auth0-log-streams ​

Receives authentication log events from Auth0 Log Streams.

  • Auth: IP allowlist (Auth0 egress IPs only)
  • Triggers: Login events, failed authentication attempts, password changes, MFA events

Example payload:

json
{
  "log_id": "90020260323...",
  "data": {
    "type": "s",
    "connection": "Username-Password-Authentication",
    "user_id": "auth0|abc123",
    "ip": "203.0.113.42"
  }
}

Database Event Webhooks ​

These endpoints are called by Hasura event triggers when database rows are inserted, updated, or deleted. All require the x-agio-api-token header.

INFO

Database event webhooks are internal to the platform. They are documented here for completeness but are not intended for external consumption.

User Lifecycle ​

EndpointTriggerDescription
POST /webhooks/on-user-insertINSERT on userProvisions default wallets, sends welcome email
POST /webhooks/on-user-deleteDELETE on userCleans up associated resources

KYC ​

EndpointTriggerDescription
POST /webhooks/on-kyc-profile-updateUPDATE on kyc_profileSyncs verification status, triggers downstream checks

Trading ​

EndpointTriggerDescription
POST /webhooks/on-trade-request-updateUPDATE on trade_requestProcesses trade state transitions
POST /webhooks/on-trade-settlement-updateUPDATE on trade_settlementFinalizes settlements, updates balances

Wallets ​

EndpointTriggerDescription
POST /webhooks/on-digital-wallet-updateUPDATE on digital_walletSyncs wallet metadata changes

Transactions ​

EndpointTriggerDescription
POST /webhooks/on-asset-transaction-insertINSERT on asset_transactionTriggers notifications, updates balances

Invoicing ​

EndpointTriggerDescription
POST /webhooks/on-invoice-payment-insertINSERT on invoice_paymentMarks invoices paid, sends receipt
POST /webhooks/on-invoice-reminderScheduledSends payment reminders for overdue invoices

Cards ​

EndpointTriggerDescription
POST /webhooks/on-card-reminderScheduledSends card expiry and balance reminders

Fiat Operations ​

EndpointTriggerDescription
POST /webhooks/on-fiat-deposit-request-updateUPDATE on fiat_deposit_requestProcesses deposit state transitions
POST /webhooks/on-fiat-withdrawal-request-updateUPDATE on fiat_withdrawal_requestProcesses withdrawal state transitions

Cron Triggers ​

Scheduled jobs executed at fixed intervals via Hasura cron triggers. All require the x-agio-api-token header.

JobScheduleDescription
Coin price syncEvery 15 minFetches latest prices from exchanges and aggregators
Currency rate syncEvery 15 minUpdates fiat currency exchange rates
Midnight jobsDaily 00:00 UTCPortfolio snapshots, report generation, cleanup
Reaper jobsEvery 6 hoursWebhook health checks, stale data reconciliation
Webhooks has loaded