Automated payments let you process transfers programmatically while maintaining human oversight through policy-based approvals. This solution covers service account setup, payout workflows, and high-volume considerations.
What you’ll need
Service account
A service account provides machine identity for automated operations. Grant minimal permissions for payout operations. See the service account guide and API reference.
Never grant approval permissions to service accounts. Keep automation and approval authority separate.
Payout policies
Configure policies that control when automated payouts need human review:
- Small payouts - May auto-approve with velocity limits for protection
- Large payouts - Require human approval above threshold
- Unknown recipients - Require approval for addresses not in whitelist
See how to create policies and process approvals.
Webhooks
Configure webhooks to track payout status in real-time:
wallet.transfer.broadcasted - Transaction sent to network
wallet.transfer.confirmed - Transaction confirmed
wallet.transfer.failed - Transaction failed
policy.approval.pending - Approval needed
See how to configure webhooks and the event reference.
Transfer execution
Execute transfers via the API with your service account credentials. See how to create transfers and monitor status.
Policy evaluation flow
When a payout is initiated, policies evaluate the transaction:
Example configurations
Standard payout workflow
| Policy | Configuration | Action |
|---|
| Velocity limit | $100k/day | Block (safety cap) |
| Large payouts | >$10k | Require 1-of-2 approval |
| New recipients | Not in whitelist | Require approval |
High-volume operations
For payment processors with high transaction volume:
| Policy | Configuration | Action |
|---|
| Very large payouts | >$500k | Require 2-of-3 approval |
| Hourly cap | $2M/hour | Block |
| Frequency limit | >1000 tx/hour | Block |
High-volume considerations
Rate limits
Dfns API has rate limits to ensure fair usage. For high-volume operations:
- Check rate limits documentation for current values
- Implement queuing and backoff strategies
- Contact support if you need higher limits
Multiple hot wallets
Distribute load across multiple wallets for:
- Higher throughput
- Balance management
- Risk distribution
Reliability
Build reliability into your payout system:
- Use idempotency keys to prevent duplicates
- Implement retry logic with exponential backoff
- Set up monitoring and alerting