Documentation

​
​

Development

User Acquisition

Monetization

Industry

In-App Purchasing

IAP Client API

IAP SDK API

Webshop Admin API

Webshop Client API

In-App Purchasing

LiveOps
​
​
Get started
  • Overview
  • Introduction to IAP
  • What's new in IAP v5.4
  • Upgrade from IAP v4 to v5
  • AI skill for In-App Purchasing
Direct to Consumer (D2C) payments
  • Direct to Consumer (D2C) payment providers
    • Integrate D2C payment providers workflow
    • Initiate a purchase
    • Refunds and disputes for D2C payments
    • Currencies and exchange rates for D2C payments
    • Comply with Apple and Google external purchase requirements
    • Deep link Success URL example
Webshop
  • Overview
  • Get started with webshops
  • Webshop setup
  • Catalog and payments
  • Game integration for webshops
  • Troubleshooting webshops
Platform-native stores
  • Set up IAP for platform-native stores
  • Codeless IAP
Catalogs and store management
  • Create product catalogs
  • Supported stores
Purchases
  • Purchase management and fulfillment
Monitor IAP performance
  • Overview
  • IAP revenue performance
  • D2C performance
Privacy
  • Privacy and consent
  1. Unity In-App Purchasing
  2. Direct-to-Consumer (D2C) payment providers

Refunds and disputes for D2C payments

Understand who handles refunds, chargebacks, and player billing support for Direct-to-Consumer payments, and how Unity IAP reports them to your game.
Read time 7 minutes
Last updated a day ago

When you sell through a Direct-to-Consumer (D2C) payment provider, that provider acts as the merchant of record (MoR). The MoR owns refunds, chargeback disputes, and player billing support, so you run those processes through your provider's dashboard or API rather than through Unity.
Unity In-App Purchasing (IAP) keeps order state in sync and tells your game what happened. It reports refunds and dispute outcomes as order webhook events, and it revokes the order itself in one case only: a dispute the player wins.
This page explains the division of responsibilities, how refunds and disputes each reach your game, where player support requests go, and where to monitor refund and dispute volume. For the setup that these processes build on, refer to Integrate D2C payment providers workflow.

Division of responsibilities

Process

Who handles it

What Unity IAP does

Issuing and processing refundsYour payment provider, as MoRSends
order.updated
with the refunded amount. Doesn't revoke entitlements.
Resolving chargebacks and disputesYour payment provider, as MoRRevokes the order and sends
order.revoked
when the player wins a dispute.
Player billing and transaction supportYour payment provider, as MoRNothing. You can look up an individual order through the Orders API.
Tax compliance and fraud preventionYour payment provider, as MoRNothing.
Revoking entitlements that Unity IAP managesYouRemoves the entitlement from the player when you set the order to
revoked
.
Revoking entitlements that your own backend managesYouSends the webhook events that your own systems act on.
Reporting external transactions to Apple and GoogleYouReturns the transaction tokens you attached to the order.
Where the entitlement itself lives depends on how you fulfill purchases. If Unity IAP manages entitlements, setting an order to the
revoked
status removes the entitlement from the player. If your own backend manages entitlements, the status change only records what your backend already did. Refer to Fulfill purchases.
Unity doesn't act as merchant of record and doesn't contact players on your behalf. For the related platform compliance responsibilities, refer to Comply with Apple and Google external purchase requirements.

Refunds

A refund returns a payment to the player. Refunds originate on the seller side, and either you or your provider can start one:
  • You issue a refund through your provider's dashboard or API.
  • Your provider's support team issues a refund on a player's behalf, after the player contacts them directly.
When your provider processes a refund, Unity IAP sends an
order.updated
event. The
refundedAmountMicros
field in
data.total
carries the current total refunded amount, which is smaller than
amountMicros
for a partial refund.
Important
Unity IAP doesn't automatically revoke entitlements when a refund occurs. To act on a refund, listen for
order.updated
and compare
refundedAmountMicros
against
amountMicros
in
data.total
. What you do next depends on whether the refund is full or partial.
For a full refund, where
refundedAmountMicros
equals
amountMicros
, remove what the player received:
  • If Unity IAP manages entitlements for your game, update the order to the
    revoked
    status, which removes the entitlement from the player.
  • If your own backend manages entitlements, revoke the entitlement in your system, then update the order to
    revoked
    so that Unity IAP order tracking matches your entitlement state.
