# Commerce SDK & APM Getting Started

Commerce Applications run on Verifone payment terminals. They extend the payment flow with custom screens, business logic, and integrations. Use them for loyalty, coupons, surveys, receipt content, and APMs.

{% if visitor.isSet === false %}
{% columns %}
{% column %}

<h4 align="center"><strong>Please login or register to gain access to the detailed material on this page.</strong></h4>
{% endcolumn %}

{% column %}

<p align="right"><a href="https://identity.verifone.com/am/XUI/?realm=/alpha&#x26;authIndexType=service&#x26;authIndexValue=DocsLoginV7&#x26;goto=https://docs.verifone.com/" class="button primary" data-icon="shield-keyhole">Login</a><a href="https://partner-registration.verifone.com/" class="button secondary">Register for an Account</a></p>
{% endcolumn %}
{% endcolumns %}
{% endif %}

<details>

<summary>Learn more about what Commerce Applications can do</summary>

Commerce Applications add value without replacing the payment app.

* **Launch at the right time.** Start during payment, from the desktop, or in idle mode.
* **Build guided terminal flows.** Show custom screens, collect input, and move between pages.
* **Connect to external services.** Send approved HTTP requests to merchant or partner systems.
* **Work with payment features.** Return trigger responses, request services, print, and pass data to POS.
* **Support real use cases.** Add loyalty, coupons, surveys, receipt content, analytics, and alternate payments.
* **Run with or without UI.** Build interactive apps or headless services for background tasks.

