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

# MX

Many banks leverage [MX](https://mx.com/) for transaction cleansing and categorization. Tight lets you build directly on top of your MX integration.

## 1. How it works

Through Tight's MX integration, your user's transactions are pushed into Tight immediately after MX has [cleansed](https://atrium.mx.com/docs#categorize-transactions) them. All of those transactions are then run through Tight's proprietary algorithms, which leverage the user's business type, accountant best practices, and the behavior of similar businesses within the Hurdlr app's 700k+ users.

That data can then be instantly leveraged throughout Tight's APIs, which include [expense categorization](/v5.0/products/bank-transactions/expenses/business-categorization), [tax categorization](/v5.0/products/bank-transactions/expenses/tax-categorization), [financial reporting](/v5.0/products/financial-statements), [tax estimates](/v5.0/products/taxes/tax-estimates/tax-estimates), [tax reporting](/v5.0/products/tax/tax-reporting), [tax filing](/v5.0/products/taxes/tax-filing), and many other features.

You can also quickly and easily embed [Tight's white-labelled UI](/v5.0/getting-started/quickstart/embedded-ui) into your product, which automatically leverages the data from your MX integration.

## 2. Pushing transactions into the Tight API

Once you have received your cleansed transactions from MX, you can simply POST those transactions into the Tight API:

```curl theme={null}
curl \
  --request POST \
  --url https://sandbox.hurdlr.com/rest/v5/banks/transactions \
  --header 'Authorization: Bearer ${access_token}' \
  --header 'Content-Type: application/json' \
  --data '{
    "transactions": [
      {
        "apiTransactionId": "1123144594",
        "date": "2020-08-27 00:00:00.000",
        "amount": 500.39,
        "description": "United Airlines",
        "mxCategoryName": "Air Travel",
        "apiAccountId": "459043850",
        "apiAccountNo": "5435",
        "apiAccountName": "Citi Premier® Card",
        "apiAccountType": "CREDIT",
        "apiInstitutionId": "Citi"
      }
    ]
  }'
```

On each transaction, you can provide the following attributes:

| Field            | Description                                                                                        | Format                                               |
| :--------------- | :------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |
| apiTransactionId | Id of the transaction record in your DB                                                            | Any string                                           |
| date             | Date that the transaction was incurred                                                             | `yyyy-MM-dd'T'HH:mm:ss.SSSZ`                         |
| amount           | Total value of the transaction; deposits should be positive and withdrawals should be negative     | Numeric, with 2 decimal places                       |
| description      | Transaction [`description`](https://atrium.mx.com/docs#transaction-fields) from MX                 | Any string                                           |
| mxCategoryName   | Transaction [`category`](https://atrium.mx.com/docs#transactions) from MX                          | Any string                                           |
| apiAccountId     | Id of the transaction's bank account in your DB                                                    | Any string                                           |
| apiAccountNo     | Mask of the user's bank account, often the last 4 digits of the account number (used in reporting) | 2-4 Alphanumeric characters                          |
| apiAccountName   | Display name for the user's bank account (used in reporting)                                       | Any string                                           |
| apiAccountType   | Type of the user's bank account                                                                    | Must be one of the following: "CREDIT", "DEPOSITORY" |
| apiInstitutionId | Name of the institution that the transaction originated from (used in reporting)                   | Any string                                           |

## 3. Next Steps

After your user's transactions are pushed into the Tight API, all of Tight's [Expense Tracking](/v5.0/products/bank-transactions-1/expense-tracking) and [Income Streams](/v5.0/products/bank-transactions-1/income-streams) features will immediately become available to your user, both in the Embeddable User Interface and via API.

Whether you are building your own UX from scratch or have some existing functionality that you are looking to enhance, the Tight API team is here to help. Don't hesitate to email us at [api@tight.com](mailto:api@tight.com), and we would be glad to help you create and complete the best next steps for your product and vision.
