> For the complete documentation index, see [llms.txt](https://doc.sysdevmobile.com/kalipso5/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.sysdevmobile.com/kalipso5/developing/form/actions/actions-description/group-others/in-app-purchase-make-purchase.md).

# In-App Purchase Make Purchase

Starts the purchase flow for the given product, normally opening a dialog from the system for the payment procedure.

Action available for the following operating systems:

![](/files/-MN57Y_zKMwAx_V80t5z)

### Parameters

* **Product SKU** - The product identifier for which to start the purchase flow.
* **Target Fail Reason** - In case the purchase fails, the **OnError** will be triggered, and this will contain a reason code for the fail. It can be:
  * 1 - Item already owned
  * 2 - User Canceled
  * 3 - Item Unavailable
  * 4 - User Cannot make payments
  * 0 - Other
* **Target Order ID** - The Order ID associated with the purchase. For Android only, iOS and Windows do not have an Order ID for the purchases.
* **Target Purchase ID** - The Purchase / Transaction ID associated with the purchase.
* **Target Purchase Status** - The status of the purchase:
  * 0 - Unspecified
  * 1 - Normal
  * 2 - Pending

{% hint style="info" %}
If the purchase cames back as pending, you can use the **In App Purchase Get Purchases** action to get new states for the purchase.\
Normally this happens if the payment is pending confirmation.
{% endhint %}

{% hint style="info" %}
After the purchase is finished with success and you have given the user access to the product, you are required to acknowledge the product purchase with a call to **In app Purchase Acknowledge Purchase.**
{% endhint %}

{% hint style="info" %}
You are advised to read Google/Apple/Microsoft Store documentation, specially on fraud prevention and how you can have your servers validate the purchases.
{% endhint %}
