Prerequisites
{{aggregator_id}}and{{secret_key}}- Validated beneficiary account details (IBAN or alias)
- Webhook endpoint for status updates
Flow overview
Validate beneficiary
Run
GET /title-fetch or GET /account-info before submitting the payout.Initiate payout
Call
POST /v1/aggregators/{{aggregator_id}}/payout with an idempotent request_id, the beneficiary details, and the amount.Await webhook
Safepay pushes status updates to your webhook endpoint. Polling is optional but recommended as a safety net.
Webhook events to expect
Use the webhooks delivery guide for the full event catalog and signature verification. Settlement-related events are emitted as batch processing progresses.Status reference
| Status | Description | Recommended action |
|---|---|---|
P_INITIATED | Safepay accepted the payout request and queued it for processing. | Display “processing” in dashboards. |
P_RECEIVED | Beneficiary bank is validating the transfer. | No action; continue waiting. |
P_SETTLED | Funds reached the beneficiary. | Mark payouts complete and notify recipients. |
P_FAILED | The payout could not be delivered (invalid account, compliance block, insufficient balance). | Investigate failure reason, fix data, and retry with same request_id if appropriate. |
Operational best practices
- Webhook reliability: Implement exponential backoff retries if your webhook endpoint experiences downtime.
- Dual controls: Require two-person review for high-value payouts before calling the API.
- Ledger reconciliation: Store the
trace_referenceandrequest_idto match Safepay webhooks with internal ledger entries. - Incident response: Alert operators automatically when a payout remains in
P_RECEIVEDbeyond your SLA or entersP_FAILED.