PaygateDeveloper documentation
403payments.separation_of_dutiespaymentsRule R14

The principal who requested a refund cannot decide it

A refund is requested by one principal and approved or rejected by another. This is not configurable, and it is enforced on the identity of the caller, not on a role: an approver who also requested this refund is refused for this refund only.

Why the API refuses

WHEN ApproveRefund or RejectRefund is executed by the principal recorded as requested_by, THE SYSTEM SHALL reject it.

What to do

Route the decision to a different person. If your integration approves refunds with an API key, that key must not be the one that requested them — issue a second key, or do the requesting from the key and the deciding from the dashboard. Building a single "refund now" button on top of both calls will fail here every time.

Operations that can return it