Payment processing involves detecting incoming deposits, executing outbound transfers, and meeting compliance requirements. This solution covers deposit detection, stablecoin transfers, and compliance integration.
What you’ll need
- Wallets for receiving deposits
- Webhook endpoint for deposit notifications
- For regulated entities: travel rule integration
Deposit detection
Detect incoming transactions to your wallets using webhooks for real-time notifications or by querying wallet history.
Key considerations:
- Already confirmed - The
wallet.blockchainevent.detected webhook fires after Dfns’s confirmation delay per network
- Duplicate handling - Webhooks may be delivered multiple times; use idempotency
- Reconciliation - Run periodic jobs to catch any missed webhooks
Transfer execution
Process outbound transfers via the dashboard or API.
Stablecoin support
Stablecoins enable fast, low-cost international transfers. Consider:
- Network selection - Layer 2 networks (Polygon, Base) have lower fees
- Recipient compatibility - Ensure recipient can receive on your chosen network
- Compliance - Large transfers may require travel rule data
See how to send stablecoin transfers and the Notabene integration for travel rule.
Compliance integration
AML/KYT screening
Screen outbound transactions for sanctions and risk using Chainalysis integration. See the compliance solution and Chainalysis setup guide.
Travel rule
For transfers above regulatory thresholds, exchange originator and beneficiary information. See the Notabene integration.
Deposit sweeping
If you assign unique wallets to each customer or deposit, you’ll want to periodically sweep funds into a central treasury wallet. After detecting a deposit, create a transfer from the deposit wallet to your treasury:
You can sweep immediately after each deposit or batch sweeps on a schedule. For UTXO-based networks like Bitcoin, batching helps reduce fees by consolidating many small UTXOs into fewer outputs.
Deposit flow example
A typical deposit processing flow:
Since Dfns waits for the confirmation delay before firing the webhook, you can credit users immediately upon receiving the event.
Fiat off-ramp
After processing crypto payments, use Payouts to convert stablecoins to fiat bank deposits. Payouts supports USDC, USDT, and EURC across 94 countries and 63 currencies. See the developer guide for API integration.