**Transaction Match** is an [Offline Job](https://docs.foursquare.com/fsq-developers-places/reference/offline-job-onboarding-guide) that allows users to match large batches of transaction data to Foursquare's POI dataset, returning standardized place IDs, enriched attributes, and confidence-based match results for each record.

## Input

### Supported File Types

- CSV
- parquet

For best results, all null values should be sanitized to empty strings.

### Input File Format

```undefined
root
 |-- dba_name: string (nullable = false)
 |-- mcc: string (nullable = false)
 |-- card_presence: string (nullable = false)
 |-- city: string (nullable = false)
 |-- state: string (nullable = false)
 |-- zip: string (nullable = true)
```

### Details

| Field Name | Description | Required |
| --- | --- | --- |
| dba_name | "Doing Business As" - the merchant's business name as it appears in transactions | true |
| mcc | Merchant Category Code - a 4 digit-code that classifies the merchant's type of business (e.g., restaurants, gas stations). | true |
| card_presence | Indicates whether the card was physically present during the transaction (e.g., "Card Present", "Card Not Present"). | true |
| city | City where the merchant is located. | true |
| state | State code where the merchant is located (e.g., "NY", "CA"). | true |
| zip | Postal/ZIP code of the merchant's location. | false |

## Output

Output will always be generated as parquet.

### Output File Format

```undefined
root
 |-- venuename: string (nullable = true)
 |-- city: string (nullable = true)
 |-- state: string (nullable = true)
 |-- zip: string (nullable = true)
 |-- output_venuename: string (nullable = true)
 |-- output_address: string (nullable = true)
 |-- output_city: string (nullable = true)
 |-- output_state: string (nullable = true)
 |-- output_zip: string (nullable = true)
 |-- latitude: double (nullable = true)
 |-- longitude: double (nullable = true)
 |-- confidence: string (nullable = true)
 |-- comment: string (nullable = true)
 |-- target_id: string (nullable = true)
```

### Details

| Field Name | Description | Nullable? |
| --- | --- | --- |
| venuename | Original input merchant name. | false |
| city | Original input city. | true |
| state | Original input state. | true |
| output_venuename | Final harmonized venue name. | true |
| output_address | Final harmonized venue address. | true |
| output_city | Final harmonized city. | true |
| output_state | Final harmonized state. | true |
| output_zip | Final harmonized ZIP code. | true |
| longitude | Longitude coordinate. | true |
| latitude | Latitude coordinate. | true |
| confidence | Match confidence level: "High", "Medium", "Low", "Invalid Input", or "No Match - More Info Needed" | false |
| comment | Additional context about the match source. | true |
| target_id | Foursquare venue ID assigned during final harmonization. | true |
