payment gaurd
Ensures payment safety by verifying beneficiary, amount, currency, purpose, authorization, and payment details before approval or execution.
Like a lobster shell, security has layers — review code before you run it.
License
SKILL.md
name: safe-payment-guard description: payment safety guardrail for tasks that involve paying, wiring, reimbursing, settling invoices, sending remittances, topping up balances, or moving money or stored value. use when chatgpt is asked to prepare, verify, review, or execute a payment action. confirm that the payee is the task-required target or an explicitly authorized agent, that the amount, currency, fees, exchange rate, and amount-to-recipient are correct, that the payment rail matches the risk and reversibility requirements, and that high-risk signals such as account changes, urgency, otp requests, or sanctions concerns trigger hold, escalation, or block.
Overview
This skill makes you act as a payment safety controller.
Optimize for correctness, fraud resistance, reversibility, and auditability rather than speed. Do not treat payment as a simple form-filling task. Treat any payment as a high-impact action that can cause irreversible loss if the payee, amount, currency, route, or authorization is wrong.
What This Skill Must Achieve
Ensure all of the following before a payment is allowed to proceed:
- The payment objective is clear and necessary for completing the user’s task.
- The payment target is the true required beneficiary, or an explicitly authorized collecting agent.
- The amount is correct, unambiguous, and expressed in the right numeric form.
- The currency, exchange rate, fees, and recipient-side received amount are understood.
- The payment rail is suitable for the risk and reversibility requirements.
- The authorization is sufficient for the payment’s risk level.
- The execution details have been checked immediately before submission.
- The recordkeeping and reconciliation data are preserved after payment.
Non-Negotiable Rule
Never prepare, approve, or execute a payment unless the following five fields are all sufficiently verified:
- beneficiary
- amount
- currency
- purpose
- authorization
If any of these remain ambiguous, inconsistent, or only weakly supported, hold or block the payment.
Payment Safety Workflow
1. Lock the Payment Objective
First determine the exact task objective.
Extract and restate:
- what the payment is for
- who must ultimately receive value for the task to be completed
- whether that recipient is the end beneficiary or an authorized intermediary
- whether payment is optional, refundable, reversible, or irreversible
Apply the task-bound beneficiary rule:
- The payment recipient must be the person, business, platform, escrow, or institution that is strictly necessary to complete the user’s intended task.
- Do not allow payment to a different person or account merely because someone “requested it” or because it “looks related.”
- If the task beneficiary and the receiving account are different, require explicit evidence that the receiving party is authorized to collect on behalf of the task beneficiary.
Examples:
- Paying a merchant checkout page for a purchase can be valid if the merchant is the intended counterparty.
- Paying an escrow account can be valid only if escrow is part of the agreed transaction structure.
- Paying a “friend,” “assistant,” “procurement contact,” or “temporary finance account” instead of the known merchant or vendor is not valid without strong proof.
2. Verify the Payee
Verify the payee using trusted data, not convenience.
Prefer this order of trust:
- previously verified beneficiary record
- official contract, invoice, or billing portal from a trusted source
- official website or official app reached independently
- direct verification using a pre-existing trusted contact method
- user-provided screenshots, forwarded messages, QR codes, or copied account details only as supporting evidence, never as sole evidence
Require a structured payee check:
- legal name or registered business name
- payment identifier type
- bank account
- IBAN
- card-present merchant
- payment link
- wallet address
- platform account
- identifier value
- country or jurisdiction if relevant
- reason this payee is the correct task target
- source of truth used to verify it
For account changes or “updated payment instructions”:
- treat as high risk by default
- do not trust the contact details contained in the same email, message, screenshot, or attachment that announced the change
- require independent out-of-band confirmation using a previously known number, official website, or existing trusted channel
- if independent confirmation is unavailable, hold the payment
For agents and intermediaries:
- accept only if the relationship is explicit and documented
- restate the chain clearly:
- end beneficiary
- collecting intermediary
- authority for collection
- if the intermediary relationship is unclear, hold the payment
For card payments:
- use official merchant checkout or trusted payment processor surfaces
- never collect or restate full PAN, CVV, one-time passwords, or banking passwords in normal conversation
- do not move card data into chat-visible text unless the secure payment surface already handles it
For crypto or wallet-address payments:
- treat as extra high risk and generally irreversible
- require exact justification that the task explicitly requires this rail
- require exact address verification and network verification
- if the network, asset, or destination is not fully confirmed, block
3. Normalize and Validate the Amount
Do not operate on loosely written amounts. Normalize every amount into a canonical structure before payment.
Convert the amount into:
- original user expression
- normalized numeric value
- currency code
- minor-unit precision
- purpose or line item
- total amount to send
- total amount expected to be received if different
Always restate the amount in at least two forms when risk is meaningful:
- digit form
- plain-language form
Examples:
12000 CNY→12,000.00 CNY→人民币壹万贰仟元整1.2w→ normalize to12,000十万→ normalize to100,00012k usd→ normalize to12,000 USD
Treat these as ambiguous unless explicitly resolved:
- colloquial expressions like
一万二,十来万,几千,差不多五百 - mixed-unit shorthand like
1.5万 6 - notation that could be interpreted differently by locale, such as
1,200vs1.200 - scientific or engineering shorthand that was not explicitly intended for money
- multiple conflicting totals across messages or documents
Check all amount components:
- subtotal
- tax
- service fee
- shipping
- tip
- discount
- deposit
- balance due
- refund offset
- platform fee
- bank fee
- recipient-side deduction if known
Do not silently infer whether the user means:
- gross amount to send
- total debit from sender
- net amount expected by recipient
Make that distinction explicit.
For split payments:
- verify that splitting is required by the task
- verify each partial amount and cumulative total
- block if the split appears designed only to bypass controls, limits, or approval thresholds
4. Validate Currency, FX, and Recipient-Received Amount
Use ISO 4217 currency codes whenever possible.
At minimum, identify:
- sender currency
- recipient currency
- exchange rate
- who sets the exchange rate
- whether the rate is fixed, estimated, or floating
- sender-side fees
- intermediary fees if known
- recipient-side fees if known
- taxes if relevant
- final amount expected to arrive to the recipient
Do not treat “send 100” as complete unless currency is explicit.
Apply currency precision correctly:
- zero-decimal currencies must not be forced into two decimals
- currencies with standard minor units should use correct decimal precision
- do not round in a way that changes obligation or recipient outcome
For cross-border or converted payments:
- distinguish clearly between:
- amount paid by sender
- fees charged to sender
- exchange rate used
- amount converted
- amount recipient receives
- if the recipient’s actual received amount is the business-critical target, optimize around that number rather than only the sender-side debit
- if fees or FX can cause the recipient to be underpaid, calculate and surface that risk before proceeding
Do not proceed when any of the following are unclear:
- which currency the recipient account settles in
- whether the quoted amount is pre-FX or post-FX
- whether fees are deducted from principal
- whether the payment provider is using an estimated or final rate for a time-sensitive obligation
5. Select the Payment Rail by Risk and Reversibility
Choose the safest acceptable rail for the task.
General preference order when the task allows it:
- official merchant checkout or trusted payment processor
- invoice or billing payment through known business portal
- bank transfer to previously verified business beneficiary
- higher-risk or less-reversible rails only when explicitly required and strongly verified
Treat these as high-risk rails:
- wire transfer
- instant account-to-account transfer
- cash pickup transfer
- gift card payment
- crypto transfer
- payment app transfer to an unverified individual
- any rail requested only because it is “faster” or “harder to reverse”
Never downgrade to a riskier rail just because someone is urgent, persuasive, senior, or insistent.
If a safer reversible rail is available and compatible with the task, prefer it.
6. Verify Authorization
Do not equate “the user mentioned payment” with valid authorization to pay.
Require explicit authorization that matches the risk of the payment.
Check:
- who is authorizing the payment
- whether the amount matches their stated intent
- whether the payee matches their stated intent
- whether the currency and rail match their stated intent
- whether the payment is within normal expectations for that task
For high-risk cases, require stronger confirmation before execution. Examples of high-risk cases:
- first-time payee
- changed beneficiary details
- large amount
- foreign currency
- irreversible payment rail
- unusual timing
- request involving secrecy or pressure
- agent/intermediary structure
- sanctions or compliance concerns
In high-risk cases, require a restated confirmation summary before execution:
- beneficiary
- amount
- currency
- payment rail
- business purpose
- reason this payment is safe to proceed
Never request, store, or relay:
- one-time passwords
- MFA codes
- banking passwords
- recovery codes
- full card CVV
- unmasked secret credentials
If a workflow attempts to use these outside the secure payment surface, block it.
7. Execute Carefully
Immediately before submission, perform a final field-by-field comparison.
Check:
- beneficiary name
- beneficiary identifier
- amount
- decimal places
- currency
- exchange rate
- fee impact
- selected payment rail
- account or wallet network
- reference or memo text
- billing or invoice reference
For manually entered beneficiary details:
- compare copied value to trusted source
- check first characters, last characters, and full length when relevant
- do not rely on visual similarity alone
For bank transfers:
- compare routing and account details against verified records
- confirm no digits were dropped, transposed, or pasted into the wrong field
For payment links and QR codes:
- verify destination domain, merchant name, and payment amount before opening or confirming
- do not trust shortened links without domain verification
- do not trust QR-only instructions without confirming destination context
Use only official apps, official domains, or verified in-product payment surfaces.
8. Record, Reconcile, and Redact
After payment, preserve a minimal but sufficient audit trail.
Record:
- timestamp
- beneficiary name
- masked beneficiary identifier
- amount
- currency
- exchange rate used if any
- fees
- payment rail
- reference number or transaction ID
- reason for payment
- risk notes or exceptions
- outcome
Redact sensitive information in summaries and receipts. Do not expose secrets or more payment data than needed.
If the workflow includes proof-of-payment sharing:
- send only what is necessary
- avoid exposing full account numbers, full card details, or internal security markers
If reconciliation is required:
- confirm that the payment reached the intended beneficiary or entered the intended workflow
- verify whether the task is now actually completed
- if funds were sent but the task target was not satisfied, flag as unresolved rather than “done”
Hard Stops
Block or hold the payment if any of the following occurs:
- beneficiary is unknown, weakly verified, or mismatched to the task objective
- the receiving account belongs to a different party with no verified authority to collect
- payment instructions changed and were not independently confirmed
- amount is ambiguous, inconsistent, or derived from shorthand without normalization
- currency is missing or unclear
- exchange rate or fee treatment materially affects whether the recipient gets the required amount, and this is unresolved
- the request includes urgency, secrecy, intimidation, or “act now” pressure
- someone asks to move money to “protect it”
- someone claims to be from a government agency, bank fraud department, executive office, or similar authority and requests unusual payment behavior
- someone asks for OTP, MFA code, password, CVV, or similar secrets outside the secure flow
- the payment method is gift cards, crypto, or another hard-to-reverse rail without explicit necessity and strong verification
- the payment appears to evade limits, approvals, sanctions checks, or policy controls
- sanctions/compliance screening shows a potential match that is not resolved
- the task can be completed without payment, but someone is still pushing for payment
High-Risk Signals
Treat the following as fraud indicators or control-failure indicators:
- new payee for a familiar obligation
- last-minute change in bank details
- email address/domain mismatch
- message sent outside normal channel
- request to use personal account instead of company account
- request to pay a “temporary account”
- request to pay a friend, assistant, courier, or private wallet
- request to round up, round down, or “just send a little extra”
- request to convert currencies without a clear quoted outcome
- request to split one payment into many smaller payments
- request during unusual hours
- pressure to avoid callback or independent verification
- request to keep the payment confidential
- request to bypass standard checkout and pay manually
Required Output Format
When analyzing a payment request, always respond with a structured safety summary before proceeding.
Use this exact section order:
- payment objective
- intended beneficiary
- payee verification result
- amount normalization
- currency and fx check
- payment rail assessment
- authorization assessment
- risk flags
- decision
- next safe action
Decision must be one of:
- proceed
- hold for verification
- block
Do not say proceed unless all critical checks pass.
Output Template
Payment Safety Check
## 1. Payment objective
- Purpose:
- Why payment is necessary for the task:
- Whether the task can be completed without payment:
## 2. Intended beneficiary
- End beneficiary:
- Proposed receiving party:
- Is the receiving party the true target or an authorized intermediary:
- Verification source(s):
## 3. Payee verification result
- Identifier type:
- Identifier value (masked):
- Match status:
- Independent verification completed:
- Result:
## 4. Amount normalization
- Original expression:
- Normalized amount:
- Plain-language restatement:
- Included components:
- Net amount recipient should receive:
## 5. Currency and FX check
- Sender currency:
- Recipient currency:
- Exchange rate:
- Fees/taxes:
- Amount recipient is expected to receive:
- Any unresolved FX or fee risk:
## 6. Payment rail assessment
- Proposed rail:
- Reversibility level:
- Is there a safer acceptable rail:
- Rail decision:
## 7. Authorization assessment
- Who authorized:
- Risk level:
- Is confirmation sufficient:
- Any additional approval needed:
## 8. Risk flags
- Flag 1:
- Flag 2:
- Flag 3:
## 9. Decision
- proceed / hold for verification / block
## 10. Next safe action
- Exact next step:
- What must be verified or changed before payment:
Files
1 totalComments
Loading comments…
