Prove that PayPal holds a refund of the intended captured payment. The refund exists with the intended amount and currency, and an event ties it to the intended captured payment. It proves no money went back.
| Fact | Value |
|---|---|
| Contract id | paypal.refund.recorded |
| Version | 1.0.0 |
| Hash | 7d45cbc2d30f5005 |
| Completion level | refund_recorded |
| Publisher | Built and signed by Provely. |
| Certification | Provisional |
| Skill | PayPal REST API 0.1.0 |
| Valid for provider API versions | v2 |
What is the intent?
Refund the captured payment to the payer.
What is the subject and the action?
| Member | Value |
|---|---|
| Subject type | paypal.refund |
| Canonical effect | money.refund |
| Provider operation | POST /v2/payments/captures/{capture_id}/refund |
| Idempotency | idempotency_key through PayPal-Request-Id, retry is safe |
Which false successes give CONTRADICTED?
- duplicate side effect
- pre existing state
- wrong amount
The signed contract states the exact conditions, the evidence and the timing. The runtime reads them. The page states the promise.
Where do these rules come from?
paypal.payments.openapi#/paths/~1v2~1payments~1captures~1{capture_id}~1refund/post: paypal.payments.openapi, retrieved 2026-09-08paypal.payments.openapi#/paths/~1v2~1payments~1captures~1{capture_id}~1refund/post/responses/201: paypal.payments.openapi, retrieved 2026-09-08paypal.docs.refunds#refunds/refund-a-captured-payment: paypal.docs.refunds, retrieved 2026-09-08paypal.docs.refunds#refunds/a-pending-refund: paypal.docs.refunds, retrieved 2026-09-08paypal.payments.openapi#/components/schemas/refund: paypal.payments.openapi, retrieved 2026-09-08paypal.payments.openapi#/paths/~1v2~1payments~1refunds~1{refund_id}/get/responses/200: paypal.payments.openapi, retrieved 2026-09-08paypal.payments.openapi#/components/schemas/money/properties/value: paypal.payments.openapi, retrieved 2026-09-08paypal.payments.openapi#/components/schemas/money/properties/currency_code: paypal.payments.openapi, retrieved 2026-09-08paypal.payments.openapi#/components/schemas/activity_timestamps/properties/create_time: paypal.payments.openapi, retrieved 2026-09-08paypal.events#/events/PAYMENT.CAPTURE.REFUNDED: paypal.events, retrieved 2026-09-08paypal.docs.refunds#refunds/events: paypal.docs.refunds, retrieved 2026-09-08paypal.docs.refunds#refunds/the-status-of-the-capture-after-a-refund: paypal.docs.refunds, retrieved 2026-09-08
Can paypal.refund.recorded return VERIFIED from the action response alone?
No. The action response is E1, and an acknowledgement is never terminal success. The contract needs evidence of level E2 or higher from PayPal REST API.
What happens after the timeout?
The verdict is UNVERIFIABLE. The operation goes to a person for review.