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

# Purpose Codes

> Transaction purpose values accepted on on-ramp and off-ramp requests

Every on-ramp and off-ramp request takes a `purpose` code declaring why funds are moving. Lumx uses the purpose for AML monitoring, regulatory reporting, and to match the transaction against the correct destination [holder relationship](/concepts/destinations#holder-relationships).

## Accepted values

| **Code**                 | **When to use**                                                                                                                    |
| :----------------------- | :--------------------------------------------------------------------------------------------------------------------------------- |
| `PERSONAL_ACCOUNT`       | Customer moving funds to or from an external account they own. Only valid with destinations whose `holder.relationship` is `SELF`. |
| `INVESTMENT`             | Capital allocated to securities, funds, or other investment vehicles.                                                              |
| `REAL_ESTATE`            | Purchase, sale, or rental payments related to real property.                                                                       |
| `TRADE_TRANSACTIONS`     | Cross-border payments for goods or services: supplier invoices, import/export settlement.                                          |
| `TAX`                    | Tax remittance to a domestic or foreign tax authority.                                                                             |
| `LOAN`                   | Loan disbursement, repayment, or inter-company capital injection.                                                                  |
| `BILLS`                  | Routine bill payment: utilities, subscriptions, recurring services.                                                                |
| `EXPENSES_REIMBURSEMENT` | Reimbursing employees or contractors for business expenses.                                                                        |
| `PROFESSIONAL_SERVICES`  | Payments for consulting, legal, accounting, or other professional services.                                                        |

<Warning>
  `PERSONAL_ACCOUNT` only works with `SELF`-relationship destinations. Using it with any other relationship returns a validation error.
</Warning>

## Choosing the right code

Pick based on the economic substance of the transaction, not the rail or destination type. Two heuristics:

* If the customer and destination holder are the same legal entity, use `PERSONAL_ACCOUNT`.
* Otherwise, pick the code that best describes the underlying commercial activity. When more than one applies, go with the more specific one: `TAX` over `BILLS`, `EXPENSES_REIMBURSEMENT` over `PROFESSIONAL_SERVICES`.

Misclassifying purpose can trigger [RFI](/compliance/rfi) or transaction holds during compliance review.

## Related resources

<CardGroup cols="2">
  <Card title="Transactions" href="/concepts/transactions">
    Full transaction lifecycle and request schemas.
  </Card>

  <Card title="Destinations" href="/concepts/destinations">
    Holder relationships that pair with each purpose code.
  </Card>

  <Card title="Treasury management" href="/guides/use-cases/treasury-management">
    Worked example of purpose codes across an inter-company flow.
  </Card>

  <Card title="Request for Information" href="/compliance/rfi">
    What happens when purpose doesn't match the underlying activity.
  </Card>
</CardGroup>
