---
title: "Comença amb RevenueCat"
description: "RevenueCat facilita la creació, l'anàlisi i el creixement de compres integrades i subscripcions a iOS, Android i el web, sense necessitat de codi de servidor."
---

*Desenvolupar o comprar*

# Implementa bé les compres integrades des del principi

La infraestructura de compres integrades és essencial per al teu negoci, però desenvolupar-la internament desvia recursos del teu producte. RevenueCat t'ajuda a llançar-lo més ràpidament, reduir el manteniment i confiar en les teves dades d'IAP.

[Sol·licita una demostració](https://app.revenuecat.com/signup)
[Explora la demostració del producte](/cat/talk-to-sales)

- **37,000+** — línies de codi personalitzat substituïdes
- **1 API** — en totes les plataformes
- **$17B+** — ingressos processats

## Inverteix en una base sòlida per a la monetització de la teva aplicació


## Un equip d'enginyeria d'IAP dedicat que no t'abandonarà

El codi d'IAP personalitzat en mans d'uns quants enginyers crea riscos a llarg termini. RevenueCat et proporciona un equip dedicat a garantir que la monetització de la teva aplicació funcioni sense problemes.

```
Purchases.shared.purchase(package: package) {
    (transaction, customerInfo, error, userCancelled) in
  let entitlement = customerInfo.entitlements["your_entitlement_id"]
  if entitlement?.isActive == true {
    // Unlock that great "pro" content              
  }
}
```

### objective-c

```objective-c
[[RCPurchases sharedPurchases] purchasePackage:package
                                withCompletion:^(RCStoreTransaction *transaction,
                                                RCCustomerInfo *customerInfo,
                                                NSError *error,
                                                BOOL cancelled) {
  if (customerInfo.entitlements[@"your_entitlement_id"].isActive) {
    // Unlock that great "pro" content
  }
}];
```

### kotlin

```kotlin
Purchases.sharedInstance.purchasePackage(
  this,
  aPackage,
  onError = { error, userCancelled -> /* No purchase */ },
  onSuccess = { product, customerInfo ->
    val entitlement = customerInfo.entitlements["my_entitlement_identifier"]
    if (entitlement?.isActive == true) {
    // Unlock that great "pro" content
  }
})
```

### java

```java
Purchases.getSharedInstance().purchasePackage(
  this,
  aPackage,
  new MakePurchaseListener() {
    @Override
    public void onCompleted(
      @NonNull Purchase purchase,
      @NonNull CustomerInfo customerInfo
    ) {
      if (customerInfo.getEntitlements().get("my_entitlement_identifier").isActive()) {
        // Unlock that great "pro" content
      }
    }

    @Override
    public void onError(@NonNull PurchasesError error, Boolean userCancelled) {
      // No purchase
    }
  }
);
```

### flutter

```flutter
try {
 PurchaserInfo purchaserInfo = await Purchases.purchasePackage(
  package
 );
 if (purchaserInfo.entitlements.all["my_entitlement_identifier"]
  .isActive) {
  // Unlock that great "pro" content
 }
} on PlatformException catch (e) {
 /* No purchase */ 
}
```

### react-native

```react-native
try {
 const {
  purchaserInfo,
  productIdentifier
 } = await Purchases.purchasePackage(package);
 if (typeof purchaserInfo.entitlements.active.pro !== "undefined") {
  // Unlock that great "pro" content
 }
} catch (e) {
 /* No purchase */ 
}
```

### cordova

```cordova
Purchases.purchasePackage(package, ({ productIdentifier, purchaserInfo }) => {
    if (typeof purchaserInfo.entitlements.active.my_entitlement_identifier !== "undefined") {
      // Unlock that great "pro" content
    }
  },
  ({error, userCancelled}) => {
    // Error making purchase
  }
);

// Note: if you are using purchaseProduct to purchase Android In-app products, an optional third parameter needs to be provided when calling purchaseProduct. You can use the package system to avoid this.

Purchases.purchaseProduct("product_id", ({ productIdentifier, purchaserInfo }) => {
}, ({error, userCancelled}) => {
    // Error making purchase
}, null, Purchases.PURCHASE_TYPE.INAPP);
```

### unity

```unity
Purchases purchases = GetComponent<Purchases>();
purchases.PurchasePackage(package, (productIdentifier, purchaserInfo, userCancelled, error) =>
{
  if (purchaserInfo.Entitlements.Active.ContainsKey("my_entitlement_identifier")) {
    // Unlock that great "pro" content
  }
});
```

## Allibera hores d'enginyeria per centrar-te en allò que importa

Cada hora d'enginyeria dedicada a la infraestructura
de pagaments integrats és una hora perduda. Aprofita els teus
enginyers per crear les funcionalitats que faran créixer la teva
aplicació mentre nosaltres ens ocupem de la monetització.

## No perdis ingressos per dades poc fiables

Els sistemes d'IAP interns sovint generen problemes de qualitat de les dades que frenen el creixement. RevenueCat et proporciona una única font fiable multiplataforma que envia dades normalitzades allà on les necessitis.

## RevenueCat s'ocupa del que StoreKit i Google Play Billing no cobreixen

## Som aquí per ajudar-te

### Explora la documentació
La nostra documentació completa t'ajuda a posar-ho en marxa ràpidament.
[Consulta la documentació](/docs/getting-started/quickstart)

### Comunitat de desenvolupadors
Fes preguntes i troba respostes al fòrum de la comunitat de RevenueCat.
[Uneix-te a la comunitat](https://community.revenuecat.com/get-help-5)

### Suport dedicat
El nostre equip de suport està de guàrdia per als clients d'Enterprise, amb recursos dedicats i una taxa de satisfacció amb el suport del 96.3%.
[Fes una pregunta](/cat/contact)


## Vols veure com et pot ajudar  RevenueCat?

Totes les funcionalitats de la nostra suite s'inclouen de sèrie i començar és gratuït.

[Comença gratis](https://app.revenuecat.com/signup)
[Parla amb vendes](/cat/talk-to-sales)
