# Order Detail API

ReST-style reporting endpoint for retrieving granular transaction, settlement, and chargeback data by date range or transaction ID.

Source: https://developer.inoviopay.com/api/order-detail.html  
Markdown: https://developer.inoviopay.com/api/order-detail.md

The Order Detail API is a ReST-style service used to retrieve granular transaction data, settlement details, and chargeback information. Unlike the real-time Payment API, this endpoint is optimized for data reconciliation and reporting.

**GET** `https://api.inoviopay.com/payment/prtl_service.cfm`

### Query Filtering

The `REQUEST_FILTER` parameter is the core of this API. It requires a specific internal format: `OBJECT_NAME:KEY+VALUE|KEY2+VALUE2`. **All filters must be URL-encoded.** You can refer to the list of filters [here](https://developer.inoviopay.com/reference/reporting-filters.md#reporting-filter-parameters).

| Filter Key | Description |
|---|---|
| FROM_TIMESTAMP | Start date (YYYY-MM-DD). **Required.** |
| TO_TIMESTAMP | End date (YYYY-MM-DD). **Required.** |
| REF_DATE | Search by `AUTH` (default), `SETTLE`, or `UPDATE` date. |
| SITE_ID | Filter by a specific website ID. |
| TRANS_ID | Retrieve a specific transaction by its ID. |

> **30-Day Limit**
> Standard queries are limited to a 30-day date range. For high-volume merchants needing up to 100,000 records, utilize **Fast Filter Mode** by adding `FAST_FILTER+1` to your request filter.

### Important Response Fields

- `ARN`: The Acquirer Reference Number for tracking card movement.
- `CB_AMOUNT / CB_REASON`: Populated only for chargeback events.
- `TRANS_STATUS`: Current state (APPROVED, DECLINED, PENDING, SETTLED).
- `XTL_UDF01-20`: Your custom pass-through fields.

### Standard report request


> **Not in the SDKs yet**
> The Order Detail (reporting) API is not implemented in any of the four SDKs. This is a separate endpoint (`prtl_service.cfm`) from the one the SDKs speak (`pmt_service.cfm`), `REQUEST_FILTER` and `FAST_FILTER` appear nowhere in any language's source tree. The closest SDK equivalent is `status(orderRef)` (see [Order Status](https://developer.inoviopay.com/api/status.md)), which returns the net position for one order from `pmt_service.cfm`'s `CCSTATUS` action, not a date-ranged, multi-order report. Use the cURL example directly, or see [the SDKs](https://developer.inoviopay.com/sdks/index.md).

### Fast Filter mode


> **Not in the SDKs yet**
> Same as above: `FAST_FILTER` is not modeled in any SDK. See [the SDKs](https://developer.inoviopay.com/sdks/index.md).

**cURL**

```bash
curl -G "https://api.inoviopay.com/payment/prtl_service.cfm" \
  -d "req_username=api_user&req_password=P%40ssw0rd%21&site_id=12345&request_api_version=4.14&request_response_format=JSON&request_filter=FROM_TIMESTAMP%3A2026-08-01%7CTO_TIMESTAMP%3A2026-08-31"
```

**Response**

```json
[
  {
    "TRANS_ID": 8839201112,
    "PO_ID": 77281920,
    "TRANS_STATUS": "SETTLED",
    "TRANS_VALUE": 49.99,
    "ARN": "74008824192010293847561",
    "XTL_UDF01": "INV-999"
  },
  {
    "TRANS_ID": 8839201118,
    "PO_ID": 77281926,
    "TRANS_STATUS": "APPROVED",
    "TRANS_VALUE": 19.99,
    "ARN": "74008824192010293847588",
    "XTL_UDF01": "INV-1004"
  }
]
```

**cURL**

```bash
curl -G "https://api.inoviopay.com/payment/prtl_service.cfm" \
  -d "req_username=api_user&req_password=P%40ssw0rd%21&site_id=12345&request_api_version=4.14&request_response_format=JSON&request_filter=FROM_TIMESTAMP%3A2026-08-01%7CTO_TIMESTAMP%3A2026-08-31%7CFAST_FILTER%2B1"
```

**Response**

```json
[
  {
    "TRANS_ID": 8839201112,
    "PO_ID": 77281920,
    "TRANS_STATUS": "SETTLED",
    "TRANS_VALUE": 49.99,
    "ARN": "74008824192010293847561",
    "XTL_UDF01": "INV-999"
  }
]
```
