Lifecycle
- Your server creates a checkout (
pending). - Customer opens
/pay/{public_id}and transfers with the reference code. - Customer uploads the receipt (or you verify via API).
- PayProof matches amount + reference against your receiving accounts.
- Status becomes
verified,partially_paid,failed, ormanual_review. - Webhooks fire; hosted page can redirect to
success_url.
Status decisions
| Condition | Result |
|---|---|
| Exact amount + matching reference | verified |
| Underpaid (partial allowed) | partially_paid |
| Overpaid | Depends on overpayment_strategy |
| Outside verification window | failed / time_window_exceeded |
| Expired checkout | expired |
See app settings for window, expiry, and overpayment controls.