MEP Dollar
Introducción
El módulo de Dólar MEP le permite a tu plataforma ofrecer a tus usuarios la compra y venta de dólares a través del mercado de capitales argentino, de manera regulada y completamente automatizada. API Broker gestiona todo el ciclo operativo de punta a punta: desde la identificación del instrumento hasta la liquidación final, sin que tengas que implementar la lógica operativa ni los cálculos de cotización.
¿Cómo funciona la operatoria?
- Compra de MEP: el usuario compra un bono en pesos (ej. AL30) y lo vende en dólares (AL30D). El resultado es un crédito en USD en su cuenta comitente.
- Venta de MEP: el usuario compra un bono en dólares y lo vende en pesos. El resultado es un crédito en ARS en su cuenta comitente.
API Broker ejecuta ambas operaciones en T+0, manejando de forma automática las validaciones regulatorias, los cupos CNV, los instrumentos autorizados y la conciliación.
Características clave
- Integración 100% vía APIs y webhooks.
- Compra y venta en T+0.
- Manejo completo de cupos, validaciones y requisitos CNV.
- Conciliación automática de depósitos y retiros.
- Revenue share por operación.
- Compatible con modelos PSP y recaudación bancaria tradicional.
Flujo de integración
a. Onboarding
Para operar Dólar MEP, el usuario debe tener su onboarding completo. Los pasos son los estándar:
POST /v2/persons→ genera elperson_idPOST /identity-documents→ carga de documentación de identidadPOST /v2/investment-accounts→ genera elinvestment_account_idPOST /bank-accounts→ genera elbank_account_id(actualmente opcional, obligatorio a partir de mayo 2025)
Importante: la cuenta bancaria debe ser same-name, es decir, de la misma titularidad que la cuenta comitente. La validación se realiza por CUIT.
b. Ingreso de fondos (Cash In)
Adcap Securities disponibiliza cuentas bancarias recaudadoras (CBU) en ARS y USD. El usuario transfiere sus fondos a esas cuentas y API Broker los acredita automáticamente en la cuenta comitente.
Al completarse el depósito, API Broker notifica vía webhook:
{
"topic": "deposit_create",
"items": [{
"investment_account_id": 43101,
"currency_id": "ARS",
"amount": 10.0,
"trade_date": "2024-09-03",
"status_id": "COMPLETED",
"deposit_id": 631184,
"tax_identification_value": "20415653825"
}]
}c. Consulta de cotización MEP
Antes de ejecutar la operación, tu plataforma puede consultar la cotización estimada del MEP para el par de instrumentos elegido.
GET /dollar-exchange-by-tickers/{ticker_ars}/{ticker_usd}
Ejemplo típico:
GET /dollar-exchange-by-tickers/AL30/AL30D
Retorna la cotización estimada MEP, incluyendo el valor implícito y la diferencia entre ambas puntas.
d. Creación de la operación MEP (Compra / Venta)
El partner envía la instrucción de compra o venta:
POST /market/mep-order
Body de ejemplo:
{
"investment_account_id": 7403,
"amount": 12320,
"base_instrument_id": 41,
"market_operation_type": "buy",
"external_id": "extern123"
}Parámetros clave:
| Campo | Tipo | Descripción |
|---|---|---|
investment_account_id | int | ID de la cuenta comitente del usuario |
amount | number | Monto en la moneda base de la operación |
base_instrument_id | int | ID del instrumento (ej: AL30 = 41) |
market_operation_type | string | "buy" para comprar MEP (ARS → USD) / "sell" para vender MEP (USD → ARS) |
external_id | string | Identificador único del cliente para evitar duplicados |
API Broker ejecuta la compra en T+0 y la venta en T+0. Los fondos se acreditan en la moneda final directamente en la cuenta comitente del usuario.
e. Consulta del estado de una orden MEP
Una vez creada la orden MEP, el partner puede consultar su estado en cualquier momento mediante el mep_market_order_id devuelto en el POST /market/mep-order.
GET /api/market/mep-order/{mep_market_order_id}Parámetros:
| Campo | Tipo | Descripción |
|---|---|---|
mep_market_order_id | integer | ID de la orden MEP (path param, requerido) |
Respuestas posibles:
| Código | Descripción |
|---|---|
200 | Retorna el estado y detalle completo de la orden |
404 | Orden no encontrada |
422 | Error de validación |
500 | Error interno del servidor |
Nota: Aunque el estado de la orden también se puede seguir vía webhooks, este endpoint permite realizar consultas puntuales o reconciliaciones desde el lado del partner.
f. Obtención de boletos de las órdenes de mercado
Luego de ejecutadas las operaciones, el partner puede obtener los boletos (confirmaciones de mercado) asociados a una cuenta comitente. Esto es útil para mostrar comprobantes al usuario o para procesos de conciliación.
GET /api/market/stock-market-confirmations/confirmations-by-investment-account/{investment_account_id}Path params:
| Campo | Tipo | Descripción |
|---|---|---|
investment_account_id | integer | ID de la cuenta comitente (requerido) |
Query params opcionales:
| Campo | Tipo | Descripción |
|---|---|---|
page | integer (≥ 1) | Número de página. Default: 1 |
size | integer (1–100) | Cantidad de resultados por página. Default: 50 |
from_date | date | Fecha de inicio del filtro (formato YYYY-MM-DD) |
to_date | date | Fecha de fin del filtro (formato YYYY-MM-DD) |
Ejemplo de uso:
GET /api/market/stock-market-confirmations/confirmations-by-investment-account/7403?from_date=2024-09-01&to_date=2024-09-30&page=1&size=50Respuestas posibles:
| Código | Descripción |
|---|---|
200 | Lista paginada de confirmaciones/boletos de la cuenta |
404 | Cuenta comitente no encontrada |
422 | Error de validación |
500 | Error interno del servidor |
Nota: Los boletos incluyen el detalle de cada tramo de la operación MEP (compra del bono en ARS y venta en USD, o viceversa). Se recomienda consultar este endpoint para generar comprobantes descargables para el usuario final.
g. Consulta de estado de cartera (posición post-operación)
Una vez completada la operación MEP, el partner puede consultar el estado de cuenta de la cuenta comitente para verificar la acreditación de los dólares (en compra MEP) o los pesos (en venta MEP).
GET /api/portfolio/account-statements/{investment_account_id}Path params:
| Campo | Tipo | Descripción |
|---|---|---|
investment_account_id | integer | ID de la cuenta comitente (requerido) |
Query params opcionales:
| Campo | Tipo | Default | Descripción |
|---|---|---|---|
position_discriminator_bcra | boolean | true | Discrimina la posición según criterio BCRA |
compromised_holdings | boolean | false | Incluye tenencias comprometidas (ej: en proceso de liquidación) |
include_remunerated_balance | boolean | false | Incluye el saldo remunerado disponible |
Ejemplo de uso post compra MEP:
GET /api/portfolio/account-statements/7403La respuesta incluye la posición monetaria (saldos en ARS y USD) y las tenencias disponibles de la cuenta. Luego de una compra MEP exitosa, el saldo en USD debe reflejar los dólares acreditados.
Respuestas posibles:
| Código | Descripción |
|---|---|
200 | Retorna el estado de cuenta con posición monetaria y tenencias |
422 | Error de validación |
Flujo recomendado post-operación: ejecutar
POST /market/mep-order→ esperar confirmación vía webhook o polling conGET /api/market/mep-order/{mep_market_order_id}→ consultarGET /api/portfolio/account-statements/{investment_account_id}para verificar la acreditación del saldo en USD.
h. Retiros (Cash Out)
Una vez acreditados los fondos en la cuenta comitente, el usuario puede retirarlos a una cuenta bancaria same-name:
POST /withdraw-requests
API Broker responde con la solicitud en estado IN_PROGRESS. La transferencia puede salir automáticamente en segundos o quedar pendiente de validación manual. El estado se notifica vía webhook:
{
"topic": "withdraw_request_update",
"items": [{
"amount": 100,
"status_id": "COMPLETED",
"currency_id": "ARS",
"bank_account_id": 121535,
"withdraw_request_id": 984479,
"investment_account_id": 74659
}]
}Estados posibles: IN_PROGRESS → COMPLETED / REJECTED
Validaciones y compliance
API Broker realiza automáticamente las siguientes validaciones. El partner no necesita implementar ninguna lógica regulatoria:
- Validación de titularidad same-name
- Control de CUIT bloqueado
- Límites regulatorios (CNV)
- Control de instrumentos autorizados
- Verificación de disponibilidad real de fondos
- Verificación de settlement y liquidez
Endpoints principales
| Método | Endpoint | Descripción |
|---|---|---|
| POST | /v2/persons | Alta de persona |
| POST | /identity-documents | Carga de documentación de identidad |
| POST | /v2/investment-accounts | Alta de cuenta comitente |
| POST | /bank-accounts | Alta de cuenta bancaria |
| GET | /dollar-exchange-by-tickers/{ticker_ars}/{ticker_usd} | Cotización estimada MEP |
| POST | /market/mep-order | Crear orden de compra/venta MEP |
| POST | /withdraw-requests | Retiro de fondos |
Webhooks a implementar
Tu plataforma debe exponer una URL para recibir los siguientes eventos:
deposit_create
Notifica los depósitos acreditados: investment_account_id, moneda, monto y fecha.
withdraw_request_update
Notifica el estado de los retiros: IN_PROGRESS, COMPLETED o REJECTED, junto con monto y cuenta destino.
Puntos clave para recordar
- El onboarding es prerequisito: el usuario necesita
investment_account_idantes de operar MEP. - La cuenta bancaria será obligatoria a partir de mayo 2025: aunque actualmente es opcional, conviene integrarla desde el inicio.
- API Broker gestiona toda la lógica regulatoria: no es necesario implementar validaciones CNV ni control de cupos del lado del partner.
- Las operaciones son T+0: compra y venta se ejecutan en el mismo día hábil.
- El
external_ides clave para idempotencia: siempre enviarlo para evitar órdenes duplicadas. - Los retiros son solo a cuentas same-name: no se admiten transferencias a terceros.
- Todo es asincrónico: siempre seguir el estado vía webhooks.
Updated 6 months ago
