Prometeo Banking API
Bank account access, movements, transfers, credit cards, providers.
Bank account access, movements, transfers, credit cards, providers.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/prometeo-banking-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Prometeo Account Validation Banking API
description: Prometeo is a LatAm-founded (Uruguay) fintech infrastructure platform exposing a single financial API over 7,500+ banking connections across the Americas. Products include the Banking API (account access, movements, transfers), Account Validation, Cross-Border payments (pay-in / payout / FX), the Payment (account-to-account) API, Identity (Mexico CURP), and Fiscal (DIAN / SAT / CEP / BCU). All products authenticate with an X-API-Key header.
termsOfService: https://prometeoapi.com/en/legal/msa
contact:
name: Prometeo Support
url: https://docs.prometeoapi.com
email: sales@prometeoapi.com
version: '1.0'
servers:
- url: https://banking.prometeoapi.net
description: Banking API - production
- url: https://banking.sandbox.prometeoapi.com
description: Banking API - sandbox (mock data)
security:
- ApiKeyAuth: []
tags:
- name: Banking
description: Bank account access, movements, transfers, credit cards, providers.
paths:
/login/:
post:
operationId: login
tags:
- Banking
summary: Authenticate against a banking provider
description: Starts a banking session against a provider using the end user's credentials. Returns a session `key` used on subsequent Banking calls. May return an interactive-login challenge (MFA) to be answered via /login-procedure/.
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/LoginRequest'
responses:
'200':
description: Session established or interactive challenge required.
content:
application/json:
schema:
$ref: '#/components/schemas/LoginResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/login-procedure/:
post:
operationId: loginProcedure
tags:
- Banking
summary: Answer an interactive login (MFA) challenge
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
key:
type: string
answer:
type: string
required:
- key
responses:
'200':
description: Challenge answered.
content:
application/json:
schema:
$ref: '#/components/schemas/LoginResponse'
/info/:
get:
operationId: getClientInfo
tags:
- Banking
summary: Get logged-in user / session preferences
parameters:
- $ref: '#/components/parameters/SessionKey'
responses:
'200':
description: Session info.
content:
application/json:
schema:
type: object
/client/:
get:
operationId: listClients
tags:
- Banking
summary: List clients available on the session
parameters:
- $ref: '#/components/parameters/SessionKey'
responses:
'200':
description: Clients list.
content:
application/json:
schema:
type: object
/client/{client_id}/:
get:
operationId: selectClient
tags:
- Banking
summary: Select a client for the session
parameters:
- name: client_id
in: path
required: true
schema:
type: string
- $ref: '#/components/parameters/SessionKey'
responses:
'200':
description: Client selected.
content:
application/json:
schema:
type: object
/account/:
get:
operationId: listAccounts
tags:
- Banking
summary: List accounts for the authenticated session
parameters:
- $ref: '#/components/parameters/SessionKey'
responses:
'200':
description: Accounts.
content:
application/json:
schema:
$ref: '#/components/schemas/AccountsResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/movement/:
get:
operationId: listMovements
tags:
- Banking
summary: List movements (transactions) for an account
parameters:
- $ref: '#/components/parameters/SessionKey'
- name: account
in: query
required: true
schema:
type: string
- name: currency
in: query
required: true
schema:
type: string
example: USD
- name: date_start
in: query
required: true
schema:
type: string
example: 01/07/2026
- name: date_end
in: query
required: true
schema:
type: string
example: 17/07/2026
responses:
'200':
description: Movements.
content:
application/json:
schema:
$ref: '#/components/schemas/MovementsResponse'
/credit-card/:
get:
operationId: listCreditCards
tags:
- Banking
summary: List credit cards for the session
parameters:
- $ref: '#/components/parameters/SessionKey'
responses:
'200':
description: Credit cards.
content:
application/json:
schema:
type: object
/credit-card/{card_number}/movements:
get:
operationId: listCreditCardMovements
tags:
- Banking
summary: List movements for a credit card
parameters:
- name: card_number
in: path
required: true
schema:
type: string
- $ref: '#/components/parameters/SessionKey'
- name: currency
in: query
schema:
type: string
responses:
'200':
description: Credit card movements.
content:
application/json:
schema:
type: object
/provider/:
get:
operationId: listProviders
tags:
- Banking
summary: List available banking providers
responses:
'200':
description: Providers.
content:
application/json:
schema:
type: object
/provider/{provider_code}/:
get:
operationId: getProviderDetail
tags:
- Banking
summary: Get detail / required login fields for a provider
parameters:
- name: provider_code
in: path
required: true
schema:
type: string
responses:
'200':
description: Provider detail.
content:
application/json:
schema:
type: object
/transfer/destinations:
get:
operationId: listTransferDestinations
tags:
- Banking
summary: List enrolled transfer destination accounts
parameters:
- $ref: '#/components/parameters/SessionKey'
responses:
'200':
description: Destinations.
content:
application/json:
schema:
type: object
/transfer/preprocess:
post:
operationId: preprocessTransfer
tags:
- Banking
summary: Pre-process (stage) an account-to-account transfer
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TransferPreprocessRequest'
responses:
'200':
description: Transfer staged; may require MFA before confirm.
content:
application/json:
schema:
type: object
/transfer/confirm:
post:
operationId: confirmTransfer
tags:
- Banking
summary: Confirm a previously staged transfer (moves money)
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
key:
type: string
request_id:
type: string
authorization_type:
type: string
authorization_data:
type: string
required:
- key
- request_id
responses:
'200':
description: Transfer confirmed.
content:
application/json:
schema:
type: object
/logout/:
get:
operationId: logout
tags:
- Banking
summary: End the banking session
parameters:
- $ref: '#/components/parameters/SessionKey'
responses:
'200':
description: Session ended.
content:
application/json:
schema:
type: object
components:
schemas:
LoginResponse:
type: object
properties:
status:
type: string
enum:
- logged_in
- interaction_required
- wrong_credentials
- error
key:
type: string
context:
type: string
field:
type: string
Error:
type: object
properties:
status:
type: string
message:
type: string
Movement:
type: object
properties:
id:
type: integer
reference:
type: string
date:
type: string
detail:
type: string
debit:
type: number
credit:
type: number
AccountsResponse:
type: object
properties:
status:
type: string
accounts:
type: array
items:
$ref: '#/components/schemas/Account'
MovementsResponse:
type: object
properties:
status:
type: string
movements:
type: array
items:
$ref: '#/components/schemas/Movement'
LoginRequest:
type: object
properties:
provider:
type: string
description: Provider code (from /provider/). Use "test" in sandbox.
example: test
username:
type: string
password:
type: string
type:
type: string
description: Optional document/login type required by some providers.
required:
- provider
- username
- password
TransferPreprocessRequest:
type: object
properties:
key:
type: string
origin_account:
type: string
destination_institution:
type: string
destination_account:
type: string
currency:
type: string
amount:
type: number
concept:
type: string
required:
- key
- origin_account
- destination_account
- amount
- currency
Account:
type: object
properties:
id:
type: string
name:
type: string
number:
type: string
branch:
type: string
currency:
type: string
balance:
type: number
responses:
Unauthorized:
description: Missing or invalid API key / session key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
SessionKey:
name: key
in: query
required: true
description: Banking session key returned by /login/.
schema:
type: string
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
description: All Prometeo products authenticate with a per-account API key sent in the X-API-Key request header. Keys are issued from dashboard.prometeoapi.com; the sandbox key is available immediately on first login.