# Refusion i App Store: hvad udvikleren ser

> Refusion i App Store: Apple beslutter alene. Udvikleren får CONSUMPTION_REQUEST, kan svare inden for 12 timer og får beslutningen via REFUND.

Original side: [Refusion i App Store: hvad udvikleren ser](https://devoria.fr/da/blog/refusion-app-store-hvad-udvikleren-ser)
Forfatter: [Mehdi Azizi](https://devoria.fr/da/mehdi-azizi)
Udgivet: 2026-11-04
Indhold senest revideret: 2026-11-04


På App Store er **det Apple, der giver eller afviser en refusion, aldrig udvikleren.** Kunden sender sin anmodning på Apples website eller fra din app. Hvis du har sat Apples servernotifikationer op, får du en `CONSUMPTION_REQUEST`-notifikation, når anmodningen kommer ind, og derefter `REFUND` eller `REFUND_DECLINED`, når beslutningen er truffet. Ind imellem har du 12 timer til at sende forbrugsdata og din præference, forudsat at kunden har givet samtykke.

En godkendt refusion fjerner købet fra kundens aktive rettigheder og vises som negativ i dine salgsrapporter. Denne guide gennemgår hvert trin, hvad du kan sende til Apple, og hvad du må gøre mod misbrug af refusioner. Reglerne kommer fra Apples sider, gennemlæst den 3. november 2026. Den konkrete sag kommer fra en alarm, jeg satte op på mine apps i oktober.

## Hvem beslutter en refusion i App Store?

Apple, og kun Apple. [Apples supportside](https://support.apple.com/en-us/118223) beskriver kundens forløb: kunden logger ind på reportaproblem.apple.com, vælger "Request a refund", angiver en årsag og derefter det pågældende køb. Apple beder kunden vente 24 til 48 timer på svar.

Kunden kan også anmode om refusion fra din app. StoreKit har [et anmodningsark](https://developer.apple.com/documentation/storekit/transaction/beginrefundrequest%28in%3A%29-9k0pj) til det, tilgængeligt siden iOS 15. Apple anbefaler at åbne det fra kontoindstillingerne eller en hjælpemenu. Det viser købet og en liste over årsager, og Apple bruger op til 48 timer på at beslutte.

**I begge tilfælde skal du ikke godkende noget.** Du kan kun give oplysninger og en præference, som indgår blandt flere kriterier i Apples beslutning.

## Hvad hver part ser, trin for trin

| Trin                 | Kundens side                        | Udviklerens side                                          |
| -------------------- | ----------------------------------- | --------------------------------------------------------- |
| Anmodning            | Apples formular eller arket i appen | Notifikationen `CONSUMPTION_REQUEST`                      |
| Inden for 12 timer   | Venter                              | Mulighed for at sende forbrugsdata                        |
| Inden for 48 timer   | Svar fra Apple                      | Notifikationen `REFUND` eller `REFUND_DECLINED`           |
| Efter en godkendelse | Pengene tilbage på betalingsmidlet  | Købet fjernet fra aktive rettigheder, negative enheder    |
| Efter en indsigelse  | Refusionen annulleret af Apple      | Notifikationen `REFUND_REVERSED`, adgang skal genoprettes |

App Store Connect viser dig kun refusioner, der allerede er givet, under Sales and Trends. **Selve anmodningen kommer kun via servernotifikationerne.** Uden dem opdager du refusionen bagefter.

## Servernotifikationerne ved en refusion

[App Store Server Notifications V2](https://developer.apple.com/documentation/appstoreservernotifications/notificationtype) sender fem typer, der er relevante her. Du modtager dem på den HTTPS-adresse, du har angivet i App Store Connect, én til produktion og én til sandbox.

| Notifikation          | Hvad den melder                                            | Hvad du gør                                   |
| --------------------- | ---------------------------------------------------------- | --------------------------------------------- |
| `CONSUMPTION_REQUEST` | Kunden anmoder om refusion                                 | Svar inden for 12 timer, hvis der er samtykke |
| `REFUND`              | Apple har refunderet transaktionen                         | Fjern det refunderede indhold eller adgang    |
| `REFUND_DECLINED`     | Apple har afvist anmodningen                               | Intet, adgangen fortsætter                    |
| `REFUND_REVERSED`     | Apple annullerer en refusion efter kundens indsigelse      | Genopret det, du havde fjernet                |
| `REVOKE`              | Et køb delt via Familiedeling er ikke længere tilgængeligt | Fjern familiemedlemmets adgang                |

Din server skal svare med en HTTP-kode mellem 200 og 206. Ifølge [siden om svar på notifikationer](https://developer.apple.com/documentation/appstoreservernotifications/responding-to-app-store-server-notifications) prøver Apple ellers igen fem gange, 1, 12, 24, 48 og 72 timer efter forrige forsøg. I sandbox sender Apple kun én gang.

## Consumption API: hvad du kan fortælle Apple

Når anmodningen kommer, kan du svare med [Send Consumption Information](https://developer.apple.com/documentation/appstoreserverapi/send-consumption-information). Reglen står i én sætning fra Apple: "Respond within 12 hours of receiving the `CONSUMPTION_REQUEST` notification." Version 2 af API'et gælder for alle produkttyper, også abonnementer.

Felterne i [anmodningen](https://developer.apple.com/documentation/appstoreserverapi/consumptionrequest):

| Felt                    | Påkrævet | Hvad det fortæller Apple                                               |
| ----------------------- | -------- | ---------------------------------------------------------------------- |
| `customerConsented`     | Ja       | Kunden har givet samtykke til deling af sine data                      |
| `deliveryStatus`        | Ja       | Købet er leveret og virker, eller hvorfor det ikke er                  |
| `sampleContentProvided` | Ja       | En prøveperiode, et uddrag eller en beskrivelse blev tilbudt før købet |
| `consumptionPercentage` | Nej      | Den forbrugte andel, fra 0 til 100.000 for 0 til 100 %                 |
| `refundPreference`      | Nej      | Din præference: `DECLINE`, `GRANT_FULL` eller `GRANT_PRORATED`         |

To detaljer er vigtige. Hvis `deliveryStatus` ikke er `DELIVERED`, skal den forbrugte andel være nul. Og ved en forholdsmæssig refusion af et abonnement udelader du den forbrugte andel: Apple beregner den.

**Samtykket er forudsætningen for det hele.** Apple skriver: "You must obtain valid consent from the customer before sharing their personal data with Apple in the Send Consumption Information API." Uden samtykke svarer du ikke. Apple forbyder også at bruge vinduet til annoncesporing til at indhente samtykket: "Don't use the AppTrackingTransparency prompt to obtain consent".

## Hvis du bruger RevenueCat

Med RevenueCat er det RevenueCat, der modtager Apples notifikationer og svarer på anmodningen, med [Refund Control](https://www.revenuecat.com/docs/customers/refund-control). Du vælger én af fire politikker: foretræk fuld refusion, foretræk afvisning, send kun forbrugsdata, eller svar ikke.

At slå datadeling til svarer til at bekræfte, at du har dine kunders samtykke. RevenueCat siger det selv: "Enabling consumption data sharing confirms that you obtained consent from your Customers." De anbefaler også at reservere "Prefer no refund" til en målrettet gruppe og advarer, når den præference rammer de fleste af dine kunder.

For også at få notifikationerne på din egen server har RevenueCat et felt, "Apple Server Notification Forwarding URL", i appens indstillinger. Det er beskrevet på [deres side om Apples notifikationer](https://www.revenuecat.com/docs/platform-resources/server-notifications/apple-server-notifications). Det er det, jeg bruger. Opsætningen af et abonnement med RevenueCat finder du i [RevenueCat og in-app-abonnement på iOS](https://devoria.fr/da/blog/revenuecat-in-app-abonnement-ios).

## Effekten på din omsætning og på abonnementet

**På adgangen.** Ifølge [dokumentationen for `currentEntitlements`](https://developer.apple.com/documentation/storekit/transaction/currententitlements): "Products that the App Store has refunded or revoked don't appear in the current entitlements". Hvis din app tjekker rettigheder med `currentEntitlements`, forsvinder den refunderede adgang af sig selv. Transaktionen indeholder dato og årsag til tilbagekaldelsen i `revocationDate` og `revocationReason`.

**På rapporterne.** Ifølge [hjælpen til salgsrapporten](https://developer.apple.com/help/app-store-connect/reference/reporting/summary-sales-report) vises en refusion med negative enheder og negativ kundepris. For abonnementer tæller [siden om abonnementsdata](https://developer.apple.com/help/app-store-connect/measure-app-performance/view-subscription-data) fulde og delvise refusioner med blandt hændelserne og trækker dem fra de daglige enheder.

**På dit omdømme.** [Guideline 5.6.4](https://developer.apple.com/app-store/review/guidelines/#5.6.4) nævner overdrevent mange refusionsanmodninger blandt tegnene på utilstrækkelig kvalitet. En høj refusionsrate er ikke kun tabte penge: Apple kan tage den med i vurderingen af, om du overholder adfærdskodeksen.

## Min sag: alarmen på mine apps

Den 12. oktober 2026 satte jeg en alarm op på mine apps. RevenueCat videresender Apples notifikationer til en route på devoria.fr. Den verificerer Apples signatur og sender mig derefter en alarm, uden beløb. Jeg ville se anmodningen, når den kommer ind, ikke kun resultatet.

Den 18. oktober kom den første rigtige anmodning på TradaZen, min tradingsimulator. Et årsabonnement, betalt efter en gratis prøveperiode på 7 dage. Angivet årsag: et utilsigtet køb. Tre lektier:

1. **Den samme anmodning kan komme flere gange.** Jeg fik den samme alarm tre gange samme aften. Siden da bliver hver alarm deduplikeret på notifikationstype og transaktions-id.
2. **Beslutningen kom på under et døgn.** Apple afviste cirka 22 timer efter anmodningen. Kunden beholdt sin adgang.
3. **En afvisning er ikke slutningen.** Samme kunde anmodede igen to dage senere, på den samme transaktion.

> En anmodning om "utilsigtet køb" ved slutningen af en prøveperiode vindes ikke i svaret til Apple. Den forebygges på paywallen, før den første betaling.

## Begræns misbrug af refusioner uden at bryde reglerne

**Det er tilladt:**

- **At svare på hver anmodning med korrekte data**, når kunden har givet samtykke.
- **At udtrykke en målrettet præference**, for eksempel en afvisning for et køb, der allerede er forbrugt, frem for en afvisning for alle.
- **At knytte hver `REFUND` til en kundekonto.** [Apples side om refusionsnotifikationer](https://developer.apple.com/documentation/storekit/handling-refund-notifications) anbefaler det for at opdage gentagne refusioner.
- **At sige klart, hvad man køber, før købet.** [Guideline 3.1.2(c)](https://developer.apple.com/app-store/review/guidelines/#3.1.2) kræver, at du beskriver, hvad brugeren får for prisen, før du tilbyder et abonnement.

**Det er forbudt:**

- **At sende falske data** for at få en anmodning afvist, eller at svare uden samtykke.
- **At indhente samtykket via vinduet til annoncesporing**, hvilket Apple udelukker med rene ord.
- **At lave fælder i købet.** [Guideline 5.6](https://developer.apple.com/app-store/review/guidelines/#5.6) forbyder at presse kunder til uønskede køb eller at opkræve betaling for noget, der ikke leveres.
- **At lægge pres på en kunde**, der anmoder om refusion. Den samme regel kræver respekt i kundeservicen, uden intimidering.

Det bedste greb ligger før købet: en paywall, der viser prisen, datoen for første betaling og hvordan man opsiger. Fejlene, du skal undgå, finder du i [paywall-fejl](https://devoria.fr/da/blog/ios-paywall-begynderfejl-salg), og reglerne for prøveperioden i [gratis prøveperiode på App Store](https://devoria.fr/da/blog/introductory-offer-app-store-connect-gratis-proeveperiode).

## Test før produktion

Ifølge [siden om test af anmodninger](https://developer.apple.com/documentation/storekit/testing-refund-requests) accepterer sandbox og StoreKit-test i Xcode refusionsanmodninger. I sandbox udløser enhver årsag en automatisk godkendelse. For at simulere en afvisning vælger du "Other" og skriver `DECLINE`. For en forholdsmæssig refusion skriver du `GRANT_PRORATED`. I sandbox skal dit forbrugssvar sendes inden for fem minutter.

## Et abonnement, der bliver refunderet sjældnere

[iOS & Android Kit](https://devoria.fr/da/kits/ios) bygger på koden fra mine apps, med onboarding, paywall og abonnementer allerede kodet, og følger fire trin frem til App Store, i dit eget tempo. Hele opsætningen er beskrevet på siden om [in-app-abonnement på iOS](https://devoria.fr/da/expertise/abonnement-i-app-ios), og Apples regler for abonnementer i [guideline 3.1.2](https://devoria.fr/da/blog/guideline-3-1-2-app-afvist-abonnement).

Før du lancerer din paywall, så [tag din gratis diagnose](https://devoria.fr/da/diagnostic): den fortæller dig, hvad der reelt blokerer dit projekt, og sender dig min tjekliste mod afvisninger fra Apple.

## Ofte stillede spørgsmål

### Kan udvikleren afvise en refusion i App Store?

Nej. Apple beslutter alene. Du kan sende forbrugsdata og en præference, for eksempel `DECLINE`, som indgår blandt flere kriterier. Apple har det sidste ord.

### Får udvikleren besked om en refusionsanmodning?

Ja, hvis App Store Server Notifications V2 er sat op. Apple sender `CONSUMPTION_REQUEST`, når anmodningen kommer, og derefter `REFUND` eller `REFUND_DECLINED` ved beslutningen. Uden notifikationer ser du kun godkendte refusioner i dine rapporter.

### Hvor lang tid tager Apple om at behandle en refusionsanmodning?

Apple oplyser 24 til 48 timer til kunden. StoreKit-dokumentationen taler om højst 48 timer. Du har selv 12 timer til at sende forbrugsdata.

### Hvad sker der med adgangen efter en refusion?

Det refunderede køb fjernes fra kundens aktive rettigheder: StoreKit 2 returnerer det ikke længere i `currentEntitlements`. Hvis Apple derefter annullerer refusionen, får du `REFUND_REVERSED` og skal genoprette adgangen.

### Kræver det kundens samtykke at svare Apple?

Ja. Apple kræver gyldigt samtykke før enhver deling af data via Consumption API. Uden det svarer du ikke på notifikationen. Vinduet til annoncesporing må ikke bruges til at indhente det.

### Tæller refusioner imod min app?

Det kan de. Guideline 5.6.4 nævner overdrevent mange refusionsanmodninger blandt tegnene på utilstrækkelig kvalitet, som Apple kan tage med i vurderingen af, om adfærdskodeksen overholdes.


## Dit projekt

[iOS & Android Kit](https://devoria.fr/da/kits/ios): Byg din iPhone- og Android-app med Claude Code: startkoden fra mine apps, vejen helt ud i butikkerne og alle kits. 739 kr..

[Diagnose: det, der skiller dig fra din iPhone-app](https://devoria.fr/da/diagnostic): 7 spørgsmål, 60 sekunder: du finder ud af, hvad der reelt holder dig tilbage fra at udgive din iPhone-app, får din vej i 4 trin og det kit, der passer til dig.
