# POS quickstart

Follow these steps to connect a PAX payment terminal to Finix and process your first in-person payment.

## Step 1: Power on the terminal

Place the payment terminal where you'll use it to process payments, then power it on.

To set up the payment terminal, you'll need:

- A Wi-Fi network and router.
- The Wi-Fi network's name and password.
- Physical access to the payment terminal being activated.


Once the terminal is on, connect it to your Wi-Fi network and open the Finix Payment App.

## Step 2: Create and activate a Device

### Create a Device

Create a Device under the Merchant provisioned to process in-person payments. Include the `model` of the payment terminal you'll be using to process cards.

Choose the payment terminal that best fits your business needs. View our [available devices](/guides/in-person-payments/select-your-device) to compare options.

Pax A800
Model PAX_A800 Device

```json Model PAX_A800 Device
{
  "id": "DVoDo7F6yYCnX2d6Fj9hvsd",
  "created_at": "2025-11-14T19:01:04.638451Z",
  "updated_at": "2025-11-14T19:01:04.638451Z",
  "configuration_details": {
    "allow_debit": true,
    "check_for_duplicate_transactions": true,
    "prompt_amount_confirmation": true,
    "prompt_manual_entry": false,
    "signature_threshold_amount": 10000,
    "bypass_device_on_capture": true,
    "prompt_receipt_confirmation": true,
    "display_tip_on_receipt": false,
    "prompt_tip_on_screen": false,
    "allow_standalone_authorizations": false,
    "allow_standalone_sales": false,
    "allow_standalone_refunds": false,
    "tipping_details": {
      "percent_tipping_threshold": 0,
      "percent_options": [
        18,
        20,
        22
      ],
      "fixed_options": [
        100,
        150,
        200
      ]
    },
    "idle_message": null,
    "idle_image_file_id": null,
    "automatic_receipt_delivery_methods": null,
    "available_receipt_methods": null,
    "prompt_for_signature": "NEVER",
    "surcharge_basis_points": null
  },
  "description": "Cashier One",
  "enabled": false,
  "idle_message": null,
  "integration_mode": "PAYMENT_APP",
  "merchant": "MUsMvN47nRtdgUkE23SRHDC6",
  "model": "PAX_A800",
  "name": "My PAX_A800 Finix Device",
  "serial_number": "1234567891",
  "tags": {},
  "_links": {
    "self": {
      "href": "https://finix.sandbox-payments-api.com/devices/DVoDo7F6yYCnX2d6Fj9hvsd"
    },
    "merchant": {
      "href": "https://finix.sandbox-payments-api.com/merchants/MUsMvN47nRtdgUkE23SRHDC6"
    },
    "transfers": {
      "href": "https://finix.sandbox-payments-api.com/transfers"
    },
    "authorizations": {
      "href": "https://finix.sandbox-payments-api.com/authorizations"
    }
  }
}
```

Pax A920 Pro
Model PAX_A920PRO Device

```json Model PAX_A920PRO Device
{
  "id": "DV5znKhAQZs6J7rfXqYnr86F",
  "created_at": "2025-05-21T19:02:11.141785Z",
  "updated_at": "2025-05-21T19:02:11.141785Z",
  "configuration_details": {
    "allow_debit": true,
    "check_for_duplicate_transactions": true,
    "prompt_amount_confirmation": true,
    "prompt_manual_entry": false,
    "signature_threshold_amount": 10000,
    "bypass_device_on_capture": true,
    "prompt_receipt_confirmation": true,
    "display_tip_on_receipt": false,
    "prompt_tip_on_screen": false,
    "allow_standalone_authorizations": false,
    "allow_standalone_sales": false,
    "allow_standalone_refunds": false,
    "tipping_details": {
      "percent_tipping_threshold": 0,
      "percent_options": [
        18,
        20,
        22
      ],
      "fixed_options": [
        100,
        150,
        200
      ]
    },
    "idle_message": null,
    "idle_image_file_id": null,
    "automatic_receipt_delivery_methods": null,
    "available_receipt_methods": null,
    "prompt_for_signature": "NEVER",
    "surcharge_basis_points": null
  },
  "description": "Cashier Two",
  "enabled": false,
  "idle_message": null,
  "integration_mode": "PAYMENT_APP",
  "merchant": "MU7noQ1wdgdAeAfymw2rfBMq",
  "model": "PAX_A920PRO",
  "name": "My PAX_A920PRO Finix Device",
  "serial_number": "1234567892",
  "tags": {},
  "_links": {
    "self": {
      "href": "https://finix.sandbox-payments-api.com/devices/DV5znKhAQZs6J7rfXqYnr86F"
    },
    "merchant": {
      "href": "https://finix.sandbox-payments-api.com/merchants/MU7noQ1wdgdAeAfymw2rfBMq"
    },
    "transfers": {
      "href": "https://finix.sandbox-payments-api.com/transfers"
    },
    "authorizations": {
      "href": "https://finix.sandbox-payments-api.com/authorizations"
    }
  }
}
```

