# 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="https://2242410501-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MbdKiWuld-TceAgWrgh%2Fuploads%2FRnxhNUUy6NCBnPmV4c8e%2FFull-Integration-Diagram-2a.png?alt=media&#x26;token=de3674b9-0e6e-4f6d-8de0-2da83b303bbb" 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="https://2242410501-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MbdKiWuld-TceAgWrgh%2Fuploads%2FZfFT3DcWLnJvMxRN0r0r%2FSemi-Integration-Diagram-Type1-2a.png?alt=media&#x26;token=1783e33d-900e-441d-9c27-09def17fc40a" 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="https://2242410501-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MbdKiWuld-TceAgWrgh%2Fuploads%2FbHHOJS3sjO8d4frLan0a%2FSemi-Integration-Diagram-Type2-2a.png?alt=media&#x26;token=e8ec54cf-eda2-4371-a900-f43878c8114f" 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](https://docs.solapayments.com/sdk/payment-engine-sdk)

**Supported devices:**

* All Sola supported devices

**Benefits:**

* Supports all Sola devices

**Limitations:**

* Only supported on Windows

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

[BBPOS](https://docs.solapayments.com/products/bbpos)

**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](https://docs.solapayments.com/api/transaction)

**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
