---
title: NetFile
description: Learn how to seamlessly connect your Anedot account with NetFile for streamlined campaign finance reporting.
---

[Skip to content](https://help.anedot.com/knowledge/netfile-integration#main-content)

[![anedot-logo](https://help.anedot.com/hubfs/anedot-logo.svg)](https://help.anedot.com/knowledge?hsLang=en)

Open main navigation

Close main navigation

- [Get Support ⤴](https://www.anedot.com/getsupport)

[Get Support ⤴](https://www.anedot.com/getsupport)

 Here to help 👋

- There are no suggestions because the search field is empty.

1. [Public Help Center](https://help.anedot.com/knowledge?hsLang=en)
2. [Integrations](https://help.anedot.com/knowledge/integrations?hsLang=en)
3. [Political Campaign Tools](https://help.anedot.com/knowledge/integrations?hsLang=en#political-campaign-tools)

# NetFile

## Learn how to seamlessly connect your Anedot account with NetFile for streamlined campaign finance reporting.

**NetFile** is a political compliance software platform that supports campaign disclosure and reporting requirements.

---

### Table of Contents

- [Connecting Anedot to NetFile](https://help.anedot.com/knowledge/netfile-integration#connect)
- [Data Relays](https://help.anedot.com/knowledge/netfile-integration#data)
- [Field Mapping](https://help.anedot.com/knowledge/netfile-integration#field)
- [Payload Data](https://help.anedot.com/knowledge/netfile-integration#payload)

---

### Connecting Anedot to NetFile

To connect Anedot with NetFile:

1. In your Anedot account, go to **Settings \> Integrations \> Directory.**
2. Click the blue **+ New Connection** and select **NetFile** from the list.
3. Configure **Action Page** Syncing
   
     - By default, **all Action Pages** will be synced with NetFile.
     - To exclude specific pages, enter a **comma-separated list** of their Action Page IDs.
     - *(Optional)* Scope the integration to a specific **Team**. If no team is selected, all selected pages will be synced.
4. Enter **NetFile Credentials**
   
     - **Username**
     - **Password**
     - **Account Name**
     - *(Optional)* **Bank Account ID**
5. Click **Save**.Once credentials are saved, the integration is live.

*You can update Action Pages, Team scoping, and credentials at any time.*

***Important**: NetFile's Campaign FreeFiler software does not support integration with Anedot.*

---

### Data Relays

Anedot sends data from both **financial (donation)** and **non-financial (lead)** Action Pages to NetFile. Due to NetFile's session-based API, each submission triggers a series of relays within a session.

> *Conduit Transactions are not supported. *

#### Relay Sequence

1. **Session Start:** Opens a session and receives a `sessionID`.
2. **Donor Information:** Sent using the `sessionID`.
3. **Donation Data:** (If applicable) Sent using the same `sessionID`.
4. **Session Close:** Final relay closes and invalidates the session.

> *All relays must occur in sequence for successful data transmission.*

---

#### Relay Reliability and Retry Behavior

- **Push Unsent**: You can manually retry failed donations using a date range filter.
  
    - Applies to **all Action Pages**, regardless of type.
    - If **five consecutive relay failures** occur, the integration is marked **inactive** and stops attempting further relays.

---

#### Important Notes

- Anedot does **not use or store unique donor identifiers** for NetFile.
- All relay requests are sent as **“upserts”** *(update or insert)*:
  
    - NetFile attempts to **find and update** an existing contributor.
    - If no match is found *(e.g. data mismatch)*, a **duplicate record** may be created.
    - You may need to use NetFile’s **Merge Entities** feature to clean up duplicates.

---

#### Managing Data in NetFile

- Use the **Contributions** tab to search for gifts.
- You can search for:
  
    - **Monetary records** *(donations)*
    - **Non-monetary records** *(form submissions)*
- Review **search fields**, **search results**, and **field mappings** as needed to manage your records effectively.

---

### Field Mapping

#### Donor Fields

The Anedot Fields match the Submission’s Raw Data and the NetFile Fields match the Request Body relay.

| **Anedot Field** | **NetFile Field** |
| --- | --- |
| (Submission) id | Id |
| email | Email |
| suffix | Suffix |
| “1” | Category |
| employerName | Employer |
| “1” | IdSource |
| lastName | LastName |
| firstName | FirstName |
| phone | PhoneHome |
| address {postalCode} | AddressZip |
| occupation | Occupation |
| address {city} | AddressCity |
| address {line1} | AddressLine1 |
| address {line2} | AddressLine2 |
| address {region} | AddressState |
| sessionId *(from Relay 1 Response Body)* | SessionId |

---

#### Donation Fields

The Anedot Fields match the Submission’s Raw Data and the NetFile Fields match the Request Body relay.

| **Anedot Field** | **NetFile Field** |
| --- | --- |
| (Donation) id | Id |
| amount (x100) | Amount |
| (Submission) id | EntityId |
| “1” | IdSource |
| “YYYYMMDD” *(Formatted date of relay)* | BatchNumber |
| *(NetFile field saved in the integration drawer)* | ElectionYear |
| *(NetFile field saved in the integration drawer)* | ElectionCycle |
| createdAt | DateDisclosure |
| “1” | EntityIdSource |
| “1” | TransactionType |
| *(NetFile field saved in the integration drawer)* | BankAccountReference |
| sessionId *(from Relay 1 Response Body)* | SessionId |

---

### Payload Data

#### Request Headers

```
{ } 
```

#### Request Body 1 *(Opens sessions)*

```
{ }
```

#### Request Body 2 *(Donor relay)*

```
{  "Items": [{    "Id": "de5a291d4d67e4136b879",    "Email": "admin@anedot.com",    "Suffix": null,    "Category": "1",    "Employer": null,    "IdSource": "1",    "LastName": "Dot",    "FirstName": "Annie",    "PhoneHome": "1231231234",    "AddressZip": null,    "Occupation": null,    "AddressCity": null,    "AddressLine1": null,    "AddressLine2": null,    "AddressState": null  }],  "SessionId": "aa7e376112be468b9daeb00300bd267b"}
```

#### Request Body 3 *(Donation relay)*

```
{  "Items": [{    "Id": "d915925476d75c84e5e3a",    "Amount": 100.0,    "EntityId": "de5a291d4d67e4136b879",    "IdSource": "1",    "BatchNumber": "20230515",    "ElectionYear": null,    "ElectionCycle": null,    "DateDisclosure": "2023-05-15T14:32:01-04:00",    "EntityIdSource": "1",    "TransactionType": "1",    "BankAccountReference": ""  }],  "SessionId": "aad91731fbd64058b338b00300be189e"}
```

#### Request Body 4 *(Ends session)*

```
{  "SessionId": "aa7e376112be468b9daeb00300bd267b"}
```

#### Response Body 1 *(Open session)*

```
{  "account": "ANEDOT",  "lockDate": null,  "userName": "PDIETZEL",  "sessionId": "aa7e376112be468b9daeb00300bd267b",  "futureDate": null,  "responseStatus": null}
```

#### Response Body 2 *(Donor relay)*

```
{  "items": [{    "index": 0,    "action": "Update",    "netFileId": "366",    "submittedId": "de5a291d4d67e4136b879",    "errorMessage": null  }],  "failureCount": 0,  "successCount": 1,  "responseStatus": null}
```

#### Response Body 3 *(Donation relay)*

```
{  "items": [{    "index": 0,    "action": "Insert",    "netFileId": "1586",    "submittedId": "d915925476d75c84e5e3a",    "errorMessage": null  }],  "failureCount": 0,  "successCount": 1,  "responseStatus": null}
```

#### Response Body 4 *(Ends session)*

```
{  "responseStatus": null}
```

#### Response Status *(Success)*

```
200
```

#### Response Status *(Failure)*

```
500
```

- [Get Started](https://help.anedot.com/knowledge/get-started?hsLang=en#main-content)

    - [Anedot 101](https://help.anedot.com/knowledge/get-started?hsLang=en#anedot-101)
    - [Apply for an Account](https://help.anedot.com/knowledge/get-started?hsLang=en#apply-for-an-account)
    - [Security](https://help.anedot.com/knowledge/get-started?hsLang=en#security)
- [Action Pages](https://help.anedot.com/knowledge/action-pages?hsLang=en#main-content)

    - [Action Page Basics](https://help.anedot.com/knowledge/action-pages?hsLang=en#action-page-basics)
    - [Page Builder](https://help.anedot.com/knowledge/action-pages?hsLang=en#page-builder)
    - [Advanced Features](https://help.anedot.com/knowledge/action-pages?hsLang=en#advanced-features)
    - [State Specific Pages](https://help.anedot.com/knowledge/action-pages?hsLang=en#state-specific-pages)
- [Finance](https://help.anedot.com/knowledge/finance?hsLang=en#main-content)

    - [Management & Reporting](https://help.anedot.com/knowledge/finance?hsLang=en#management-reporting)
    - [Internal Processing](https://help.anedot.com/knowledge/finance?hsLang=en#internal-processing)
- [Integrations](https://help.anedot.com/knowledge/integrations?hsLang=en#main-content)

    - [CRM & Donor Management Systems](https://help.anedot.com/knowledge/integrations?hsLang=en#crm-donor-management-systems)
    - [Email Marketing & Communication Tools](https://help.anedot.com/knowledge/integrations?hsLang=en#email-marketing-communication-tools)
    - [Integration & Automation Tools](https://help.anedot.com/knowledge/integrations?hsLang=en#integration-automation-tools)
    - [Political Campaign Tools](https://help.anedot.com/knowledge/integrations?hsLang=en#political-campaign-tools)
    - [E-commerce, Financial, and Membership Tools](https://help.anedot.com/knowledge/integrations?hsLang=en#e-commerce-financial-and-membership-tools)
    - [Relay Data & Troubleshooting](https://help.anedot.com/knowledge/integrations?hsLang=en#relay-data-troubleshooting)
- [Settings](https://help.anedot.com/knowledge/settings?hsLang=en#main-content)

    - [Access](https://help.anedot.com/knowledge/settings?hsLang=en#access)
    - [Configuration](https://help.anedot.com/knowledge/settings?hsLang=en#configuration)
    - [Finance](https://help.anedot.com/knowledge/settings?hsLang=en#finance)
    - [Setup](https://help.anedot.com/knowledge/settings?hsLang=en#setup)
    - [Other Actions](https://help.anedot.com/knowledge/settings?hsLang=en#other-actions)
- [Donor Support](https://help.anedot.com/knowledge/donor-support?hsLang=en#main-content)

    - [Getting Started with Your Donor Account](https://help.anedot.com/knowledge/donor-support?hsLang=en#getting-started-with-your-donor-account)
    - [Manage Your Giving](https://help.anedot.com/knowledge/donor-support?hsLang=en#manage-your-giving)
    - [Donor FAQ](https://help.anedot.com/knowledge/donor-support?hsLang=en#donor-faq)

[![Chill listening crop-3](https://help.anedot.com/hubfs/623c96e00d0d93f7d3a66f2e_Anedot_Typemark_Blue.svg "Chill listening crop-3")](https://www.anedot.com/)

<https://facebook.com/anedot> <https://x.com/anedot> <https://instagram.com/anedot> <https://www.youtube.com/@Anedot> <https://open.spotify.com/show/7fK8maOMuj87AeAotVDZRF> [mailto:help@anedot.com](mailto:help@anedot.com)

Copyright © 2025, Anedot, Inc.