Pax IM30
Model PAX_IM30 Device

```json Model PAX_IM30 Device
{
  "id" : "DVfeMQJxpXaYkvBskg2VdZsh",
  "created_at" : "2026-04-11T02:30:15.941482Z",
  "updated_at" : "2026-04-11T02:30:15.941482Z",
  "configuration_details" : {
    "allow_debit" : false,
    "check_for_duplicate_transactions" : false,
    "prompt_amount_confirmation" : false,
    "prompt_manual_entry" : false,
    "signature_threshold_amount" : 10000,
    "bypass_device_on_capture" : false,
    "prompt_receipt_confirmation" : false,
    "display_tip_on_receipt" : false,
    "prompt_tip_on_screen" : false,
    "allow_standalone_authorizations" : false,
    "allow_standalone_sales" : false,
    "allow_standalone_refunds" : false,
    "tipping_details" : {
      "percent_tipping_threshold" : 0,
      "percent_options" : [ 18, 20, 22 ],
      "fixed_options" : [ 100, 150, 200 ]
    },
    "idle_message" : null,
    "idle_image_file_id" : null,
    "automatic_receipt_delivery_methods" : null,
    "available_receipt_methods" : null,
    "prompt_for_signature" : "NEVER",
    "surcharge_basis_points" : null
  },
  "description" : "Kiosk Three",
  "enabled" : false,
  "idle_message" : null,
  "integration_mode" : "PAYMENT_APP",
  "merchant" : "MUwfZPNW3r4EqLMzwgr6txw4",
  "model" : "PAX_IM30",
  "name" : "My PAX_IM30 Finix Device",
  "serial_number" : "1234567890",
  "tags" : { },
  "_links" : {
    "self" : {
      "href" : "https://finix.sandbox-payments-api.com/devices/DVfeMQJxpXaYkvBskg2VdZsh"
    },
    "merchant" : {
      "href" : "https://finix.sandbox-payments-api.com/merchants/MUwfZPNW3r4EqLMzwgr6txw4"
    },
    "transfers" : {
      "href" : "https://finix.sandbox-payments-api.com/transfers"
    },
    "authorizations" : {
      "href" : "https://finix.sandbox-payments-api.com/authorizations"
    }
  }
}
```

### Activate the Device

Once the Device is created and the `serial_number` is set, you can link the Device resource with the payment terminal by sending an activation request.

To activate the Device:

- The Device must be online and connected to the network.
- The Finix Payment App is open on the Device.



```shell Activate Device
curl -i -X PUT \
    -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e \
    https://finix.sandbox-payments-api.com/devices/DV7DvjGoZ2AEdhAKhtKXVv4b \
    -H 'Accept: application/hal+json' \
    -H 'Content-Type: application/json' \
    -H 'Finix-Version: 2022-02-01' \
    -d '{
        "action": "ACTIVATE"
    }'
```

A successful request returns `enabled: true`.

