---
title: "Process transaction from terminal"
method: POST
path: "/pay/v3/processFromTerminal"
tags: ["Retail"]
---

# Process transaction from terminal

`POST /pay/v3/processFromTerminal`

Initiates a transaction through a terminal through the Nexio API rather than using the retail iframe. For more information on how to use this endpoint, see the steps in [Processing a transaction with a terminal](https://docs.nexiopay.com/docs/processing-a-transaction-with-a-terminal) in Guides.

You can also specify to save the card token from the terminal transaction so that you can use it for future transactions (through the [Run card transaction](https://docs.nexiopay.com/reference/runcardtransaction) endpoint).

<!-- theme: warning -->
> ⚠️ Try It
> 
> To use the Try It feature for this endpoint, you must use the credentials for your [Sandbox API user](https://docs.nexiopay.com/docs/sandbox-environments). 
> 
> You must also have a terminal connected to the Nexio account. For more information, see the [Pair terminal](https://docs.nexiopay.com/reference/pairterminal) or [Register terminal](https://docs.nexiopay.com/reference/registerterminal) endpoints.

<div style="display:none;">

## Request parameters
- data
- data.amount
- data.currency
- data.customFields
- data.customer
- data.customer.customerRef
- data.customer.orderNumber
- data.customer.orderDate
- data.customer.invoice
- data.customer.firstName
- data.customer.lastName
- data.customer.birthDate
- data.customer.nationalIdentificationNumber
- data.customer.email
- data.customer.phone
- data.customer.billToAddressOne
- data.customer.billToAddressTwo
- data.customer.billToCity
- data.customer.billToState
- data.customer.billToPostal
- data.customer.billToCountry
- data.customer.billToPhone
- data.customer.shipToAddressOne
- data.customer.shipToAddressTwo
- data.customer.shipToCity
- data.customer.shipToState
- data.customer.shipToPostal
- data.customer.shipToCountry
- data.customer.shipToPhone
- data.description
- data.lodging
- data.lodging.advanceDeposit
- data.lodging.checkInDate
- data.lodging.checkOutDate
- data.lodging.noShow
- data.lodging.roomNumber
- data.lodging.roomRate
- terminalId
- processingOptions.saveCardToken
- isAuthOnly
- card
- card.cardHolderName

## Response parameters
- terminalRequestId
- terminalRequestStatus

</div>

## Request body

- object
  - `terminalId` string, required — An ID used to identify a specific terminal. For a list of terminal IDs, see the [View terminal list](https://docs.nexiopay.com/reference/viewterminallist) endpoint.
  - `data` object, required — Transaction and customer data.
    - `amount` number, required — The amount. The maximum value has 16 digits total, including up to two of those digits after the decimal point.
    - `currency` Currency — unresolved $ref
    - `customer` object — Customer information for the retail transaction.
      - `orderNumber` string — The order number from the transaction.
      - `customerRef` CustomerRef — unresolved $ref
      - `orderDate` string — The date of the customer's order. This field is required by certain gateways. For information on gateway-specific required fields, see the [Connections](https://docs.nexiopay.com/docs/connections) documentation. Use any of the following formats for the date: - Four-digit year, two-digit month and day, separated with hyphens: YYYY-MM-DD.<br>For example, `2021-08-26`. - [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) date expressed in UTC. It must include the 3 decimal places for milliseconds.<br>For example, `2001-08-26T13:35:00.978Z` or `1990-12-05T00:00:00.000Z`. - UNIX date (as an integer representing seconds).<br>For example, `1630006518`. <!-- theme:info --> > #### Note > This is NOT a quick way to schedule a transaction. Specifying a date in the future does not cause the order to be run automatically at the indicated date or time.
      - `invoice` string — The invoice number from the transaction.
      - `firstName` FirstName — unresolved $ref
      - `lastName` LastName — unresolved $ref
      - `birthDate` string — The customer's date of birth. Use any of the following formats for the date: - Four-digit year, two-digit month and day, separated with hyphens: YYYY-MM-DD.<br>For example, `2001-08-26`. - [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) date expressed in UTC. It must include the 3 decimal places for milliseconds.<br>For example, `2001-08-26T13:35:00.978Z` or `1990-12-05T00:00:00.000Z`. - UNIX date (as an integer representing seconds).<br>For example, `998854500`.
      - `nationalIdentificationNumber` string — The identification number issued by a national authority to the individual person, such as social security number. This field is required by certain gateways. For information on gateway-specific required fields, see the [Connections](https://docs.nexiopay.com/docs/connections) documentation. The following list provides information about potential identification sources: - **Brazil:** CPF or CNPJ. - **Chile:** RUN for individual users and RUT for companies - **Colombia:** For individual users CC (Cédula de ciudadanía), CE (Cédula de Extranjería) and TI (Targeta de Identidad) and for companies NIT - **Mexico:** RFC and CURP (individual user) and RFC (legal entity/company)
      - `email` Email — unresolved $ref
      - `phone` Phone — unresolved $ref
      - `billToAddressOne` BillToAddressOne — unresolved $ref
      - `billToAddressTwo` BillToAddressTwo — unresolved $ref
      - `billToCity` BillToCity — unresolved $ref
      - `billToState` BillToState — unresolved $ref
      - `billToPostal` BillToPostal — unresolved $ref
      - `billToCountry` BillToCountry — unresolved $ref
      - `billToPhone` BillToPhone — unresolved $ref
      - `shipToAddressOne` ShipToAddressOne — unresolved $ref
      - `shipToAddressTwo` ShipToAddressTwo — unresolved $ref
      - `shipToCity` ShipToCity — unresolved $ref
      - `shipToState` ShipToState — unresolved $ref
      - `shipToPostal` ShipToPostal — unresolved $ref
      - `shipToCountry` ShipToCountry — unresolved $ref
      - `shipToPhone` ShipToPhone — unresolved $ref
    - `customFields` CustomFields — unresolved $ref
    - `description` string — A description of the transaction.
    - `lodging` object — Lodging data (related to hotels, motels, inns, etc.). For a tutorial on using lodging data, see [Getting started with hospitality](getting-started-with-hospitality) in Guides.
      - `advanceDeposit` boolean — Set to true if the customer paid a deposit in advance of their reservation.
      - `checkInDate` string — The customer's check-in date. Format YYYY-MM-DD.
      - `checkOutDate` string — The customer's check-out date. Format YYYY-MM-DD.
      - `noShow` boolean — Set to `true` if the customer failed to show up to their reservation.
      - `roomNumber` number — The customer's room number.
      - `roomRate` number — The room's rate, per day.
  - `card` object — Card information.
    - `cardHolderName` string — The cardholder's name as it appears on the card. If saving the card token, this value is saved in the card token.
  - `isAuthOnly` boolean — Set to `true` to run an auth only transaction for the terminal.
  - `clientIp` string — Specifies the IP address of where the request is coming from.
  - `processingOptions` object — Processing options for terminal transactions.
    - `saveCardToken` boolean — For a retail transaction using a terminal (such as with the [Process transaction from terminal](https://docs.nexiopay.com/reference/processtransactionfromterminal) endpoint or with the "Card (terminal)" option through the retail iframe), set this value to `true` to return a token that you can use for a future transaction. To retrieve the saved token, use the ["success" listener event](https://docs.nexiopay.com/docs/adding-an-event-listener), the [webhook](https://docs.nexiopay.com/docs/webhooks) from the transaction, or the [View terminal transaction status](https://docs.nexiopay.com/reference/viewterminaltransactionstatus) endpoint. To run a transaction in the future with the saved token, use the [Run card transaction](https://docs.nexiopay.com/reference/runcardtransaction) endpoint.

## Response `200`

Success

- object
  - `terminalRequestId` string — An ID used to identify a transaction initiated using a terminal.
  - `terminalRequestStatus` 'initialized' | 'pending' | 'success' | 'failed' — The status of the request to the terminal. This is not the same as the `transactionStatus`. For example, the `terminalRequestStatus` can be `success` but the `transactionStatus` can be `declined` because the system successfully sent and received a response from the terminal even though the gateway connection declined the payment.
  - `random` RandomNnnn — unresolved $ref

## Other responses

- `401` — Unauthorized. For help with this error and other error codes, see [Common errors](https://docs.nexiopay.com/docs/common-errors) in the Guides area.

---

[API](https://skmtc.dev/nexiopay/apis/payments-api-reference.md) · [All operations](https://skmtc.dev/nexiopay/apis/payments-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nexiopay/payments-api-reference/revisions/b414b73979e5/schema)
