# How to Build POS Integration Flows

When you build integrations for different POS devices, there are three distinct types of credit card processing flows. Read on to better understand each integration method.

### **Credit Card Processing Flow 1**

**Payment Engine → Cardknox Gateway → Bank**\
The credit card device is used to obtain card information, but the transaction flows from Payment Engine to the Cardknox Gateway and then to the bank.

<figure><img src="/files/uiXQlDEvDoNw30eVZMI9" alt=""><figcaption></figcaption></figure>

1. The **POS software** communicates the intended transaction to **Payment Engine**.
2. **Payment Engine** prompts the user for their card information via the **credit card device**.
3. The **credit card device** transfers transaction data to **Payment Engine**.
4. **Payment Engine** transfers transaction data to the **Cardknox gateway**.
5. The **Cardknox gateway** transfers transaction data to the **bank** for processing.
6. The **bank** communicates the transaction response (approval or decline) to the **Cardknox gateway**.
7. The **Cardknox gateway** communicates the bank’s transaction response to **Payment Engine**.
8. **Payment Engine** communicates the bank's transaction response to the **POS software**.

### Credit Card Processing Flow 2

**Payment Engine → Credit Card Device → Cardknox Gateway → Bank**\
The credit card device plays an active role in the transaction flow, with the transaction passing from Payment Engine, to the device, to the Cardknox Gateway, and then to the bank.

<figure><img src="/files/iuBv6u7AShq84uac4Xzw" alt=""><figcaption></figcaption></figure>

1. The **POS software** communicates the intended transaction to **Payment Engine**.
2. **Payment Engine** communicates the intended transaction to the **credit card device**.
3. The **credit card device** prompts the user for their card information.
4. The **credit card device** transfers transaction data to the **Cardknox gateway**.
5. The **Cardknox gateway** transfers transaction data to the **bank** for processing.
6. The **bank** communicates the transaction response (approval or decline) to the **Cardknox gateway**.
7. The **Cardknox gateway** communicates the bank’s transaction response to the **credit card device**.
8. The **credit card device** communicates the bank’s transaction response to **Payment Engine**.
9. **Payment Engine** communicates the bank’s transaction response to the **POS software**.

### Credit Card Processing Flow 3

**Payment Engine → Credit Card Device → Bank**\
The transaction flows directly from Payment Engine to the credit card device and then to the bank. As in the first two flows, Sola is still involved in the reporting and integration processes.

<figure><img src="/files/doMMHaQ5TfNdp2MazeIo" alt=""><figcaption></figcaption></figure>

1. The **POS software** communicates the intended transaction to **Payment Engine**.
2. **Payment Engine** communicates the intended transaction to the **credit card device**.
3. The **credit card device** prompts the user for their card information.
4. The **credit card device** transfers transaction data to the **bank** for processing.
5. The **bank** communicates the transaction response (approval or decline) to the **credit card device**.
6. The **credit card device** provides the bank’s transaction response to **Payment Engine**.
7. **Payment Engine** communicates the bank's transaction response to the **POS software**.
8. **Payment Engine** notifies the Sola **gateway** of the transaction so that the data is recorded in the Merchant’s Sola account.

## Ways to Integrate – Considerations <a href="#ways-to-integrate-considerations" id="ways-to-integrate-considerations"></a>

### SDK (Payment Engine) <a href="#sdk-payment-engine" id="sdk-payment-engine"></a>

[Payment Engine SDK](/sdk/payment-engine-sdk.md)

**Supported devices:**

* All Sola supported devices

**Benefits:**

* Supports all Sola devices

**Limitations:**

* Only supported on Windows

### BBPOS <a href="#bbpos" id="bbpos"></a>

[BBPOS](/products/bbpos.md)

**Supported devices:**

* All Sola supported devices

**Benefits:**

* Supports all Sola devices

**Limitations:**

* Only supported on Windows and Mac (The installation on Mac can be difficult)
* Requires the BBPOS application to be installed and needs to run in the background all the time

### API + Keyboard Emulator <a href="#api--keyboard-emulator" id="api--keyboard-emulator"></a>

[Transaction API](/api/transaction.md)

**Supported devices:**

* ID Tech Augusta and VP8300

**Benefits:**

* Minimal integration
* Plug n Play Devices

**Limitations:**

* Supports a limited number of devices
* Does not support PIN entry
* Augusta does not support tap
* The US Only


---

# 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.solapayments.com/articles/full-integration-vs.-semi-integration.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.