Optionally [check the device connection](#checking-the-connection).

## Step 3: Create a sale

With the payment terminal connected, you can begin processing in-person payments. Use the Device you enabled to create a sale.


```shell Transfer Request
curl -i -X POST \
    -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e \
    https://finix.sandbox-payments-api.com/transfers \
    -H 'Accept: application/hal+json' \
    -H 'Content-Type: application/json' \
    -H 'Finix-Version: 2022-02-01' \
    -d '{
        "amount": 150,
        "currency": "USD",
        "device": "DV7DvjGoZ2AEdhAKhtKXVv4b",
        "operation_key": "CARD_PRESENT_DEBIT",
        "tags": {
        "order_number": "chris123transfer"
        }
    }'
```


```json Transfer Response
{
  "id": "TRarp7Pz21Low4u2Urw5Ub4W",
  "created_at": "2019-04-29T20:44:00.13Z",
  "updated_at": "2022-10-10T05:59:17.59Z",
  "3ds_redirect_url": null,
  "additional_buyer_charges": null,
  "additional_healthcare_data": null,
  "address_verification": null,
  "amount": 3138,
  "amount_requested": 3138,
  "application": "APeUbTUjvYb1CdPXvNcwW1wP",
  "capture_amount": 150,
  "card_present_details": {
    "emv_data": {
      "application_identifier": "A0000001523010",
      "application_label": "DISCOVER",
      "application_preferred_name": null,
      "application_transaction_counter": "0005",
      "cryptogram": "ARCQ F666F8891F870D33",
      "issuer_code_table_index": null,
      "pin_verified": false,
      "tags": null
    },
    "masked_account_number": "************0059",
    "name": "Test Card 05",
    "brand": "DISCOVER",
    "entry_mode": "CHIP_ENTRY",
    "payment_type": "CREDIT",
    "approval_code": "004839"
  },
  "currency": "USD",
  "device": "DVfKLD9GZtsjcJxLtc2yCcfd",
  "expires_at": "2019-05-06T20:44:00.13Z",
  "failure_code": null,
  "failure_message": null,
  "idempotency_id": null,
  "is_void": false,
  "merchant": "MUeDVrf2ahuKc9Eg5TeZugvs",
  "merchant_identity": "IDsbTBawhnLBAVeinRb84vFR",
  "messages": [],
  "raw": null,
  "security_code_verification": null,
  "source": "PImTHaz7XVPx4M7mhu9x8gkU",
  "state": "SUCCEEDED",
  "tags": {
    "TicketNumber": "45878"
  },
  "trace_id": "FNX35FSuraeKKJr65wkGVFJni",
  "void_state": "UNATTEMPTED",
  "_links": {
    "self": {
      "href": "https://finix.sandbox-payments-api.com/authorizations/AUarp7Pz21Low4u2Urw5Ub4W"
    },
    "application": {
      "href": "https://finix.sandbox-payments-api.com/applications/APeUbTUjvYb1CdPXvNcwW1wP"
    },
    "transfer": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRqQCAX7nYHUnkE5YPFTknqd"
    },
    "device": {
      "href": "https://finix.sandbox-payments-api.com/devices/DVfKLD9GZtsjcJxLtc2yCcfd"
    },
    "merchant_identity": {
      "href": "https://finix.sandbox-payments-api.com/identities/IDsbTBawhnLBAVeinRb84vFR"
    }
  }
}
```

You may proceed with [managing payouts](/guides/payouts) and the post-payments lifecycle.

## Platform setup

If you are a Software Platform or Marketplace that is onboarding sellers, you will have multiple Merchants available to choose from when activating your device. Select the Merchant you want to process in-person payments for before activating your device.

See our [Platform Quickstart](/guides/platform-payments/platform-quickstart) to learn how to quickly onboard sellers.

## Additional functionality

After completing the initial setup, you may also want to verify your device connection or cancel operations as needed.

### Checking the connection

Prior to initiating a payment, you can check the connection to verify that the Device is ready to process payments. Checking the connection will confirm that the:

- Device is powered on.
- Finix Payment App is open.
- Device is connected to the internet.
- Device was able to connect to the Finix Server.


Use the ID of the Device you enabled to check the Connection. Below is a sample request and response.

- The `connection` field in the response has two potential values:
  - `open`: the Device is ready to process payments.
  - `closed`: the Device has not met the criteria outlined above to process payment.


If the `connection` is `closed` and a payment is initiated, the Transfer will fail with an error of `DEVICE_UNREACHABLE`.

Device

```json Device
{
  "id": "DVoDo7F6yYCnX2d6Fj9hvsd",
  "created_at": "2025-11-14T19:01:04.638451Z",
  "updated_at": "2025-11-14T19:01:04.638451Z",
  "android_version": "10",
  "configuration_details": {
    "allow_debit": true,
    "check_for_duplicate_transactions": true,
    "prompt_amount_confirmation": true,
    "prompt_manual_entry": false,
    "signature_threshold_amount": 10000,
    "bypass_device_on_capture": true,
    "prompt_receipt_confirmation": true,
    "display_tip_on_receipt": false,
    "prompt_tip_on_screen": false,
    "allow_standalone_authorizations": false,
    "allow_standalone_sales": false,
    "allow_standalone_refunds": false,
    "tipping_details": {
      "percent_tipping_threshold": 0,
      "percent_options": [
        18,
        20,
        22
      ],
      "fixed_options": [
        100,
        150,
        200
      ]
    },
    "idle_message": null,
    "idle_image_file_id": null,
    "automatic_receipt_delivery_methods": null,
    "available_receipt_methods": null,
    "prompt_for_signature": "NEVER",
    "surcharge_basis_points": null
  },
  "connection": "Open", // [!code highlight]
  "description": "Cashier One",
  "enabled": false,
  "firmware_version": "PayDroid_10.0.0_Eucalyptus_V20.1.23_20250108",
  "idle_message": null,
  "merchant": "MUsMvN47nRtdgUkE23SRHDC6",
  "model": "PAX_A800",
  "name": "My PAX_A800 Finix Device",
  "payment_app_version": "5.9.0",
  "serial_number": "2210172205",
  "tags": {},
  "_links": {
    "self": {
      "href": "https://finix.sandbox-payments-api.com/devices/DVoDo7F6yYCnX2d6Fj9hvsd"
    },
    "merchant": {
      "href": "https://finix.sandbox-payments-api.com/merchants/MUsMvN47nRtdgUkE23SRHDC6"
    },
    "transfers": {
      "href": "https://finix.sandbox-payments-api.com/transfers"
    },
    "authorizations": {
      "href": "https://finix.sandbox-payments-api.com/authorizations"
    }
  }
}
```

### Canceling a Device

To deactivate a Device and prevent it from processing future payments, send a PUT /devices/{device_id} request with the `DEACTIVATE` action.

### Canceling a transaction

To cancel an in-progress transaction, send a PUT /devices/{device_id} request to cancel the transaction.

If successful, the `failure_code` and `failure_message` on the Transfer resource will indicate the transaction was cancelled.


```json Cancel Transfer Response
{
  "id": "TRt3LfP6ot6s5HG1ZN9QE5qc",
  "created_at": "2025-07-18T23:20:55.95Z",
  "updated_at": "2025-07-18T23:20:55.95Z",
  "additional_buyer_charges": null,
  "additional_healthcare_data": null,
  "additional_purchase_data": null,
  "address_verification": null,
  "amount": 2000,
  "amount_requested": 2000,
  "application": "APc9vhYcPsRuTSpKD9KpMtPe",
  "card_present_details": {
    "emv_data": {
      "application_identifier": null,
      "application_label": null,
      "application_preferred_name": null,
      "application_transaction_counter": null,
      "cryptogram": null,
      "issuer_code_table_index": null,
      "network_emv_response": null,
      "pin_verified": false,
      "tags": null
    },
    "masked_account_number": null,
    "name": null,
    "brand": "UNKNOWN",
    "entry_mode": "UNKNOWN",
    "payment_type": null,
    "approval_code": null,
    "digital_signature_file_id": null
  },
  "currency": "USD",
  "destination": null,
  "device": "DVae7HFLS7BXNaFpKhdH1K6x",
  "externally_funded": "UNKNOWN",
  "failure_code": "CANCELLATION_VIA_API",
  "failure_message": "The transaction was canceled via API before the transaction was completed. The cardholder needs to attempt the transaction again.",
  "fee": 0,
  "fee_profile": "FPuizPqrhzYLbmJm88u7aqfj",
  "idempotency_id": null,
  "merchant": "MUmfEGv5bMpSJ9k5TFRUjkmm",
  "merchant_identity": "ID6UfSm1d4WPiWgLYmbyeo3H",
  "messages": ["RAW MESSAGE"],
  "operation_key": "CARD_PRESENT_SALE",
  "parent_transfer": null,
  "parent_transfer_trace_id": null,
  "raw": null,
  "ready_to_settle_at": null,
  "receipt_last_printed_at": null,
  "security_code_verification": null,
  "source": "PIhGjmMzFiT3oorhhBoMHdKc",
  "split_transfers": [],
  "state": "FAILED",
  "statement_descriptor": "FLX*FINIX FLOWERS",
  "subtype": "API",
  "supplemental_fee": null,
  "tags": {
    "order_number": "Test Transaction"
  },
  "tip_amount": null,
  "trace_id": "433ca932-11c4-4667-8a21-90db472b7691",
  "type": "DEBIT",
  "_links": {
    "application": {
      "href": "https://finix.sandbox-payments-api.com/applications/APc9vhYcPsRuTSpKD9KpMtPe"
    },
    "self": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRt3LfP6ot6s5HG1ZN9QE5qc"
    },
    "merchant_identity": {
      "href": "https://finix.sandbox-payments-api.com/identities/ID6UfSm1d4WPiWgLYmbyeo3H"
    },
    "device": {
      "href": "https://finix.sandbox-payments-api.com/devices/DVae7HFLS7BXNaFpKhdH1K6x"
    },
    "payment_instruments": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRt3LfP6ot6s5HG1ZN9QE5qc/payment_instruments"
    },
    "reversals": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRt3LfP6ot6s5HG1ZN9QE5qc/reversals"
    },
    "fees": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRt3LfP6ot6s5HG1ZN9QE5qc/fees"
    },
    "disputes": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRt3LfP6ot6s5HG1ZN9QE5qc/disputes"
    },
    "fee_profile": {
      "href": "https://finix.sandbox-payments-api.com/fee_profiles/FPuizPqrhzYLbmJm88u7aqfj"
    }
  }
}
```

## Next steps

Testing Your Integration
Learn how to test your In-Person Payments integration.

Sending Receipts
Learn how to print or email card-network-compliant receipts after a payment.

Device API Reference
Explore the Devices endpoints for activating, updating, and monitoring terminals.