# Other BaaS operations

> Assignments, credential diagnostics, account listing, balance of one account, full account number, status of a statement request, cancelling the pending transfer, dual-control approval and closing the banking session, on a single page.

- kind: mcp-tool
- status: stable
- access: read
- last_verified: 2026-10-22
- url: https://tilopay.com/en/developers/agentes/mcp/api-bancario/otras-operaciones

> These tools are enabled on request and only work for users with Tilopay banking API credentials. They are not part of the default MCP access: Tilopay enables the group case by case. Requires: Tilopay banking API credentials registered by Tilopay for that user.

### Banking API contexts (assignments) [#baas-list-assignments]

- `baas_list_assignments`
- Access: Read only

Lists the tenant/account contexts (assignments) available for the user's banking API credentials. Use it when another tool asks for assignmentId.

**Parameters**

No parameters.

**Returns**

`{ assignments[] }`

assignments = available contexts with assignment_id, tenant_code, owner_type, country_code and status.

### Banking API diagnostics [#baas-diagnostics]

- `baas_diagnostics`
- Access: Read only

Checks the user's banking API credentials, the login, the token exchange and access to accounts. Use it when a query fails.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `assignmentId` | string | — | Banking API context (assignment); only needed when there are several |

**Returns**

`{ checks[], failed }`

checks = one row per check (credentials, login + assignments, accounts) with ok and detail; failed = how many failed. The credential email comes back masked.

### List banking API accounts [#baas-list-accounts]

- `baas_list_accounts`
- Access: Read only
- API operation: `GET /api/public/v1/accounts` — https://tilopay.com/en/developers/api-bancario/cuentas

Lists the accessible banking API accounts, without balances: identifier type, value and currency.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `accountType` | string | — | Filter by scheme (IBAN) |
| `accountValue` | string | — | Filter by identifier |
| `limit` | integer | — | Page size, between 1 and 100 |
| `offset` | integer | — | Pagination offset |
| `assignmentId` | string | — | Banking API context (assignment); only needed when there are several |

**Returns**

`{ result }`

result = the banking API response as returned.

### Balance of one account [#baas-get-balance]

- `baas_get_balance`
- Access: Read only
- API operation: `POST /api/public/v1/accounts/balance` — https://tilopay.com/en/developers/api-bancario/cuentas

Gets the current balance of a banking API account.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `currency` | string | — | Account currency (CRC or USD): first account in that currency. Precedence for choosing the own account: accountValue (only if it matches one of the user's accounts) → currency (first account in that currency) → accountIndex (base 1: the number baas_list_accounts shows) → if there is a single account, that one. |
| `accountIndex` | integer | — | Account number in the list shown by baas_list_accounts (base 1). Precedence for choosing the own account: accountValue (only if it matches one of the user's accounts) → currency (first account in that currency) → accountIndex (base 1: the number baas_list_accounts shows) → if there is a single account, that one. |
| `accountValue` | string | — | Only if a tool already returned it and it matches one of the user's accounts; do not write account numbers from memory. |
| `assignmentId` | string | — | Banking API context (optional) |

**Returns**

`{ account: { value, currency }, amounts: { available, posted }, as_of }`

account = the queried account; amounts.available = available balance; amounts.posted = posted balance; as_of = cutoff date.

### Statement request status [#baas-get-statement-status]

- `baas_get_statement_status`
- Access: Read only
- API operation: `GET /api/public/v1/accounts/statements/{request_id}` — https://tilopay.com/en/developers/api-bancario/cuentas

Reads the status of an asynchronous account statement request. The API returns 200 with status PENDING, PROCESSING, DONE or ERROR. When DONE, it includes download_url, valid for 48 hours, and its expiry.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `requestId` | string | yes | request_id returned when the statement was requested |
| `assignmentId` | string | — | Banking API context (assignment); only needed when there are several |

**Returns**

`{ result }`

result = the banking API response as returned.

### Merchant's full account number [#baas-get-account-number]

- `baas_get_account_number`
- Access: Read only

Shows the FULL IBAN of one of the merchant's own accounts. Use it ONLY when the merchant explicitly asks for their account number (for example to give it to a customer or supplier) and with confirm=true. It is recorded in the audit log. In any other answer the masked number is used.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `confirm` | boolean | yes | true only if the merchant explicitly asked for their full account number |
| `currency` | string | — | Account currency (CRC or USD) |
| `accountIndex` | integer | — | Account number in the list |
| `assignmentId` | string | — | Banking API context (optional) |

**Returns**

`{ result: { account_id, currency, iban } }`

result = the own account with its full IBAN.

### Cancel the pending transfer [#baas-cancel-transfer]

- `baas_cancel_transfer`
- Access: Write

Cancels the transfer that is waiting for the authorization code. Use it when the merchant says they do not want to make it.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `intentId` | string | — | Intent identifier (optional) |

**Returns**

`{ message }`

message = cancellation confirmation.

### Approve or reject a pending operation [#banca-decide-approval]

- `banca_decide_approval`
- Access: Sensitive
- Requires confirmation: https://tilopay.com/en/developers/agentes/mcp/permisos#confirmaciones

The dual-control approver approves or rejects a pending transfer, with the 6-digit code that arrived at their email. Never write the code in the answer.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `decision` | string (aprobar | rechazar) | yes | The approver's decision |
| `code` | string | yes | 6-digit code from the approver's email |
| `approvalId` | string | — | Approval identifier (optional; if missing, the most recent pending approval is used) |
| `reason` | string | — | Rejection reason (max. 255 characters, optional) |

**Returns**

`{ status, message }`

status = result of the decision; message = confirmation text.

### Close banking session [#baas-close-session]

- `baas_close_session`
- Access: Write

Immediately closes the active banking session (only in the WhatsApp assistant).

**Parameters**

No parameters.

**Returns**



## Document status and download [#estado-documento]

`baas_get_statement_status` checks an asynchronously created request (`202 ACCEPTED`, `request_id`, `PENDING`). The API returns `200` with `PENDING`, `PROCESSING`, `DONE` or `ERROR`; `DONE` includes `download_url`, valid for **48 hours**.
