Skip to main content

Reconcile operations without webhooks

The public API has no Perflo webhook route because the pinned contracts define no signed delivery format. The scheduler polls operation state through provider reads, and PFR-008 remains the request for signed webhooks.

Poll customer operations

List recent work with GET /v1/operations. If an operation has action_required, open its exact trusted URL without an opener and call POST /v1/operations/{operation_id}/approval/poll after poll_after_ms. Repeated approval polling is idempotent. It can enqueue the existing operation once, but it cannot create another payment. Continue reading the operation until it reaches succeeded, failed, indeterminate, or cancelled.

Handle uncertainty

Do not submit another mutation when an operation is indeterminate. The worker can reconcile transfers through transaction lookup, card actions through card reads, and revocations through grant listing. Missing or ambiguous evidence requires operator review.

Add signed webhooks later

PFR-008 requests signed, replay-protected, versioned events with stable identifiers and retry rules. A future webhook receiver can schedule the same read-only reconciliation. It must never resubmit a financial write from an event.