For a partial refund, where
refundedAmountMicros
is smaller than
amountMicros
, decide what the player keeps according to your own policy. Set the order to
revoked
only when you intend to remove the whole purchase, because a
revoked
order can't move to another status.
This behavior differs from disputes, where Unity IAP revokes the order for you. Refer to Disputes and chargebacks.
Refund capabilities differ by provider:
  • Stripe: issue refunds from the Stripe Dashboard or the API, in full or in part. Players can also request a refund from Onelink support, and Stripe can refund a transaction within 60 days of the original payment. If Stripe asks you for product-specific input on a support request and you don't reply within 48 hours, Stripe might issue the refund without your approval. Refer to Refunds and cancellations and Refund support.
  • Coda: issue refunds by calling the
    createRefund
    endpoint. Coda supports full refunds only, accepts them for completed payments only, and requires approval before it enables the refund API on your account. Refer to Refund a payment.
Note
Because Coda supports full refunds only, expect
refundedAmountMicros
to match the full order total for a Coda refund. Partial refunds apply to Stripe transactions.

Disputes and chargebacks

A dispute, also called a chargeback, is a player-initiated reversal. The player contacts their bank or card issuer, which reverses the payment and asks the merchant of record to respond.
Because your payment provider is the merchant of record, the provider responds to the dispute on your behalf. You don't have to gather evidence or correspond with the card network.
When a dispute closes and the player wins, Unity IAP automatically revokes the order and sends an
order.revoked
event. If Unity IAP manages entitlements, the revoked order removes the entitlement from the player, so handle the event only to remove what you granted outside Unity IAP, such as soft currency in your own economy. If your own backend manages entitlements, handle the event by removing the entitlement or currency you granted for the original purchase.
Provider dispute handling differs:
  • Stripe: with Managed Payments, Stripe reviews each dispute through automated and manual processes and submits evidence for you without asking you for more. If Stripe judges that you're unlikely to win, it might accept the dispute instead of countering it. You can still view disputes in the Stripe Dashboard and accept or counter them yourself, but an evidence submission fee applies when you counter a dispute yourself, and every received dispute incurs a dispute received fee. Refer to Dispute support and Disputes and fraud.
  • Coda: Coda handles fraud disputes as part of its MoR service. Coda doesn't publish dispute documentation, so contact Coda for the details that apply to your account.

Player support

Billing and transaction questions belong to your payment provider. These include receipts, unrecognized charges, failed payments, and refund requests.
  • Stripe: Managed Payments handles payment and subscription support requests through Onelink support. Players manage their order history, subscriptions, and payment methods on the Onelink site, and Stripe sends receipts, invoices, and refund notifications to players directly. Keep the support email address in your Stripe business settings up to date, because Stripe uses it for support escalations.
  • Coda: Coda provides transaction support for the payments it processes. Contact Coda for the support routing that applies to your account.
Note
With Stripe Managed Payments, players see Onelink as the merchant of record, and their bank statement shows
LINK.COM*
followed by your statement descriptor. Players who don't recognize that descriptor are a common source of support contacts and disputes, so consider naming it in your own support material.
You remain responsible for support questions about your game: which entitlements a player owns, and the in-game consequences of a refund or revocation. To investigate an individual order, call the Orders API
GET
endpoint
with the order ID. The response returns the order status, its line items, and the
fulfilledAt
and
revokedAt
timestamps.

Monitor refunds and disputes

The Unity Dashboard reports refund and dispute volume alongside the rest of your D2C activity:
  • The Refunds & disputes metric and the Refunds & disputes by provider chart on the D2C Performance page. Refer to D2C Performance reference.
  • The Activity Type dimension on the Revenue Performance page, which separates purchases, refunds, and chargebacks. Refer to Revenue Performance reference.

Copyright © 2026 Unity Technologies
LegalPrivacy PolicyCookiesDocumentation Terms of UseDo Not Sell or Share My Personal InformationYour Privacy Choices (Cookie Settings)

"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S and elsewhere (more info here). Other names or brands are trademarks of their respective owners.

Some pages are machine-translated for convenience, and may contain inaccuracies. In the event of conflicting information, the English version is authoritative.

  • On this page
    • Division of responsibilities

    • Refunds

    • Disputes and chargebacks

    • Player support

    • Monitor refunds and disputes

  • Additional resources
  • Stripe: Refunds and cancellations
  • Stripe: Disputes and fraud
  • Stripe: Managed Payments dispute support
  • Coda: Refund a payment

Report a problem with this page