Prove that the refund transaction succeeded at the gateway. A Refund record does not prove money movement. This level proves the SUCCESS status on the refund transaction with the requested amount.
| Fact | Value |
|---|---|
| Contract id | shopify.refund.financially_completed |
| Version | 1.0.0 |
| Hash | 183f55df6169b4e5 |
| Completion level | financially_completed |
| Publisher | Built and signed by Provely. |
| Certification | Provisional |
| Skill | Shopify Admin API 0.1.0 |
| Valid for provider API versions | 2025-07 |
What is the intent?
Return the amount to the customer.
What is the subject and the action?
| Member | Value |
|---|---|
| Subject type | shopify.refund |
| Canonical effect | money.refund |
| Provider operation | mutation refundCreate |
| Idempotency | not stated |
Which false successes give CONTRADICTED?
- duplicate side effect
- partial completion
- pre existing state
- wrong amount
- wrong subject
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?
shopify.graphql#/mutations/refundCreate: shopify.graphql, retrieved 2026-09-05shopify.docs.refunds#refunds-in-the-admin-graphql-api/refund-objects-and-money-movement/p1: shopify.docs.refunds, retrieved 2026-09-05shopify.docs.refunds#refunds-in-the-admin-graphql-api/refund-objects-and-money-movement/p2: shopify.docs.refunds, retrieved 2026-09-05shopify.docs.refunds#refunds-in-the-admin-graphql-api/refund-objects-and-money-movement/p4: shopify.docs.refunds, retrieved 2026-09-05shopify.graphql#/types/Refund/fields/createdAt: shopify.graphql, retrieved 2026-09-05shopify.graphql#/enums/OrderTransactionStatus/values/SUCCESS: shopify.graphql, retrieved 2026-09-05shopify.graphql#/types/OrderTransaction/fields/status: shopify.graphql, retrieved 2026-09-05shopify.graphql#/enums/OrderTransactionKind/values/REFUND: shopify.graphql, retrieved 2026-09-05shopify.graphql#/types/OrderTransaction/fields/kind: shopify.graphql, retrieved 2026-09-05shopify.graphql#/types/OrderTransaction/fields/amountSet: shopify.graphql, retrieved 2026-09-05shopify.graphql#/inputs/OrderTransactionInput/fields/amount: shopify.graphql, retrieved 2026-09-05
Can shopify.refund.financially_completed 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 Shopify Admin API.
What happens after the timeout?
The verdict is UNVERIFIABLE. The operation goes to a person for review.