> ## Documentation Index
> Fetch the complete documentation index at: https://docs.envisso.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Transactions File

> Specification for the daily transactions file delivered to Envisso.

<Panel>
  <Card title="Download CSV template" icon="download" href="https://prod-envisso.com/mintlify/envisso_integration_hub_transactions_file_template.csv">
    Transactions file template with column headers and descriptions.
  </Card>
</Panel>

## Overview

**Context** — All purchase and refund transactions for all merchants on a given day.

**File Type** — CSV

**File Name** — `<company_name>_transactions_YYYYMMDDHHmmSS`

* Example: `<company_name>_transactions_20221110233030`
* `company_name` = your company's name

**Frequency** — Daily

## Data Columns

The following table outlines the column definitions for the transaction data provided by Payment Service Providers (PSPs). This data includes both purchases and refunds, consolidated into a single file. Each row represents a distinct transaction.

| Column                          | Type     | Required  | Description                                                                                                                                                                                                                                                                                                                                                        |
| ------------------------------- | -------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `environment`                   | enum     | Mandatory | Environment to which the transaction belongs. Allowed: `PRODUCTION`, `TESTING`. Files should only contain records from a single environment.                                                                                                                                                                                                                       |
| `transaction_id`                | string   | Mandatory | Internal transaction ID in the PSP system. Must be unique; duplicates will be merged using the latest version by ingestion time. To update a transaction, re-send it with updated values. IDs longer than 64 characters will be truncated. Example: `6e088a06-3b6f-4b9b-a60a-d2fd985397be`.                                                                        |
| `transaction_type`              | enum     | Mandatory | Type of the transaction. Allowed: `PURCHASE`, `REFUND`.                                                                                                                                                                                                                                                                                                            |
| `merchant_registration_id`      | string   | Mandatory | Legal registration ID of the merchant. If no matching merchant exists at processing time, a new merchant is created in a `UNIDENTIFIED` state until a matching record arrives via the merchants file. See [Merchant Registration ID Types](/data-dictionaries/merchant-registration-id-types).                                                                     |
| `merchant_registration_id_type` | string   | Mandatory | Type of registration ID — see [Merchant Registration ID Types](/data-dictionaries/merchant-registration-id-types). Example: `UEN`.                                                                                                                                                                                                                                 |
| `merchant_registered_country`   | country  | Mandatory | Country where the merchant is legally registered — ISO 3166 alpha-2. Example: `SG`.                                                                                                                                                                                                                                                                                |
| `internal_merchant_id`          | string   | Optional  | Internal merchant ID of the account to which this transaction belongs. IDs longer than 64 characters will be truncated. Example: `398-347-598`.                                                                                                                                                                                                                    |
| `authorisation_id`              | string   | Mandatory | Unique identifier for the authorisation of the transaction. Only populated when `payment_method` is `CARD`; may be blank otherwise. IDs longer than 64 characters will be truncated. See the [authorisation specification](/sending-files/authorisations-file). Example: `b0a93f05-2e8d-4c3c-b409-6322d26b270e`.                                                   |
| `transaction_currency`          | currency | Mandatory | Currency of the transaction — ISO 4217 alpha-3. May differ from the merchant trading currency (e.g. for Multi-Currency Pricing). Example: `USD`.                                                                                                                                                                                                                   |
| `transaction_amount`            | decimal  | Mandatory | Transaction amount in the main unit of the currency, no thousand delimiters, dot as decimal separator. Amounts are rounded per [Unicode CLDR](https://www.unicode.org/cldr/charts/45/supplemental/detailed_territory_currency_information.html#format_info). Negative values are converted via absolute value. Zero-amount records are rejected. Example: `20.00`. |
| `processing_date_time`          | datetime | Mandatory | Time at which the transaction was processed (submitted and accepted for settlement) by the payment network — ISO 8601. Different from the authorisation time. Ideally UTC with a `Z` designator or UTC offset. Example: `2024-06-19T09:34:45Z`.                                                                                                                    |
| `payment_method`                | enum     | Mandatory | Payment method used. Allowed: `CARD`, `WALLET`, `CASH`, `VOUCHER`, `BNPL`, `ACCOUNT_TO_ACCOUNT`, `BANK_TRANSFER`, `OTHER`.                                                                                                                                                                                                                                         |
| `mcc`                           | string   | Mandatory | Merchant Category Code used for this transaction or which best represents the merchant — 4-digit string, [ISO 18245](/data-dictionaries/merchant-category-codes). Example: `5251`.                                                                                                                                                                                 |
| `website_url`                   | url      | Mandatory | Website URL where the customer completed the transaction. Required when `channel` is `ONLINE`; may be blank otherwise. Example: `www.timstiles.com`.                                                                                                                                                                                                               |
| `billing_descriptor`            | string   | Mandatory | Billing descriptor used for the transaction. Required when `payment_method` is `CARD`; may be blank otherwise. Example: `TIMS TILES`.                                                                                                                                                                                                                              |
| `card_bin`                      | string   | Mandatory | First 6 or 8 digits of the card number. Required when `payment_method` is `CARD`; may be blank otherwise. Must be exactly 6 or 8 digits. Example: `413756`.                                                                                                                                                                                                        |
| `channel`                       | string   | Mandatory | Channel through which the transaction was processed. Allowed: `POS`, `ONLINE`, `OTHER`. Any other values are relabeled as `OTHER`.                                                                                                                                                                                                                                 |
| `scheme_mid`                    | string   | Optional  | Scheme merchant ID (MID) used for this transaction, if known. Example: `1286459`.                                                                                                                                                                                                                                                                                  |
| `ip_address`                    | string   | Mandatory | IPv4 or IPv6 address from which the transaction was initiated. Required when `channel` is `ONLINE`. Unparseable values are nullified. Example: `83.48.126.235`.                                                                                                                                                                                                    |
| `terminal_id`                   | string   | Mandatory | Unique identifier of the terminal that processed the transaction. Required when `channel` is `POS`. Example: `10350001`.                                                                                                                                                                                                                                           |

Invalid values for any mandatory column will cause the record to be rejected and it must be re-sent in a subsequent file.
