{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"12. Automatic Refund for Abnormal Payments"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"12-automatic-refund-for-abnormal-payments","__idx":0},"children":["12. Automatic Refund for Abnormal Payments"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Infini can automatically refund underpayments, overpayments, and late payments that meet the configured rules. When enabled, eligible crypto payments are refunded on-chain after address confirmation, and merchants receive transaction-level webhook notifications for the final result."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Automatic refund is ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["off by default"]},". Normal paid-order aggregation and settlement stay unchanged when the feature is disabled."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"121-when-automatic-refund-applies","__idx":1},"children":["12.1 When Automatic Refund Applies"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Scenario"},"children":["Scenario"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Behavior"},"children":["Behavior"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Underpayment"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["After the order expires, remaining paid amount that cannot complete the order may be refunded."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Overpayment"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Amount paid above the order value may be refunded (subject to gas and quote-buffer rules)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Late payment"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A payment received after the order is already final may be refunded if it still falls inside the confirmation window."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Automatic refund does ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not"]}," change:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Normal paid-order payment aggregation"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Normal merchant settlement timing or amount for successfully completed orders"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Existing wrong-currency / abnormal-repay handling outside this flow"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"122-merchant-configuration","__idx":2},"children":["12.2 Merchant Configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Configure automatic refund in the merchant console under ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Exceptions"]},":"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Setting"},"children":["Setting"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Settle paid orders only"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Master switch. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["unchecked"]}," (default): legacy behavior, no automatic refunds. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["checked"]},": eligible underpay / overpay / late payments enter the automatic refund flow."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Refund address confirmation period"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Days the payer has to submit a refund address after order expiration. Range ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["30–90"]},", default ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["30"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Underpayment reminders"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether Infini sends underpayment reminder emails to the payer."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Configuration changes apply to unfinished orders immediately. An already-created refund’s confirmation deadline keeps the value written at creation time."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"123-refund-address-confirmation","__idx":3},"children":["12.3 Refund Address Confirmation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Infini emails the payer a one-time claim link to submit a refund address on the same network/currency."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Confirmation deadline starts from the original order ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["expires_at"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Email retries do ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not"]}," extend the deadline."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If the payer does not submit a valid address before the deadline, the refund becomes ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["unclaimed"]}," and the amount is settled to the merchant instead of being refunded on-chain."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"124-amount-gas-and-settlement-notes","__idx":4},"children":["12.4 Amount, Gas, and Settlement Notes"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Refunds are calculated in the original paid token."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A network-level fixed gas fee (denominated in USD/USDC and converted with the payment’s arrival rate snapshot) is deducted from the refund principal. The payer receives ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["received_amount = refund_amount - gas_fee"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If the aggregated refund value is not greater than the network gas threshold, Infini does ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not"]}," create an automatic refund record and does ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not"]}," send ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["auto_refund.*"]}," webhooks; the amount is settled to the merchant."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Amounts occupied by an in-progress or completed automatic refund are excluded from normal merchant settlement for that payment principal."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Unclaimed refunds flip to merchant settlement after the confirmation deadline."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"125-merchant-integration-checklist","__idx":5},"children":["12.5 Merchant Integration Checklist"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enable automatic refund in ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Payment Exceptions"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refund_confirmation_period_days"]}," (30–90)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Subscribe webhook endpoints to:",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["auto_refund.completed"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["auto_refund.unclaimed"]}]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Handle both events idempotently with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-Webhook-Event-Id"]}," / payload ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event_id"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use order / payment detail views in the merchant console for operational follow-up; webhook payloads remain the integration source of truth for automation."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/en/7-webhook"},"children":["Webhook"]}," for event payload fields and examples."]}]},"headings":[{"value":"12. Automatic Refund for Abnormal Payments","id":"12-automatic-refund-for-abnormal-payments","depth":2},{"value":"12.1 When Automatic Refund Applies","id":"121-when-automatic-refund-applies","depth":3},{"value":"12.2 Merchant Configuration","id":"122-merchant-configuration","depth":3},{"value":"12.3 Refund Address Confirmation","id":"123-refund-address-confirmation","depth":3},{"value":"12.4 Amount, Gas, and Settlement Notes","id":"124-amount-gas-and-settlement-notes","depth":3},{"value":"12.5 Merchant Integration Checklist","id":"125-merchant-integration-checklist","depth":3}],"frontmatter":{"seo":{"title":"12. Automatic Refund for Abnormal Payments"}},"lastModified":"2026-08-12T06:23:51.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/en/12-automatic-refund","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}