# Concepts

Before we get into how to programmatically move money, it's important that you learn some core concepts and aspects of our API and how your business could fit within our solution.

### Merchant

The Merchant object represents a legal entity from your company. It represents a Brazilian entity with its own CNPJ. Each entity may hold one or more bank accounts.

### Bank account

A bank account is a valid account that holds and moves money. Throughout our bank accounts, it is possible to look at balances, transactions, and movement in real time. In order to move money within a bank account.

### Virtual account

A virtual account is the core of everything we do at **Aurix Pay**. It's a layer below the standard bank account. It can receive incoming payments in place of a bank account and divide up the balance of the linked bank account. Moreover, a virtual account reports its own balance and transactions.

### Documents

A document can be interpreted as a transaction inside **Aurix Pay**. It can be a payment or collecting document. Every time there is money movement in your account, this transaction will have a document representing it.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.aurixpay.com/developers/editor.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