For more detail, see [Architecture](broken://spaces/11HigXrNYxDX41X2E4Fz/pages/4rupA52r8zEeI2c8tT3E), and [Application Lifecycle](broken://spaces/11HigXrNYxDX41X2E4Fz/pages/YsOiGVwR76zhTCFoVVM2).

</details>

{% stepper %}
{% step %}

### Install the SDK

<table data-header-hidden><thead><tr><th width="390.33203125" valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><p>Download the Commerce Applications SDK plugin, install and configure it in your IDE.</p><p></p></td><td valign="top"><img src="https://verifone.cloud/sites/default/files/inline-images/SS06_0.png" alt="" data-size="original"></td></tr></tbody></table>

{% if visitor.isSet === true %} <a href="/pages/ipdfkuggWP2V9vYEyBFF" class="button primary" data-icon="desktop-arrow-down">Download Commerce App SDK</a><a href="/pages/W0zhnxmGYKsf0rhTqO3t" class="button secondary" data-icon="plug">Plugin Installation Instructions for Windows & Mac</a>
{% endif %}

{% if visitor.isSet === false %}
{% columns %}
{% column %}

{% endcolumn %}

{% column %}

<p align="right"><a href="https://identity.verifone.com/am/XUI/?realm=/alpha&#x26;authIndexType=service&#x26;authIndexValue=DocsLoginV7&#x26;goto=https://docs.verifone.com/" class="button primary" data-icon="shield-keyhole">Login</a></p>
{% endcolumn %}
{% endcolumns %}
{% endif %}
{% endstep %}

{% step %}

### Create your First Project

Open Android Studio and select **Start a new Verifone project**.

{% if visitor.isSet === true %} <a href="/pages/3HX5HUhNMQDlsznvVcKt" class="button primary" data-icon="browser">Create your First Application</a>
{% endif %}

{% if visitor.isSet === false %}
{% columns %}
{% column %}

{% endcolumn %}

{% column %}

<p align="right"><a href="https://identity.verifone.com/am/XUI/?realm=/alpha&#x26;authIndexType=service&#x26;authIndexValue=DocsLoginV7&#x26;goto=https://docs.verifone.com/" class="button primary" data-icon="shield-keyhole">Login</a></p>
{% endcolumn %}
{% endcolumns %}
{% endif %}
{% endstep %}

{% step %}

### Run your App in the Simulator

Create and run a simulator configuration for your app. Choose a trigger and a display resolution.

{% if visitor.isSet === true %} <a href="/pages/Ufy2z6SsEXwKSDxvg9dF" class="button primary" data-icon="atom-simple">Application Simulation</a>
{% endif %}

{% if visitor.isSet === false %}
{% columns %}
{% column %}

{% endcolumn %}

{% column %}

<p align="right"><a href="https://identity.verifone.com/am/XUI/?realm=/alpha&#x26;authIndexType=service&#x26;authIndexValue=DocsLoginV7&#x26;goto=https://docs.verifone.com/" class="button primary" data-icon="shield-keyhole">Login</a></p>
{% endcolumn %}
{% endcolumns %}
{% endif %}
{% endstep %}

{% step %}

### Test on Hardware

Export a test package, then install it on a Developer Kit.

{% if visitor.isSet === true %} <a href="/pages/62qQfCVnM3l6Iwae4yfn" class="button primary" data-icon="microscope">Test Terminal and App Testing</a>

{% if visitor.isSet === false %}
{% columns %}
{% column %}

{% endcolumn %}

{% column %}

<p align="right"><a href="https://identity.verifone.com/am/XUI/?realm=/alpha&#x26;authIndexType=service&#x26;authIndexValue=DocsLoginV7&#x26;goto=https://docs.verifone.com/" class="button primary" data-icon="shield-keyhole">Login</a></p>
{% endcolumn %}
{% endcolumns %}
{% endif %}
{% endif %}
{% endstep %}

{% step %}

### Development Guides

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><p>Plan your test setup, then explore the core development guides.</p><p>Use the tools, development, and API docs to build further.</p></td><td valign="top"><img src="/files/YoS2I2B7oC6pbDfVLMOx" alt="" data-size="original"></td></tr></tbody></table>

{% if visitor.isSet === true %} <a href="/pages/X07Zrvkuuzrf9CkrRbwC" class="button primary" data-icon="toolbox">Developer Tools</a><a href="/pages/QjlwK0eE1MBAJ3C1sYTM" class="button secondary" data-icon="laptop-binary">Application Development</a><a href="/pages/epckuHcC9CvQHCbqo0K8" class="button secondary" data-icon="webhook">API Documentation</a>
{% endif %}

{% if visitor.isSet === false %}
{% columns %}
{% column %}

{% endcolumn %}

{% column %}

<p align="right"><a href="https://identity.verifone.com/am/XUI/?realm=/alpha&#x26;authIndexType=service&#x26;authIndexValue=DocsLoginV7&#x26;goto=https://docs.verifone.com/" class="button primary" data-icon="shield-keyhole">Login</a></p>
{% endcolumn %}
{% endcolumns %}
{% endif %}
{% endstep %}

{% step %}

### Need help?

Use the troubleshooting guide to fix common installation, simulator, and environment issues.

{% if visitor.isSet === true %} <a href="/pages/D9ZxYCEO54d6Zt4rji6Y" class="button primary" data-icon="uikit">Commerce Applications SDK troubleshooting guide</a>
{% endif %}

{% if visitor.isSet === false %}
{% columns %}
{% column %}

{% endcolumn %}

{% column %}

<p align="right"><a href="https://identity.verifone.com/am/XUI/?realm=/alpha&#x26;authIndexType=service&#x26;authIndexValue=DocsLoginV7&#x26;goto=https://docs.verifone.com/" class="button primary" data-icon="shield-keyhole">Login</a></p>
{% endcolumn %}
{% endcolumns %}
{% endif %}
{% endstep %}
{% endstepper %}

### Advanced Payment Modules (APM)

Advanced Payment Methods use QR-based payment flows on supported Verifone terminals.

{% stepper %}
{% step %}

### Roll out APMs

<table data-header-hidden><thead><tr><th width="390.33203125" valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><p>Review the APM model, onboard the merchant, and integrate the POS.</p><p><br><br></p></td><td valign="top"><img src="/files/dlgno0jhLHDnf1J18joY" alt="Verifone APM services overview" data-size="original"></td></tr></tbody></table>
{% endstep %}

{% step %}
{% if visitor.isSet === true %} <a href="/pages/2sujN6BlmopN1bzv1Xjt" class="button primary" data-icon="cash-register">Advanced Payment Methods</a>
{% endif %}

{% if visitor.isSet === false %}
{% columns %}
{% column %}

{% endcolumn %}

{% column %}

<p align="right"><a href="https://identity.verifone.com/am/XUI/?realm=/alpha&#x26;authIndexType=service&#x26;authIndexValue=DocsLoginV7&#x26;goto=https://docs.verifone.com/" class="button primary" data-icon="shield-keyhole">Login</a></p>
{% endcolumn %}
{% endcolumns %}
{% endif %}

### Run APM Transactions

<table data-header-hidden><thead><tr><th width="390.33203125" valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><p>Test the sale flow, then confirm cancellation, refund, and settlement handling.</p><p><br></p></td><td valign="top"><img src="https://verifone.cloud/sites/default/files/inline-images/Picture%201.png" alt="QR code example for APM payment" data-size="original"></td></tr></tbody></table>

{% if visitor.isSet === true %} <a href="/pages/dWRAHS3d2kRqptzvbADW" class="button primary" data-icon="credit-card">Transaction, cancellation, & refund processing</a>
{% endif %}

{% if visitor.isSet === false %}
{% columns %}
{% column %}

{% endcolumn %}

{% column %}

<p align="right"><a href="https://identity.verifone.com/am/XUI/?realm=/alpha&#x26;authIndexType=service&#x26;authIndexValue=DocsLoginV7&#x26;goto=https://docs.verifone.com/" class="button primary" data-icon="shield-keyhole">Login</a></p>
{% endcolumn %}
{% endcolumns %}
{% endif %}
{% endstep %}
{% endstepper %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.verifone.com/alternative-payment-modules-apm/commerce-sdk-and-apm-getting-started.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
