Prepare a digital-service refund from payment evidence
Reconcile a support request with the exact charge, prior refunds and policy before preparing an authorized refund action.
How this works
Use this when support must translate a customer’s refund request into an exact payment action. AI reads the request and policy; payment records establish which charge exists, what has already been refunded and the remaining refundable balance.
This workflow covers digital charges rather than physical-item return inspection. Keep cancellation, service access changes and refunding money separate. A polite support answer is not proof that funds moved, and a repeated request must not produce a second refund.
Before you start
Refund authority
Provide the effective policy, permitted amounts, exception owner and action permissions for the support role.
Payment evidence
Ensure the processor exposes charge IDs, currency, settlement state, prior refunds and disputes for the authorized account.
Prepare the inputs
- support_request
- Required
Ticket or email with stable ID
Confirm the requester is entitled to discuss the account; retain the original wording.
- charge_history
- Required
Processor export or authorized lookup
Include successful, pending and failed refunds, not only the original payment.
- refund_policy
- Required
Versioned decision rules
Record eligible products, time windows and exception handling.
Implementation, step by step
Resolve the account and charge
- Match the request to the correct account using approved identity procedures. Retrieve candidate charges from the processor or timestamped local export.
- Require an explicit charge ID before preparing a payment action. Similar amounts or customer names alone are insufficient when multiple purchases exist.
Checkpoint: The refund packet refers to one verified account and charge.
Reconcile payment state
- Check settlement, currency, charge amount, prior refunds, pending refund attempts and dispute status. Calculate the remaining refundable amount deterministically.
- Distinguish a failed attempt from a pending outcome. Preserve processor transaction references so retries can be reconciled rather than repeated blindly.
Checkpoint: The available balance and unresolved transactions are explicit.
Apply the approved policy
- Compare purchase timing, service terms and the stated reason with the current policy. Separate eligibility facts from requested goodwill exceptions.
- If the policy requires usage evidence, retrieve only relevant fields. Do not infer misuse, intent or customer credibility from writing style.
Checkpoint: The recommendation identifies its policy basis and any exception owner.
Prepare the action packet
- Specify charge ID, exact amount, currency, reason, policy version and approval status. Draft a customer response that accurately describes the current stage.
- Bind any approval to that exact packet and a single-use request key. Changes to the amount or charge require renewed validation within existing authority.
Checkpoint: A reviewer can approve a specific action without hidden parameters.
Execute only when authorized and verify
- If the task authorizes the approved refund, refresh charge state and submit once with a stable idempotency key. Otherwise return the packet as a draft.
- Read the processor receipt and report succeeded, pending or failed accurately. Reconcile unknown outcomes before retries; cancellation or access changes require their own scope.
Checkpoint: The customer-facing status is backed by a processor record or remains pending.
Decisions along the way
A prior refund is pending
Hold new execution and reconcile the existing attempt first.
The requested amount exceeds the available balance
Show the computed maximum and route the discrepancy rather than changing currency or splitting attempts.
What you will produce
refund-review.json
JSONA precise payment action packet.
Include: ticket_id · account_id · charge_id · amount · currency · prior_refunds · policy · approval · request_key
refund-receipt.md
MarkdownA reconciled outcome and support response draft.
Include: request_key · processor_id · status · verified_at · customer_draft
Check the result
- Recalculate the refundable balance including partial refunds.
- Check approval matches the exact charge, currency and amount.
- Ensure pending outcomes never appear as completed refunds.
When something goes wrong
Processor lookup is unavailable
Prepare a missing-evidence hold; do not claim the balance is zero.
Submission times out
Look up the request key before any retry.
A worked example
SYNTHETIC EXAMPLE · NOT A REPORTED BUSINESS RESULT
Request
Synthetic: review a subscription refund.
Inputs
A settled charge is 100 USD. A successful 30 USD refund already exists, and the customer requests the full original amount.
Expected result
The packet shows a maximum remaining balance of 70 USD, flags the mismatch, and does not submit a 100 USD refund.
Run a small pilot
Start small
Pilot draft-only review on historical full, partial and duplicate requests.
Record the baseline
Measure amount corrections, false eligibility and handling time.
Agree success criteria
Require exact financial reconciliation and no duplicate action in test runs.
Stop or revise
Stop execution when identity, policy version or transaction state is unknown.
Keep the scope clear
- Payment actions require existing explicit authorization for the account and amount.
- A refund does not automatically cancel the subscription or revoke access.
Check before using
Support verifies identity and policy; the authorized finance owner approves exceptions.
Business activities
- Resolve customer questions
- Manage finances and accounting
FROM A RECIPE TO YOUR WORKFLOW
Bring the company context together.
This workflow needs reliable inputs before it needs a better prompt. Moat8 Vault brings working information into a readable archive for the AI tools you use.
For this recipe: Refund request · Payment records · Refund policy · Account identity
Start with one recurring task, agree which sources to use, and review the first result with your team.
Discuss this workflow