# Transaction Types and Behaviors

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

## <mark style="color:blue;">Transaction Types & Behaviors</mark>

This reference explains the transaction types and behaviors available through ArgoFire. It outlines how `TransType` values map to different endpoints and what actions they trigger in the transaction lifecycle.

Use this guide when developing against endpoints like `ProcessCreditCard`, `ProcessCheck`, or `ProcessDebitCard`, or when implementing features such as `Void`, `PostAuth`, `Repeat Sale`, or `Capture All`.

## <mark style="color:blue;">Transaction Types</mark>

These are core `TransType` values passed into transaction endpoints to define the behavior of a payment operation.

| Name         | Description                                                                                     |
| ------------ | ----------------------------------------------------------------------------------------------- |
| **Sale**     | Standard payment. Funds are authorized and captured immediately.                                |
| **Auth**     | Authorization only. Holds funds without capturing. Captured later via `PostAuth`.               |
| **PostAuth** | Captures a previously authorized transaction.                                                   |
| **Return**   | Refunds a settled `Sale` or captured `Auth`.                                                    |
| **Void**     | Cancels a `Sale` or `Auth` before it is settled.                                                |
| **Reversal** | Attempts to cancel a transaction immediately after submission. Rare; depends on issuer support. |

## <mark style="color:blue;">Transaction Workflows</mark>

These are compound or operational workflows that build on the basic transaction types, often referencing prior transactions or using stored payment data.

| Name            | Description                                                                       |
| --------------- | --------------------------------------------------------------------------------- |
| **Capture All** | Captures all unsettled `Auth` transactions for the merchant in a batch operation. |
| **Repeat Sale** | Submits a new `Sale` using stored payment data from a previous transaction.       |

## <mark style="color:blue;">Transaction Usage Details</mark>

**Sale**

* **TransType:** `Sale`
* **Used With:** `ProcessCreditCard`, `ProcessCheck`, `ProcessDebitCard`
* **Behavior:** Charges the payment method and settles normally.

**Auth**

* **TransType:** `Auth`
* **Used With:** `ProcessCreditCard`, `ProcessDebitCard`
* **Behavior:** Places a hold on funds. Use `PostAuth` to settle later.

**PostAuth**

* **TransType:** `PostAuth`
* **Used With:** `ProcessCreditCard`, `ProcessDebitCard`
* **Behavior:** Captures funds from a prior `Auth`.

**Return**

* **TransType:** `Return`
* **Used With:** `ProcessCreditCard`, `ProcessCheck`, `ProcessDebitCard`
* **Behavior:** Refunds funds to the original payment method.

**Void**

* **TransType:** `Void`
* **Used With:** `ProcessCreditCard`, `ProcessCheck`, `ProcessDebitCard`
* **Behavior:** Cancels a transaction before it settles.
* **Limitation:** Must be used on the same day before the transaction is batched for settlement.

**Reversal**

* **TransType:** `Reversal` *(or configured via `ExtData`)*
* **Used With:** `ProcessCreditCard`
* **Behavior:** Attempts to cancel a transaction immediately after submission. May not be supported by all issuers.

## <mark style="color:blue;">Workflow Behaviors</mark>

**Capture All**

* **Endpoint:** `CaptureAll`
* **Behavior:** Captures all currently authorized, unsettled transactions for the merchant.
* **Use Case:** End-of-day batch capture for all prior `Auth` transactions.

**Repeat Sale**

* **Endpoint:** `ProcessCreditCard` or `ProcessCheck`
* **Input:** Requires a previously stored `CcInfoKey`, `CheckInfoKey`, or `TransRefID` passed via `ExtData`
* **Behavior:** Submits a new `Sale` using stored payment credentials from a prior transaction.

\
\ <br>

<br>

<br>


---

# 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://developers.frontstream.com/argofire/transaction-types-and-behaviors.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.
