# Core Concepts

Understanding four objects makes the rest of Fincore easier to integrate:
Client, Account, Instrument, and Customer.

Use this page for the mental model. Use the linked contract sections for exact
fields, enums, examples, and response codes.

## Client

Your company is represented as a Client. Most public operations are scoped to the
client either in the path or in the request body.

| Need | OpenAPI contract |
|  --- | --- |
| Retrieve credentials | [Retrieve client credentials](/products/fincore/guides/authentication#retrieve-client-credentials) |
| Create bearer token | [Create authentication token](/products/fincore/guides/authentication#create-authentication-token) |


## Centralizing Account

The Centralizing Account is your main Monato account. It can send and receive
money and usually acts as the treasury hub for your integration.

| Need | OpenAPI contract |
|  --- | --- |
| Discover account IDs, CLABEs, balances, instruments, and bank adapters | [Retrieve client accounts](/products/fincore/guides/accounts#retrieve-client-accounts) |


The most commonly reused values are `instrumentId`, `bankId`, and
`clientBankAdapterId`.

## Private Account

A private account is a dedicated CLABE you can assign to a customer, product, or
collection workflow.

| Need | OpenAPI contract |
|  --- | --- |
| Create a client private account | [Create private account](/products/fincore/guides/accounts#create-private-account) |
| Create a Business Unit private account | [Create Business Unit private account](/products/fincore/guides/accounts#create-business-unit-private-account) |
| Manage private account lifecycle | [Block account](/products/fincore/guides/accounts#block-account), [Activate account](/products/fincore/guides/accounts#activate-account), [Cancel account](/products/fincore/guides/accounts#cancel-account) |


## Instrument

An instrument is the payment method reference used by transactions. Money Out
uses a source instrument and a destination instrument.

| Need | OpenAPI contract |
|  --- | --- |
| Register CLABE or debit-card instruments | [Register instrument](/products/fincore/guides/instruments#register-instrument) |
| List instruments | [List instruments](/products/fincore/guides/instruments#list-instruments) |
| Retrieve one instrument | [Retrieve instrument](/products/fincore/guides/instruments#retrieve-instrument) |


The instrument contract defines the supported variants and enum values.

## Customer / Business Unit

Business Units are represented as Customers. Use them when sub-accounts need
their own RFC, legal identity, CLABE, and reporting separation.

| Need | OpenAPI contract |
|  --- | --- |
| List Business Units | [List Business Units](/products/fincore/guides/business-units#list-business-units) |
| Create Business Unit | [Create Business Unit](/products/fincore/guides/business-units#create-business-unit) |
| Validate Business Unit | [Validate Business Unit](/products/fincore/guides/business-units#validate-business-unit) |


Only use validated Business Units in production flows.

## Money movement

Transaction categories, subcategories, and statuses are shown in the operation
contracts.

| Need | OpenAPI contract |
|  --- | --- |
| Send funds | [Create Money Out transaction](/products/fincore/guides/money-out#create-money-out-transaction) |
| Receive status updates | [Status update webhook event](/products/fincore/guides/webhooks#status-update-webhook-event) |
| Reconcile reports | [Download a report file](/products/fincore/guides/reports#download-report-file) |


## Timestamps and timezone

Every timestamp returned by Fincore is expressed in **Mexico City local time
(UTC-6)**. There is no daylight saving adjustment, so the offset is always
`-06:00`.

Most timestamps include that offset explicitly, for example
`"2026-09-21 17:58:04.212229-06:00"`. A few fields are returned **without** the
offset, for example `"2026-09-22 17:58:04.217312"`. The timezone is the same in
both cases.

Do not parse an offset-less timestamp as UTC. Doing so shifts the value by six
hours. A known case is `expires_at` in
[Create authentication token](/products/fincore/guides/authentication#create-authentication-token),
where `created_at` and `updated_at` carry the offset but `expires_at` does not.

## Field presence and compatibility

The API contracts mark required fields in each request and response schema.
Fields not marked as required are optional and can be absent or null depending on
the operation, transaction state, or enabled flow.

Some fields are conditionally required by a specific flow. For example,
Penny Validation responses include `metadata.dataCep`, while standard Money Out
responses can omit `metadata`.

Treat Fincore responses as forward-compatible JSON. New response fields can be
added over time; integrations should ignore unknown fields and should not fail
strict deserialization when an unexpected field is present.