# Terminal actions

Terminals can process payment intents and refunds.

When a terminal accepts one of these actions it will indicate that it is `in_progress`. When `in_progress`, other payments or refunds cannot be processed and will be rejected.

The latest processed action can be found on the terminal object. The status of the terminal action can be `succeeded`, `in_progress` or `succeeded`.

{% tabs %}
{% tab title="JSON" %}

```json
  "action": {
    "failureCode": null,
    "failureMessage": null,
    "paymentIntentId": "pi_eeGn3ga3pnPWqF4eUrNqnk",
    "refundId": null,
    "status": "succeeded",
    "type": "process_payment_intent"
  },
```

{% endtab %}
{% endtabs %}

It is possible to send a cancel action to the terminal through the API. The payment intent or refund will then be cancelled and the terminal becomes ready to process a new action. When cancelled the action will be set to null.

It is also possible for the customer to cancel the action from the Vibrant app.

If the Vibrant app is restarted the terminal will also cancel current action and become ready for a new action.

## **Activate terminal**

A terminal needs to be active in order to receive actions.

The terminal cannot receive actions before a user is logged in. When a Vibrant user logs into the app and select a terminal, the terminal becomes active.

An active terminal will have a value in the property `activeUserId`.

It is possible to 'take over' the terminal on another mobile device. Simply log into the app and select the terminal - it will be indicated which terminals are already in use.

## **Virtual**

Virtual terminals are possible on the sandbox. This makes it possible to 'simulate' a succesful payment or refund without having a mobile device with app involved.

This can be useful for development against the API, to easily get data flowing through the system.

## **Maximum number of terminals**

There is a default limit to the number of terminals an account can create, please contact us at &#x69;**<ntegration-support@vibrant.io>** if you need more terminals.

## **networkStatus \[work in progress]**

Currently we do not verify if the terminal is online or offline.&#x20;


---

# 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.vibrant.io/vibrant/vibrant-sandbox/terminal-actions.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.
