# Integration Path

Use this path when you are integrating Fincore for the first time. Each phase
explains what to build and links to the guide section that contains the exact
API contract.

## How to use the documentation

Start with the guides to understand the implementation order. Use the linked
contract sections for exact paths, cURL examples, request fields, required
properties, enums, examples, and HTTP response codes.

| Documentation | Use it for |
|  --- | --- |
| Guides | Flow, decisions, implementation order, operational notes. |
| Contract sections | Endpoint contract, cURL examples, schemas, enums, examples, and status codes. |
| Error catalog | Standard error shape and domain-specific failure messages. |


## Phase 1: Get access

Create a bearer token before calling protected endpoints.

| Step | Guide | OpenAPI contract | Output |
|  --- | --- | --- | --- |
| Retrieve credentials | [Authentication](/products/fincore/guides/authentication) | [Retrieve client credentials](/products/fincore/guides/authentication#retrieve-client-credentials) | `client_secret` |
| Create token | [Authentication](/products/fincore/guides/authentication) | [Create authentication token](/products/fincore/guides/authentication#create-authentication-token) | `token` |


Use `Authorization: Bearer <token>` for the next phases.

## Phase 2: Discover your account setup

Retrieve the Centralizing Account and bank catalog. This tells you which account
and source instrument will fund Money Out operations.

| Step | Guide | OpenAPI contract | Output |
|  --- | --- | --- | --- |
| List SPEI participants | [Core concepts](/products/fincore/guides/concepts) | [Retrieve SPEI participants](/products/fincore/guides/instruments#retrieve-spei-participants) | Destination bank IDs. |
| Retrieve accounts | [Accounts](/products/fincore/guides/accounts) | [Retrieve client accounts](/products/fincore/guides/accounts#retrieve-client-accounts) | Centralizing Account, `instrumentId`, `bankId`, `clientBankAdapterId`. |


Save `instrumentId`; it becomes the usual `source_instrument_id` for Money Out.

## Phase 3: Register payment destinations

Create instruments for CLABE or debit-card beneficiaries.

| Step | Guide | OpenAPI contract | Output |
|  --- | --- | --- | --- |
| Create a CLABE instrument | [Instruments](/products/fincore/guides/instruments) | [Register instrument](/products/fincore/guides/instruments#register-instrument) | `destination_instrument_id` |
| Create a debit-card instrument | [Instruments](/products/fincore/guides/instruments), [Debit Card Money Out](/products/fincore/guides/debit-card-money-out) | [Register instrument](/products/fincore/guides/instruments#register-instrument) | `destination_instrument_id` |
| List instruments | [Instruments](/products/fincore/guides/instruments) | [List instruments](/products/fincore/guides/instruments#list-instruments) | Stored beneficiary data. |
| Retrieve one instrument | [Instruments](/products/fincore/guides/instruments) | [Retrieve instrument](/products/fincore/guides/instruments#retrieve-instrument) | Stored beneficiary detail. |


Use [Penny Validation](/products/fincore/guides/penny-validation) when you need CEP ownership data
before sending production funds.

## Phase 4: Validate core payment flows

Validate both directions of money movement. Money Out is initiated by your
system; Money In is initiated externally but is equally critical because it is
how your system receives and reconciles incoming funds.

| Step | Guide | OpenAPI contract | Output |
|  --- | --- | --- | --- |
| Send Money Out | [Money Out](/products/fincore/guides/money-out) | [Create Money Out transaction](/products/fincore/guides/money-out#create-money-out-transaction) | Transaction ID, tracking ID, initial status. |
| Receive Money In | [Money In](/products/fincore/guides/money-in) | [Money In webhook event](/products/fincore/guides/money-in#money-in-webhook-event) | Incoming SPEI or internal credit event. |
| Validate an account | [Penny Validation](/products/fincore/guides/penny-validation) | [Create Penny Validation](/products/fincore/guides/penny-validation#create-penny-validation) | Validation transaction and CEP webhook. |


Use an `Idempotency-Key` for retried Money Out requests. See
[Idempotency](/products/fincore/guides/idempotency).

Before go-live, run an end-to-end Money In test and confirm your system can
deduplicate the event, persist it, classify `SPEI_CREDIT` versus `INT_CREDIT`,
return the expected HTTP status, and reconcile it in reports.

## Phase 5: Receive asynchronous results

Most payment operations are asynchronous. The synchronous Money Out response
confirms Fincore accepted the request; final transaction state and inbound Money
In events arrive through webhooks and reports.

| Step | Guide | OpenAPI contract | Output |
|  --- | --- | --- | --- |
| Configure webhooks | [Webhooks](/products/fincore/guides/webhooks) | [Create webhook configuration](/products/fincore/guides/webhooks#create-webhook-configuration) | Webhook configuration. |
| Receive status updates | [Webhooks](/products/fincore/guides/webhooks) | [Status update webhook event](/products/fincore/guides/webhooks#status-update-webhook-event) | Final transaction status. |
| Receive Money In retries or delayed events | [Money In](/products/fincore/guides/money-in) | [Money In webhook event](/products/fincore/guides/money-in#money-in-webhook-event) | Inbound event delivery and idempotent processing. |
| Receive CEP data | [Penny Validation](/products/fincore/guides/penny-validation) | [CEP webhook event](/products/fincore/guides/webhooks#cep-webhook-event) | Ownership validation result. |
| Receive report notifications | [Reports](/products/fincore/guides/reports) | [Report webhook event](/products/fincore/guides/reports#report-webhook-event) | Generated file metadata. |


## Phase 6: Reconcile and operate

Use reports and error handling to close the operational loop.

| Step | Guide | OpenAPI contract | Output |
|  --- | --- | --- | --- |
| Read a transaction | [Transactions](/products/fincore/guides/transactions) | [Retrieve a transaction](/products/fincore/guides/transactions#retrieve-a-transaction) | Current state of a specific transaction. |
| Download reports | [Reports](/products/fincore/guides/reports) | [Download a report file](/products/fincore/guides/reports#download-report-file) | Download URL and file name. |
| Handle duplicate retries | [Idempotency](/products/fincore/guides/idempotency) | `Idempotency-Key` header in [Create Money Out transaction](/products/fincore/guides/money-out#create-money-out-transaction) and [Create Penny Validation](/products/fincore/guides/penny-validation#create-penny-validation) | Safe retry behavior. |
| Handle failures | [Error catalog](/products/fincore/guides/error-catalog) | Every endpoint response section | Consistent error handling. |


## Business Unit path

Use Business Units when sub-accounts need their own RFC, legal identity, CLABE,
and reporting separation.

| Step | Guide | OpenAPI contract |
|  --- | --- | --- |
| Create a Business Unit | [Business Units](/products/fincore/guides/business-units) | [Create Business Unit](/products/fincore/guides/business-units#create-business-unit) |
| Validate a Business Unit | [Business Units](/products/fincore/guides/business-units) | [Validate Business Unit](/products/fincore/guides/business-units#validate-business-unit) |
| Create a Business Unit private account | [Business Units](/products/fincore/guides/business-units), [Accounts](/products/fincore/guides/accounts) | [Create Business Unit private account](/products/fincore/guides/accounts#create-business-unit-private-account) |
| Operate with the Business Unit account | [Money Out](/products/fincore/guides/money-out), [Money In](/products/fincore/guides/money-in) | [Create Money Out transaction](/products/fincore/guides/money-out#create-money-out-transaction) |


## Next step

After completing the path, continue from the guide section for the operation you
are implementing. The contract is shown in context with the integration flow.