# Refusjon i App Store: dette ser utvikleren

> Refusjon i App Store: Apple bestemmer alene. Utvikleren får CONSUMPTION_REQUEST, kan svare innen 12 timer og får vite avgjørelsen via REFUND.

Opprinnelig side: [Refusjon i App Store: dette ser utvikleren](https://devoria.fr/no/blog/refusjon-app-store-utvikler)
Forfatter: [Mehdi Azizi](https://devoria.fr/no/mehdi-azizi)
Publisert: 2026-11-04
Innhold sist revidert: 2026-11-04


I App Store er **det Apple som innvilger eller avslår en refusjon, aldri utvikleren.** Kunden sender forespørselen på Apples nettsted eller fra appen din. Hvis du har koblet til Apples servervarsler, får du et `CONSUMPTION_REQUEST`-varsel når forespørselen kommer, og deretter `REFUND` eller `REFUND_DECLINED` når avgjørelsen er tatt. I mellomtiden har du 12 timer på deg til å sende forbruksdata og ønsket ditt, forutsatt at kunden har samtykket.

En innvilget refusjon fjerner kjøpet fra kundens aktive rettigheter og vises som negativt i salgsrapportene dine. Denne guiden går gjennom hvert steg, hva du kan sende til Apple, og hva du har lov til å gjøre mot misbruk av refusjoner. Reglene kommer fra Apples sider, gjennomlest 3. november 2026. Det ekte eksempelet kommer fra et varsel jeg koblet til appene mine i oktober.

## Hvem bestemmer en refusjon i App Store?

Apple, og bare Apple. [Apples støtteside](https://support.apple.com/en-us/118223) beskriver kundens vei: kunden logger inn på reportaproblem.apple.com, velger «Request a refund», oppgir en grunn og velger kjøpet det gjelder. Apple ber kunden vente 24 til 48 timer på svar.

Kunden kan også be om refusjon fra appen din. StoreKit tilbyr [et eget refusjonsark](https://developer.apple.com/documentation/storekit/transaction/beginrefundrequest%28in%3A%29-9k0pj) til dette, tilgjengelig fra iOS 15. Apple anbefaler å åpne det fra kontoinnstillingene eller en hjelpemeny. Arket viser kjøpet og en liste med grunner, og Apple bruker opptil 48 timer på å avgjøre.

**I begge tilfeller har du ingenting å godkjenne.** Du kan bare gi informasjon og et ønske, som er blant flere kriterier i Apples avgjørelse.

## Hva hver part ser, steg for steg

| Steg                | Kundens side                         | Utviklerens side                                        |
| ------------------- | ------------------------------------ | ------------------------------------------------------- |
| Forespørsel         | Apples skjema eller arket i appen    | Varselet `CONSUMPTION_REQUEST`                          |
| Innen 12 timer      | Venter                               | Kan sende forbruksdata                                  |
| Innen 48 timer      | Svar fra Apple                       | Varselet `REFUND` eller `REFUND_DECLINED`               |
| Etter innvilgelse   | Pengene tilbake på betalingsmiddelet | Kjøpet fjernet fra aktive rettigheter, negative enheter |
| Etter en innsigelse | Refusjonen annullert av Apple        | Varselet `REFUND_REVERSED`, tilgangen må gjenopprettes  |

App Store Connect viser deg bare refusjoner som allerede er innvilget, i Sales and Trends. **Selve forespørselen kommer bare via servervarslene.** Uten dem oppdager du refusjonen i etterkant.

## Servervarslene ved en refusjon

[App Store Server Notifications V2](https://developer.apple.com/documentation/appstoreservernotifications/notificationtype) sender fem typer som er nyttige her. Du mottar dem på HTTPS-adressen du har oppgitt i App Store Connect, én for produksjon og én for sandbox.

| Varsel                | Hva det betyr                                               | Hva du gjør                                       |
| --------------------- | ----------------------------------------------------------- | ------------------------------------------------- |
| `CONSUMPTION_REQUEST` | Kunden ber om refusjon                                      | Svar innen 12 timer, hvis samtykke finnes         |
| `REFUND`              | Apple har refundert transaksjonen                           | Fjern innholdet eller tilgangen som ble refundert |
| `REFUND_DECLINED`     | Apple har avslått forespørselen                             | Ingenting, tilgangen fortsetter                   |
| `REFUND_REVERSED`     | Apple annullerer en refusjon etter en innsigelse fra kunden | Gjenopprett det du fjernet                        |
| `REVOKE`              | Et kjøp delt via Familiedeling er ikke lenger tilgjengelig  | Fjern tilgangen for familiemedlemmet              |

Serveren din må svare med en HTTP-kode mellom 200 og 206. Ifølge [siden om svar på varsler](https://developer.apple.com/documentation/appstoreservernotifications/responding-to-app-store-server-notifications) prøver Apple ellers på nytt fem ganger, 1, 12, 24, 48 og så 72 timer etter forrige forsøk. I sandbox sendes varselet bare én gang.

## Consumption API: hva du kan fortelle Apple

Når forespørselen kommer, kan du svare med [Send Consumption Information](https://developer.apple.com/documentation/appstoreserverapi/send-consumption-information). Regelen står i én setning fra Apple: «Respond within 12 hours of receiving the `CONSUMPTION_REQUEST` notification.» Versjon 2 av API-et gjelder alle produkttyper, også abonnementer.

Feltene i [forespørselen](https://developer.apple.com/documentation/appstoreserverapi/consumptionrequest):

| Felt                    | Påkrevd | Hva det forteller Apple                                                |
| ----------------------- | ------- | ---------------------------------------------------------------------- |
| `customerConsented`     | Ja      | Kunden har samtykket til å dele dataene sine                           |
| `deliveryStatus`        | Ja      | Kjøpet er levert og fungerer, eller hvorfor det ikke ble levert        |
| `sampleContentProvided` | Ja      | En prøveperiode, et utdrag eller en beskrivelse ble tilbudt før kjøpet |
| `consumptionPercentage` | Nei     | Andelen som er brukt, fra 0 til 100 000 for 0 til 100 %                |
| `refundPreference`      | Nei     | Ønsket ditt: `DECLINE`, `GRANT_FULL` eller `GRANT_PRORATED`            |

To presiseringer er viktige. Hvis `deliveryStatus` ikke er `DELIVERED`, må brukt andel være null. Og for en forholdsmessig refusjon av et abonnement utelater du brukt andel: Apple regner den ut.

**Samtykket er forutsetningen for alt.** Apple skriver: «You must obtain valid consent from the customer before sharing their personal data with Apple in the Send Consumption Information API.» Uten samtykke svarer du ikke. Apple forbyr også å bruke sporingsvinduet for annonser til å hente inn dette samtykket: «Don't use the AppTrackingTransparency prompt to obtain consent».

## Hvis du bruker RevenueCat

Med RevenueCat er det RevenueCat som mottar Apples varsler og svarer på forespørselen, med [Refund Control](https://www.revenuecat.com/docs/customers/refund-control). Du velger én av fire policyer: foretrekke full refusjon, foretrekke avslag, bare sende forbruksdata, eller ikke svare.

Å slå på datadeling betyr at du bekrefter at du har samtykke fra kundene dine. RevenueCat sier det selv: «Enabling consumption data sharing confirms that you obtained consent from your Customers.» De anbefaler også å bruke «Prefer no refund» bare for en avgrenset gruppe, og advarer når dette ønsket gjelder de fleste kundene dine.

For å også motta varslene på din egen server tilbyr RevenueCat feltet «Apple Server Notification Forwarding URL» i appinnstillingene. Det er beskrevet på [deres side om Apples varsler](https://www.revenuecat.com/docs/platform-resources/server-notifications/apple-server-notifications). Det er det jeg bruker. Hvordan du setter opp et abonnement med RevenueCat finner du i [RevenueCat og abonnement i iOS-apper](https://devoria.fr/no/blog/revenuecat-abonnement-ios-app).

## Effekten på inntektene og abonnementet

**På tilgangen.** Ifølge [dokumentasjonen 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 appen din sjekker rettigheter med `currentEntitlements`, forsvinner den refunderte tilgangen av seg selv. Transaksjonen har dato og grunn for tilbaketrekkingen, i `revocationDate` og `revocationReason`.

**På rapportene.** Ifølge [hjelpesiden for salgsrapporten](https://developer.apple.com/help/app-store-connect/reference/reporting/summary-sales-report) vises en refusjon med negative enheter og negativ kundepris. For abonnementer teller [siden om abonnementsdata](https://developer.apple.com/help/app-store-connect/measure-app-performance/view-subscription-data) fulle og delvise refusjoner blant hendelsene, og trekker dem fra de daglige enhetene.

**På omdømmet ditt.** [Guideline 5.6.4](https://developer.apple.com/app-store/review/guidelines/#5.6.4) nevner overdrevent mange refusjonsforespørsler som et tegn på for dårlig kvalitet. En høy refusjonsrate er ikke bare tapte penger: Apple kan ta den med i vurderingen av om du følger atferdsreglene.

## Mitt eksempel: varselet på appene mine

12. oktober 2026 koblet jeg et varsel til appene mine. RevenueCat videresender Apples varsler til en rute på devoria.fr. Den sjekker Apples signatur og sender meg så et varsel, uten beløp. Jeg ville se forespørselen idet den kommer, ikke bare resultatet.

13. oktober kom den første ekte forespørselen på TradaZen, tradingsimulatoren min. Et årsabonnement, betalt etter en gratis prøveperiode på 7 dager. Oppgitt grunn: utilsiktet kjøp. Tre lærdommer:

14. **Samme forespørsel kan komme flere ganger.** Jeg fikk samme varsel tre ganger samme kveld. Siden da dedupliseres hvert varsel på varseltype og transaksjons-ID.
15. **Avgjørelsen kom på under ett døgn.** Apple avslo omtrent 22 timer etter forespørselen. Kunden beholdt tilgangen.
16. **Et avslag er ikke slutten.** Den samme kunden sendte en ny forespørsel to dager senere, på samme transaksjon.

> En forespørsel om «utilsiktet kjøp» etter en prøveperiode vinner du ikke i svaret til Apple. Den forebygger du på paywallen, før første betaling.

## Begrens misbruk uten å bryte reglene

**Dette er lov:**

- **Svar på hver forespørsel med korrekte data**, når kunden har samtykket.
- **Gi et målrettet ønske**, for eksempel avslag for et kjøp som allerede er brukt, i stedet for avslag for alle.
- **Koble hver `REFUND` til en kundekonto.** [Apples side om refusjonsvarsler](https://developer.apple.com/documentation/storekit/handling-refund-notifications) anbefaler dette for å oppdage gjentatte refusjoner.
- **Si tydelig hva som kjøpes før kjøpet.** [Guideline 3.1.2(c)](https://developer.apple.com/app-store/review/guidelines/#3.1.2) krever at du beskriver hva brukeren får for prisen før du tilbyr abonnement.

**Dette er forbudt:**

- **Sende falske data** for å få en forespørsel avslått, eller svare uten samtykke.
- **Hente inn samtykke via sporingsvinduet for annonser**, noe Apple utelukker svart på hvitt.
- **Lure folk til å kjøpe.** [Guideline 5.6](https://developer.apple.com/app-store/review/guidelines/#5.6) forbyr å presse kunder til uønskede kjøp eller ta betalt for noe som ikke leveres.
- **Legge press på en kunde** som ber om refusjon. Den samme regelen krever respekt i kundeservicen, uten trusler.

Den beste spaken er fortsatt tidligere i løpet: en paywall som viser prisen, datoen for første betaling og hvordan man avslutter. Feilene du bør unngå står i [paywall-feil](https://devoria.fr/no/blog/paywall-ios-nybegynnerfeil-salg), og reglene for prøveperioder i [gratis prøveperiode i App Store](https://devoria.fr/no/blog/introductory-offer-ios-gratis-proveperiode).

## Test før produksjon

Ifølge [siden om testing av forespørsler](https://developer.apple.com/documentation/storekit/testing-refund-requests) støtter sandbox og StoreKit-testing i Xcode refusjonsforespørsler. I sandbox gir hvilken som helst grunn automatisk innvilgelse. For å simulere et avslag velger du «Other» og skriver `DECLINE`. For en forholdsmessig refusjon skriver du `GRANT_PRORATED`. I sandbox må forbrukssvaret ditt sendes innen fem minutter.

## Et abonnement som refunderes sjeldnere

[iOS & Android Kit](https://devoria.fr/no/kits/ios) bygger på koden fra appene mine, med onboarding, paywall og abonnementer ferdig kodet, og følger fire steg helt til App Store, i ditt eget tempo. Hele oppsettet er beskrevet på siden [abonnement i iOS-apper](https://devoria.fr/no/expertise/abonnement-i-app-ios), og Apples regler for abonnement i [guideline 3.1.2](https://devoria.fr/no/blog/guideline-3-1-2-app-avvist-abonnement).

Før du lanserer paywallen, [ta den gratis diagnosen](https://devoria.fr/no/diagnostic): den forteller deg hva som faktisk blokkerer prosjektet ditt og sender deg sjekklisten min mot avvisning fra Apple.

## Ofte stilte spørsmål

### Kan utvikleren avslå en refusjon i App Store?

Nei. Apple bestemmer alene. Du kan sende forbruksdata og et ønske, for eksempel `DECLINE`, som er blant flere kriterier. Apple har siste ord.

### Får utvikleren beskjed om en refusjonsforespørsel?

Ja, hvis du har koblet til App Store Server Notifications V2. Apple sender `CONSUMPTION_REQUEST` når forespørselen kommer, og deretter `REFUND` eller `REFUND_DECLINED` ved avgjørelsen. Uten varsler ser du bare innvilgede refusjoner, i rapportene dine.

### Hvor lang tid bruker Apple på en refusjonsforespørsel?

Apple oppgir 24 til 48 timer til kunden. StoreKit-dokumentasjonen sier maks 48 timer. Du har 12 timer på deg til å sende forbruksdata.

### Hva skjer med tilgangen etter en refusjon?

Det refunderte kjøpet forsvinner fra kundens aktive rettigheter: StoreKit 2 returnerer det ikke lenger i `currentEntitlements`. Hvis Apple senere annullerer refusjonen, får du `REFUND_REVERSED` og må gjenopprette tilgangen.

### Trenger jeg kundens samtykke for å svare Apple?

Ja. Apple krever gyldig samtykke før data deles via Consumption API. Uten samtykke svarer du ikke på varselet. Sporingsvinduet for annonser kan ikke brukes til å hente det inn.

### Teller refusjoner mot appen min?

Det kan de. Guideline 5.6.4 nevner overdrevent mange refusjonsforespørsler som et tegn på for dårlig kvalitet, noe Apple kan ta med i vurderingen av om atferdsreglene følges.


## Prosjektet ditt

[iOS & Android Kit](https://devoria.fr/no/kits/ios): Lag din iPhone- og Android-app med Claude Code: startkoden fra appene mine, veien helt til butikkene og alle kitene. 999 kr.

[Diagnose: dette står mellom deg og iPhone-appen din](https://devoria.fr/no/diagnostic): 7 spørsmål, 60 sekunder: du får vite hva som egentlig hindrer deg i å publisere iPhone-appen din, veien din i 4 steg og kitet som passer deg.
