Docs - API Broker brokerage-as-a-service. Let your users buy and sell stocks and bonds with a single API integration ## Sections • [Nuestra API](https://docs.manteca.dev/broker/introduccion/introduccion.md): API Broker permite acceder de forma simple y programática al mercado de capitales, incluyendo operaciones con dólar MEP, compra/venta de activos bursátiles y Fondos Comunes de Inversión (FCIs). Ofrecemos una solución robusta, adaptable al contexto regulatorio, que facilita la integración con brokers y ALyCs para operar de forma ágil, confiable y sin fricciones innecesarias. Arquitectura y formato de respuesta Manteca está construida sobre una arquitectura RESTful, con endpoints organizados por recursos y URLs predecibles. Utiliza códigos de respuesta HTTP estándar, y todos los payloads de entrada y salida están formateados en JSON . Proveemos un entorno sandbox que permite testear integraciones de forma segura, sin afectar el entorno productivo. Para utilizarlo, debés apuntar a la URL correspondiente del sandbox y autenticarte con las API keys asignadas para ese entorno. Todos los endpoints se exponen exclusivamente sobre HTTPS . • [Autenticación](https://docs.manteca.dev/broker/introduccion/autenticacion.md): Manteca utiliza API keys para autenticar los requests. Las mismas deben ser enviadas a través del header md-api-key . Las credenciales poseen privilegios completos por lo que es imprescindible que sean almacenadas de manera segura. Es requerido realizar una rotación de las credenciales cada 12 meses. En caso contrario, los llamados al API fallarán. Podemos habilitar medidas de control de red para entornos con requisitos especiales: IP whitelisting Acceso vía VPN • [Dashboard](https://docs.manteca.dev/broker/introduccion/dashboard.md): El Dashboard es una interfaz centralizada que permite a las empresas monitorear y gestionar los procesos integrados a través de nuestra API. Desde esta plataforma, es posible visualizar el estado de los usuarios, analizar la documentación cargada y monitorear las operaciones en tiempo real. Para acceder, bastaría con dirigirse a: PRODUCCIÓN ⇢ https://dashboard.manteca.dev SANDBOX ⇢ https://dashboard-qa.manteca.dev El acceso a la plataforma requiere autenticación mediante credenciales de usuario y cuenta con un segundo factor de autenticación (2FA) para garantizar un nivel adicional de seguridad en el ingreso. • [Personas, no usuarios](https://docs.manteca.dev/broker/conceptos-clave/personas-no-usuarios.md): Nuestro sistema de compliance hace seguimiento a la actividad de una persona, y no únicamente al usuario puntual que está operando. Esto significa que si una misma persona crea dos usuarios distintos bajo dos empresas diferentes que usan nuestro sistema, esos dos usuarios compartirán los mismos límites operativos. Por ejemplo, si una persona alcanza su límite operando desde una cuenta en la Empresa A, no podrá seguir operando desde otra cuenta en la Empresa B. Lo mismo aplica para los bloqueos por actividad fraudulenta: el bloqueo se aplica a la persona, sin importar desde qué usuario o empresa se detectó el comportamiento. En resumen, los límites y restricciones se aplican a nivel persona, sin importar cuántos usuarios o cuentas tenga distribuidos en distintas entidades. • [Límites operativos](https://docs.manteca.dev/broker/conceptos-clave/limites-operativos.md): Las personas cuentan con límites operativos definidos en el proceso de onboarding, los mismos se pueden obtener a partir del endpoint de consulta asociado . ¿Cómo elevar los límites operativos? Lós limites se pueden aumentar a través de aumentar límites operativos . Documentos aceptados: Recibo de sueldo. Facturas (en caso de ser montos pequeños, subir varias). Declaración Jurada (ganancia o bienes personales). Venta de titulos o propiedades, además de alguna de las anteriores. • [Manejo de errores](https://docs.manteca.dev/broker/conceptos-clave/errores.md): API Broker usa respuestas HTTP estándar para indicar resultados exitosos o fallidos. En general: Códigos en el rango de 2xx indican éxito Códigos en el rango de 4xx indican un error relacionado a la información provista Códigos en el rango de 5xx indican un error inesperado en Manteca Más allá de los códigos, en caso de error, se podrá acceder a más detalle a partir de visualizar el body de la respuesta. Siempre se maneja un mismo formato que contiene por un lado un internalStatus que hace referencia a un código verbal de error y por otro, un message que es básicamente una descripción algo más detallada del error. • [Paginación](https://docs.manteca.dev/broker/conceptos-clave/paginacion.md): Hay endpoints que devuelven arrays como response al pedido. En los casos en los que los datos pueden crecer dinámicamente, se devolverá la información de la paginación en el pedido y se aceptarán los siguientes parámetros para pedir los datos paginados. Parámetros page ⇢ página actual, el default es 1. limit ⇢ cantidad de elementos por página, el default es 10. • [Tu empresa](https://docs.manteca.dev/broker/configuracion-de-empresa/tu-empresa.md): El primer paso para comenzar a utilizar nuestra API es crear la cuenta de empresa. Para ello, tenés que escribirnos a info@manteca.dev , donde vamos a revisar los requisitos de tu compañía y acompañarte durante el proceso de integración. Durante el onboarding, vamos a crear tu entidad empresa y te entregaremos las API Keys necesarias para acceder a nuestro entorno sandbox, donde podrás realizar pruebas de integración. Esta entidad incluirá todas las configuraciones relevantes, entre ellas: Configuración contable ⇢ define qué direcciones están habilitadas para cancelar deudas y/o recibir ganancias Configuración de webhooks ⇢ permite configurar cómo querés que tu empresa reciba las notificaciones de eventos del sistema. Configuración de comisiones ⇢ permite configurar las comisiones que se cobrarán por encima del precio base. • [Obtener información](https://docs.manteca.dev/broker/configuracion-de-empresa/tu-empresa/obtener-informacion.md): Mediante el siguiente endpoint se puede obtener la información asociada a tu empresa. Allí se encuentra toda la configuración disponible, incluyendo datos generales, parámetros operativos, preferencias de comisiones, límites, y otras configuraciones específicas. • [Comisiones](https://docs.manteca.dev/broker/configuracion-de-empresa/comisiones.md): En API Broker implementamos un esquema de comisiones basado en revenue share. Trabajamos con un set de comisiones mínimas y todo se distribuye entre las partes. La configuración se hace por compañía manualmente y, además, se pueden asignar diferentes esquemas de comisiones, según el usuario, lo que permite una mayor flexibilidad comercial. Tener en cuenta que una vez se asigna una cartera de comisiones a un usuario, la misma no puede ser modificada vía API; sino que debe hacerse manualmente. • [Obtener comisiones](https://docs.manteca.dev/broker/configuracion-de-empresa/comisiones/obtener-comisiones.md) • [Contabilidad](https://docs.manteca.dev/broker/configuracion-de-empresa/contabilidad.md): Para empresas que necesitan operar con crédito o gestionar liquidaciones de deuda, ofrecemos un sistema de contabilidad completo que permite rastrear todas las obligaciones financieras y exponerlas a través de endpoints simples para facilitar su gestión. Nuestro sistema es flexible y admite distintos modelos operativos. Consultanos por los mismos para ver cuál se acopla mejor a tu caso de uso. • [Obtener resumen contable](https://docs.manteca.dev/broker/configuracion-de-empresa/contabilidad/obtener-resumen-contab-le.md): Este endpoint permite obtener el resumen contable de la empresa. Incluye información clave como: Deuda acumulada Crédito disponible Balance neto Ganancia generada Es útil para monitorear el estado financiero general y validar la correcta imputación de operaciones dentro del sistema. • [Obtener flujo de fondos FCIs](https://docs.manteca.dev/broker/configuracion-de-empresa/contabilidad/obtener-saldo-de-usuario.md): Este endpoint permite consultar el flujo neto de operaciones realizadas por una compañía hacia un Fondo Común de Inversión (FCI) en una fecha determinada. El flujo se calcula como la diferencia entre las suscripciones y los rescates realizados ese día. Si el valor es positivo, hubo más suscripciones que rescates, y por lo tanto, la compañía le debe ese monto al fondo. Si el valor es negativo, hubo más rescates que suscripciones, y el fondo le debe ese monto a la compañía. Este dato es clave para realizar el settlement diario entre la compañía y el fondo. • [Webhooks](https://docs.manteca.dev/broker/configuracion-de-empresa/webhooks.md): Para el envío de notificaciones, utilizamos webhooks. Podés configurarlos a través del API para ser notificado por cada uno de los eventos que ocurran y te sean de interés. Para garantizar la integridad de los datos enviados mediante webhooks, utilizamos un sistema de validación basado en HMAC. Cada webhook se envía con una firma en md-webhook-signature como header que, junto con el secret que tenemos en conjunto, permitirá realizar la verificación de autenticidad de los mensajes. Básicamente, el sigature enviado tiene que ser el mismo que generan de su lado, aplicando HMAC al contenido que llega con el secreto en común. Para garantizar que la serialización del JSON sea determinística, es necesario ordenar las claves del objeto de manera alfabética antes de realizar la conversión a string. Esto asegura consistencia en las respuestas y es especialmente útil para firmas criptográficas o validaciones HMAC. En nuestro caso particular, utilizamos la librería fast-json-stable-stringify para hacer la serialización del mismo. Los webhooks, tanto en el entorno de desarrollo como en el productivo, llegarán de la IP 18.229.68.94 . La misma se encuentra fija para poder ajustar las políticas de seguridad pertinentes de su lado. Además, tenemos un sistema de reintentos automáticos que operan con exponential backoff; esto significa que se reintentará múltiples veces y cada reintento será después de un intervalo mayor. Realizamos hasta 8 reintentos de cada envío. • [Configurar webhooks](https://docs.manteca.dev/broker/configuracion-de-empresa/webhooks/configurar-webhooks.md): Para recibir notificaciones de eventos, existen dos formas de configurar los endpoints: generalWebhook ⇢ permite recibir todos los eventos en un único endpoint. webhooks por evento ⇢ se puede definir un endpoint específico para cada tipo de evento, en caso de que se quiera manejar cada uno de forma diferenciada. En ambos casos, se utiliza un campo llamado secret, que actúa como un secreto compartido para generar una firma HMAC que permite verificar la autenticidad de los mensajes recibidos. • [Ejemplos](https://docs.manteca.dev/broker/configuracion-de-empresa/webhooks/ejemplos.md): A continuacion bridamos ejemplos de los posibles webhooks que van a recibir. Actualización de estado de usuario JSON { "eventName": "user-status-update", "data": { "status": "USER_DATA_COMPLETE", "user": { "banking": { "accounts": [ { "bank": { "code": "123", "name": "Banco Gariboldi Garibiano" }, "cbu": "alias.alias", "currency": "ARS", "description": "Optional description", "virtual": false } ] }, "companyId": "658dd9502accccd05acc3ce9", "creationTime": "2024-08-06T11:36:06.177-03:00", "email": "asddsssssssd@sasdssssddd.com", "externalId": "1a233b06-13be-43fb-b195-3c22e930a376", "id": "66b234d668e708c917d3c5ae", "legalId": "20299061265", "numberId": "10530", "status": "USER_DATA_COMPLETE", "type": "INDIVIDUAL", "updatedAt": "2024-08-06T11:36:15.215-03:00" } } } Actualización de estado de documentación JSON { "eventName": "documentation-status-update", "data": { "documentation": { "associatedId": "20299061265", "associatedSubId": "10530", "details": { "birthDate": "1982-11-06T15:00:00.000Z", "dniModel": "A", "dniNumber": "29906126", "isDead": false, "name": "Agustin Hernan", "surname": "BEGUE" }, "docType": "DNI_FRONT", "history": [ { "date": "2024-08-06T11:39:08.012-03:00", "newStatus": "PENDING" } ], "id": "66b2358c68e708c917d3c5d9", "imgSrc": "https://s3.sa-east-1.amazonaws.com/documentation.tiendabroker/qa/20299061265--10530--658dd9502accccd05acc3ce9/front_passport.jpg", "seen": false, "status": "PENDING", "valid": false }, "status": "PENDING" } } Actualización de estado de depósito JSON { "eventName": "deposit-status-update", "data": { "deposit": { "amount": 1000000, "coin": "ARS", "companyId": "658dd9502accccd05acc3ce9", "creationTime": "2024-08-06T11:41:51.418-03:00", "id": "66b2362f68e708c917d3c618", "legalId": "20299061265", "numberId": "10530", "status": "ASSIGNED", "updatedAt": "2024-08-06T11:41:51.418-03:00", "userId": "66b234d668e708c917d3c5ae" }, "payload": { "new": true }, "status": "ASSIGNED" } } Actualización de estado de sintético JSON { "eventName": "synthetic-status-update", "data": { "status": "ACTIVE", "synthetic": { "companyId": "658dd9502accccd05acc3ce9", "creationTime": "2024-08-06T11:43:59.647-03:00", "currentStage": 1, "details": { "amount": 10000, "expectedAmount": 3.59, "operatedAmount": 9456.63, "settlement": "INSTANT", "side": "BUY" }, "externalId": "15e897d8-0dc2-4f30-a0bc-daa66d7ebb37", "fee": 0.00522, "id": "66b236af68e708c917d3c661", "legalId": "20299061265", "numberId": "10530", "stages": { "1": { "against": "ARS", "amount": 15, "asset": "AL30", "executionTime": "2024-08-06T11:43:59.644-03:00", "feeInfo": { "companyProfit": "0.0000000000", "earningsWithholding": "0", "holdingIncomeFee": "0", "marketRight": "0.0001", "platformFee": "0.0025100000", "totalFee": "0.0026100000", "usesIva": false }, "orderId": "66b236af68e708c917d3c66d", "settlement": "INSTANT", "side": "BUY", "type": "MARKET" }, "2": { "against": "USD", "amount": 15, "asset": "AL30", "executionTime": "2024-08-07T11:10:00.000-03:00", "feeInfo": { "companyProfit": "0.0000000000", "earningsWithholding": "0", "holdingIncomeFee": "0", "marketRight": "0.0001", "platformFee": "0.0025100000", "totalFee": "0.0026100000", "usesIva": false }, "settlement": "INSTANT", "side": "SELL", "type": "MARKET" } }, "status": "ACTIVE", "type": "DOLAR_MEP", "updatedAt": "2024-08-06T11:43:59.905-03:00", "userId": "66b234d668e708c917d3c5ae" } } } Actualización de estado de órden JSON { "eventName": "order-status-update", "data": { "order": { "against": "ARS", "amount": 5, "asset": "AL30", "companyId": "658dd9502accccd05acc3ce9", "creationTime": "2024-09-20T18:07:13.325-03:00", "externalId": "693cacbe-da94-4adc-af41-056028f988ae", "fee": 0.00261, "feeInfo": { "companyProfit": "0.0000000000", "earningsWithholding": "0", "holdingIncomeFee": "0", "marketRight": "0.0001", "platformFee": "0.0025100000", "totalFee": "0.0026100000", "usesIva": false }, "filledAmount": 0, "finalClaimInfo": { "asset": "ARS", "base": 3144, "companyProfit": 0, "earningsWithholding": 0, "holdingIncomeFee": 0, "iva": 0, "marketRight": 0.32, "platformFee": 7.9, "total": 3152.22, "totalFees": 8.22 }, "finalCreditInfo": { "asset": "AL30", "base": 0, "companyProfit": 0, "earningsWithholding": 0, "holdingIncomeFee": 0, "iva": 0, "marketRight": 0, "platformFee": 0, "total": 0, "totalFees": 0 }, "history": [ { "claimedAmount": 3152.22, "newStatus": "PENDING", "price": 62880, "stepAmount": 5, "timestamp": "2024-09-20T18:07:13.233-03:00" } ], "id": "66ede4018354e33f0f6b21da", "legalId": "20299061265", "numberId": "10530", "price": 62880, "settlement": "INSTANT", "side": "BUY", "status": "PENDING", "type": "MARKET", "updatedAt": "2024-09-20T18:07:13.325-03:00", "userId": "66b234d668e708c917d3c5ae" }, "status": "PENDING" } } } JSON { "eventName": "order-status-update", "data": { "order": { "against": "ARS", "amount": 5, "asset": "AL30", "companyId": "658dd9502accccd05acc3ce9", "creationTime": "2024-09-20T18:07:13.325-03:00", "externalId": "693cacbe-da94-4adc-af41-056028f988ae", "fee": 0.00261, "feeInfo": { "companyProfit": "0.0000000000", "earningsWithholding": "0", "holdingIncomeFee": "0", "marketRight": "0.0001", "platformFee": "0.0025100000", "totalFee": "0.0026100000", "usesIva": false }, "filledAmount": 4, "finalClaimInfo": { "asset": "ARS", "base": 3144, "companyProfit": 0, "earningsWithholding": 0, "holdingIncomeFee": 0, "iva": 0, "marketRight": 0.32, "platformFee": 7.9, "total": 3152.22, "totalFees": 8.22 }, "finalCreditInfo": { "asset": "AL30", "base": 0, "companyProfit": 0, "earningsWithholding": 0, "holdingIncomeFee": 0, "iva": 0, "marketRight": 0, "platformFee": 0, "total": 0, "totalFees": 0 }, "history": [ { "claimedAmount": 3152.22, "newStatus": "PENDING", "price": 62880, "stepAmount": 5, "timestamp": "2024-09-20T18:07:13.233-03:00" }, { "newStatus": "SENT", "price": 62880, "stepAmount": 4, "timestamp": "2024-09-20T18:07:16.449-03:00" } ], "id": "66ede4018354e33f0f6b21da", "legalId": "20299061265", "numberId": "10530", "price": 62880, "settlement": "INSTANT", "side": "BUY", "status": "SENT", "type": "MARKET", "updatedAt": "2024-09-20T18:07:16.454-03:00", "userId": "66b234d668e708c917d3c5ae" }, "status": "SENT" } } } JSON { "eventName": "order-status-update", "data": { "order": { "against": "ARS", "amount": 5, "asset": "AL30", "companyId": "658dd9502accccd05acc3ce9", "creationTime": "2024-09-20T18:07:13.325-03:00", "externalId": "693cacbe-da94-4adc-af41-056028f988ae", "fee": 0.00261, "feeInfo": { "companyProfit": "0.0000000000", "earningsWithholding": "0", "holdingIncomeFee": "0", "marketRight": "0.0001", "platformFee": "0.0025100000", "totalFee": "0.0026100000", "usesIva": false }, "filledAmount": 5, "finalClaimInfo": { "asset": "ARS", "base": 3144, "companyProfit": 0, "earningsWithholding": 0, "holdingIncomeFee": 0, "iva": 0, "marketRight": 0.31, "platformFee": 7.89, "total": 3152.2, "totalFees": 8.2 }, "finalCreditInfo": { "asset": "AL30", "base": 5, "companyProfit": 0, "earningsWithholding": 0, "holdingIncomeFee": 0, "iva": 0, "marketRight": 0, "platformFee": 0, "total": 5, "totalFees": 0 }, "history": [ { "claimedAmount": 3152.22, "newStatus": "PENDING", "price": 62880, "stepAmount": 5, "timestamp": "2024-09-20T18:07:13.233-03:00" }, { "newStatus": "SENT", "price": 62880, "stepAmount": 4, "timestamp": "2024-09-20T18:07:16.449-03:00" }, { "newStatus": "COMPLETED", "price": 62880, "stepAmount": 1, "timestamp": "2024-09-20T18:07:19.445-03:00" }, { "creditedAmount": 5, "refundedAmount": 0.02, "timestamp": "2024-09-20T18:07:19.634-03:00" } ], "id": "66ede4018354e33f0f6b21da", "legalId": "20299061265", "numberId": "10530", "price": 62880, "settlement": "INSTANT", "side": "BUY", "status": "COMPLETED", "type": "MARKET", "updatedAt": "2024-09-20T18:07:19.641-03:00", "userId": "66b234d668e708c917d3c5ae" }, "status": "COMPLETED" } } } Actualización de estado de retiro JSON { "eventName": "withdraw-status-update", "data": { "payload": { "new": true }, "status": "PENDING", "withdraw": { "amount": 1000, "coin": "ARS", "companyId": "658dd9502accccd05acc3ce9", "creationTime": "2024-08-06T11:45:23.626-03:00", "destAccount": { "bank": { "code": "123", "name": "Banco Gariboldi Garibiano" }, "cbu": "alias.alias", "currency": "ARS", "description": "Optional description", "virtual": false }, "externalId": "b6ac7635-0167-4479-b5c5-62e4d24e05cf", "history": [ { "newStatus": "PENDING", "timestamp": "2024-08-06T11:45:23.626-03:00" } ], "id": "66b2370368e708c917d3c68d", "legalId": "20299061265", "numberId": "10530", "status": "PENDING", "updatedAt": "2024-08-06T11:45:23.626-03:00", "userId": "66b234d668e708c917d3c5ae", "withdrawNumberId": "113" } } } Actualización de pago de dividendos JSON { "eventName": "holding-income-status-update", "data": { "holdingIncome": { "amount": 5, "asset": "GD30", "companyId": "658dd9502accccd05acc3ce9", "creationTime": "2024-10-14T14:16:49.168-03:00", "finalClaimInfo": { "asset": "ARS", "base": 0, "companyProfit": 0, "earningsWithholding": 0, "holdingIncomeFee": 99, "iva": 20.79, "marketRight": 4.58, "platformFee": 0, "total": 124.37, "totalFees": 124.37 }, "finalCreditInfo": { "asset": "USD", "base": 5, "companyProfit": 0, "earningsWithholding": 0, "holdingIncomeFee": 0, "iva": 0, "marketRight": 0, "platformFee": 0, "total": 5, "totalFees": 0 }, "id": "670d520139fa58ae89294c1b", "incomeAsset": "USD", "legalId": "20335281536", "numberId": "10442", "settlement": "INSTANT", "status": "PENDING", "type": "BOND", "updatedAt": "2024-10-14T14:16:49.168-03:00", "userId": "65cfadf9da953feea0e29400" }, "status": "PENDING" } } } JSON { "eventName": "holding-income-status-update", "data": { "holdingIncome": { "amount": 5, "asset": "GD30", "companyId": "658dd9502accccd05acc3ce9", "creationTime": "2024-10-14T14:16:49.168-03:00", "finalClaimInfo": { "asset": "ARS", "base": 0, "companyProfit": 0, "earningsWithholding": 0, "holdingIncomeFee": 99, "iva": 20.79, "marketRight": 4.58, "platformFee": 0, "total": 124.37, "totalFees": 124.37 }, "finalCreditInfo": { "asset": "USD", "base": 5, "companyProfit": 0, "earningsWithholding": 0, "holdingIncomeFee": 0, "iva": 0, "marketRight": 0, "platformFee": 0, "total": 5, "totalFees": 0 }, "id": "670d520139fa58ae89294c1b", "incomeAsset": "USD", "legalId": "20335281536", "numberId": "10442", "settlement": "INSTANT", "status": "LOCKED_BY_FEES", "type": "BOND", "updatedAt": "2024-10-14T14:16:49.168-03:00", "userId": "65cfadf9da953feea0e29400" }, "status": "LOCKED_BY_FEES" } } JSON { "eventName": "holding-income-status-update", "data": { "holdingIncome": { "amount": 5, "asset": "GD30", "companyId": "658dd9502accccd05acc3ce9", "creationTime": "2024-10-14T14:16:49.168-03:00", "finalClaimInfo": { "asset": "ARS", "base": 0, "companyProfit": 0, "earningsWithholding": 0, "holdingIncomeFee": 99, "iva": 20.79, "marketRight": 4.58, "platformFee": 0, "total": 124.37, "totalFees": 124.37 }, "finalCreditInfo": { "asset": "USD", "base": 5, "companyProfit": 0, "earningsWithholding": 0, "holdingIncomeFee": 0, "iva": 0, "marketRight": 0, "platformFee": 0, "total": 5, "totalFees": 0 }, "id": "670d520139fa58ae89294c1b", "incomeAsset": "USD", "legalId": "20335281536", "numberId": "10442", "settlement": "INSTANT", "status": "PAID", "type": "BOND", "updatedAt": "2024-10-14T14:16:49.283-03:00", "userId": "65cfadf9da953feea0e29400" }, "status": "PAID" } } Actualización de balance de usuario JSON { "eventName": "user-balance-update", "data": { "balance": { "AL30": "0", "ARS": "2318066.35", "USD": "1011.07", "VALE": "1" }, "companyId": "658dd9502accccd05acc3ce9", "creationTime": "2025-01-22T11:08:21.888-03:00", "nonManaged": [], "pendingBalance": { "MGCHO": "1218" }, "slips": [ { "amount": "1218", "asset": "MGCHO", "id": "6817cfde06aa5ccbb329a105", "settlement": "DAY", "settlementTime": "2025-05-06T11:00:00.000-03:00", "userId": "6790fbd5cb990ab313ec9525" } ], "updatedAt": "2025-05-05T22:37:24.831-03:00", "userId": "65cfadf9da953feea0e29400" } } } Actualizacion de suscripción/rescate FCI JSON { "eventName": "order-status-update", "data": { "order": { "against": "ARS", "amount": 330.327354, "asset": "FSTPESA", "companyId": "65cfcc1809f51b8604037095", "creationTime": "2025-07-04T10:28:09.797-03:00", "executionTime": "2025-07-04T16:00:00.000-03:00", "externalId": "a06d7e18-5f75-43be-aec2-12bc6d9eab29", "fee": 0, "feeInfo": { "companyProfit": "0.0000000000", "earningsWithholding": "0", "holdingIncomeFee": "0", "marketRight": "0", "platformFee": "0.0000000000", "totalFee": "0.0000000000", "usesIva": false }, "filledAmount": 0, "finalClaimInfo": { "asset": "ARS", "base": 1000, "companyProfit": 0, "earningsWithholding": 0, "holdingIncomeFee": 0, "iva": 0, "marketRight": 0, "platformFee": 0, "total": 1000, "totalFees": 0 }, "finalCreditInfo": { "asset": "FSTPESA", "base": 0, "companyProfit": 0, "earningsWithholding": 0, "holdingIncomeFee": 0, "iva": 0, "marketRight": 0, "platformFee": 0, "total": 0, "totalFees": 0 }, "history": [ { "claimedAmount": 1000, "newStatus": "PENDING_EXECUTION", "price": 3.0273, "stepAmount": 330.327354, "timestamp": "2025-07-04T10:28:09.796-03:00" } ], "id": "6867d6e93699cbbbba3c2763", "legalId": "23389571334", "numberId": "10443", "price": 3.0273, "settlement": "INSTANT", "side": "BUY", "status": "PENDING_EXECUTION", "type": "MARKET", "updatedAt": "2025-07-04T10:28:09.797-03:00", "userId": "65cfd349c92a6b5f3622c420" }, "status": "PENDING_EXECUTION" } } JSON { "eventName": "order-status-update", "data": { "order": { "against": "ARS", "amount": 330.327354, "asset": "FSTPESA", "companyId": "65cfcc1809f51b8604037095", "creationTime": "2025-07-04T10:41:05.336-03:00", "executionTime": "2025-07-04T16:00:00.000-03:00", "externalId": "08d4184c-dd66-4be0-a13e-f15e48583aa4", "fee": 0, "feeInfo": { "companyProfit": "0.0000000000", "earningsWithholding": "0", "holdingIncomeFee": "0", "marketRight": "0", "platformFee": "0.0000000000", "totalFee": "0.0000000000", "usesIva": false }, "filledAmount": 0, "finalClaimInfo": { "asset": "FSTPESA", "base": 330.327354, "companyProfit": 0, "earningsWithholding": 0, "holdingIncomeFee": 0, "iva": 0, "marketRight": 0, "platformFee": 0, "total": 330.327354, "totalFees": 0 }, "finalCreditInfo": { "asset": "ARS", "base": 0, "companyProfit": 0, "earningsWithholding": 0, "holdingIncomeFee": 0, "iva": 0, "marketRight": 0, "platformFee": 0, "total": 0, "totalFees": 0 }, "history": [ { "claimedAmount": 330.327354, "newStatus": "PENDING_EXECUTION", "price": 3.0273, "stepAmount": 330.327354, "timestamp": "2025-07-04T10:41:05.335-03:00" } ], "id": "6867d9f13699cbbbba3c2949", "legalId": "23389571334", "numberId": "10443", "price": 3.0273, "settlement": "INSTANT", "side": "SELL", "status": "PENDING_EXECUTION", "type": "MARKET", "updatedAt": "2025-07-04T10:41:05.336-03:00", "userId": "65cfd349c92a6b5f3622c420" }, "status": "PENDING_EXECUTION" } } Noticias de compliance JSON { "data": { "legalId": "20351156938", "message": "Person banned status has been updated.", "payload": { "banned": false }, "type": "BLOCKED" }, "eventName": "compliance-notice" } • [Alta de usuarios](https://docs.manteca.dev/broker/primeros-pasos/alta-de-usuarios.md): Esta sección describe el proceso completo para dar de alta a un nuevo usuario en la plataforma. Actualmente, consta de algunos pasos obligatorios y, en caso que toda la información brindada sea correcta, el proceso demora no más de 5 minutos. 1 Obtener perfil del inversor Como primer punto se requiere obtener las preguntas y generar una respuesta en función de las mismas. Para más información, consultar la sección de Perfil del inversor . 2 Alta inicial de usuario Con todos los datos iniciales, sumado a la información del perfil del inversor, se hace el alta de usuario . 3 Chequeo de datos faltantes (eventual) Si bien la gran mayoría de los datos son precompletados de nuestro lado, puede pasar que algunos queden vacíos. Por este motivo, se requiere chequear si hay algún dato faltante para que el usuario pase a estado activo mediante este endpoint . 4 Carga de documentación El siguiente paso es cargar las imágenes de frente y dorso del DNI de los usuarios. Para esto, se solicita una URL de subida y luego se realiza el PUT de la imagen. Este paso es únicamente mandatorio para continuar con el alta en el caso de personas físicas. Las personas jurídicas siguen su flujo de manera independiente a la suba de documentación. 5 El estado del usuario cambia a ACTIVE Una vez la validación esté finalizada, el usuario cambia de estado y ya está listo para realizar operaciones. Se recibirá un webhook con el evento USER_STATUS_UPDATE. También se puede consultar el estado del mismo mediante el endpoint de consulta . • [Crear usuario](https://docs.manteca.dev/broker/primeros-pasos/alta-de-usuarios/usuario.md): Para altas de un cliente, Manteca asume que el email del cliente está verificado - el cliente se compone por dos módulos, la persona y el usuario . Usuario El usuario es la cuenta del cliente para la compañía. Se identifica con su número de cuenta ( numberId ). Persona Contiene los datos personales del cliente que se comparten entre todas las compañías, esto permite que un cliente puede pertenecer a dos o más compañías sin conflicto. Se identifica con su número de ID nacional ( legalId ), se acepta CUIT o CUIL . • [Persona](https://docs.manteca.dev/broker/primeros-pasos/alta-de-usuarios/usuario/onboarding-inicial.md): Errores 409 USER_EXISTS_EMAIL ⇢ Existe un usuario con ese email 409 USER_EXISTS ⇢ Existe un usuario registrado con ese legalId en esta company 409 INACTIVE_ADDRESS ⇢ Alguna cuenta bancaria no se encuentra habilitada para recibir transferencias 400 COIN_MISMATCH ⇢ Alguna cuenta bancaria no coincide la moneda informada ante la entidad bancaria 400 CUIT_MISMATCH ⇢ Alguna cuenta bancaria no coincide la titularidad con el legalId 409 INVALID_CBU ⇢ Alguna cuenta bancaria no es valida ante la entidad bancaria 409 INACTIVE_ADDRESS ⇢ Alguna cuenta bancaria no se encuentra habilitada para recibir transferencias 409 EMAIL_EXISTS ⇢ Existe una persona con ese email 409 PHONE_EXISTS ⇢ Existe una persona con ese número de télefono Testing INACTIVE_ADDRESS ⇢ 9990001800000000000055 COIN_MISMATCH ⇢ 9990001800000000000086 CUIT_MISMATCH ⇢ 9990001800000000000062 INVALID_CBU ⇢ 9990018600000000000093 Persona Expuesta Políticamente (PEP) Para los casos en que la persona sea considerada Persona Expuesta Políticamente (PEP), es necesario incluir el atributo pepData , donde se debe indicar el motivo por el cual se declara como tal - para facilitar la correcta carga de esta información, se brindan los siguientes ejemplos: DIRECT {"charge": "Secretaria jurídica", "authority": "Procuracion General de Rio Negro"} INDIRECT {"charge": "Hijo de secretaria jurídica", "authority": "Procuracion General de Rio Negro"} • [Empresa](https://docs.manteca.dev/broker/primeros-pasos/alta-de-usuarios/usuario/persona-fisica-copy-1.md): Errores 409 USER_EXISTS_EMAIL ⇢ Existe un usuario con ese email 409 USER_EXISTS ⇢ Existe un usuario registrado con ese legalId en esta company 409 INACTIVE_ADDRESS ⇢ Alguna cuenta bancaria no se encuentra habilitada para recibir transferencias 400 COIN_MISMATCH ⇢ Alguna cuenta bancaria no coincide la moneda informada ante la entidad bancaria 400 CUIT_MISMATCH ⇢ Alguna cuenta bancaria no coincide la titularidad con el legalId 409 INVALID_CBU ⇢ Alguna cuenta bancaria no es valida ante la entidad bancaria 409 INACTIVE_ADDRESS ⇢ Alguna cuenta bancaria no se encuentra habilitada para recibir transferencias 409 EMAIL_EXISTS ⇢ Existe una persona con ese email 409 PHONE_EXISTS ⇢ Existe una persona con ese número de télefono Testing INACTIVE_ADDRESS ⇢ 9990001800000000000055 COIN_MISMATCH ⇢ 9990001800000000000086 CUIT_MISMATCH ⇢ 9990001800000000000062 INVALID_CBU ⇢ 9990018600000000000093 • [Chequeo de pendientes](https://docs.manteca.dev/broker/primeros-pasos/alta-de-usuarios/chequeo-de-pendientes.md) • [Perfil del Inversor](https://docs.manteca.dev/broker/primeros-pasos/alta-de-usuarios/perfil-del-inversor.md): Es una evaluación que ayuda a entender cómo una persona maneja sus inversiones, considerando factores como sus objetivos financieros, el tiempo que planea mantener sus inversiones y su tolerancia al riesgo. Esto permite determinar si el inversor es más conservador, buscando seguridad, o más agresivo, dispuesto a asumir más riesgos a cambio de posibles mayores rendimientos. 1 Preguntas Se obtiene el listado de preguntas junto con sus respuestas para el cuestionario 2 Examen Se realizan las preguntas al cliente para obtener la respuesta a cada pregunta 3 Resultado Se envían la preguntas justo con las respuestas provista por el usuario y del conjunto se obtiene como resultado el perfil que más se adapta • [Obtener cuestionario](https://docs.manteca.dev/broker/primeros-pasos/alta-de-usuarios/perfil-del-inversor/chequeo-de-pendientes-copy-1.md) • [Obtener resultado](https://docs.manteca.dev/broker/primeros-pasos/alta-de-usuarios/perfil-del-inversor/obtener-cuestionario-perfil-del-inversor-copy-1.md) • [Carga de documentación](https://docs.manteca.dev/broker/primeros-pasos/alta-de-usuarios/documentaciones.md): Para que un usuario pueda operar en la plataforma, es necesario que se encuentre en estado ACTIVE , este estado se alcanza al completar el proceso de KYC y validar la documentación requerida. PERSONA FÍSICA DNI La validación se realiza automáticamente mediante sistemas internos, lo que garantiza un proceso rápido y prácticamente instantáneo. En algunos casos, si las imágenes no son claras, están incompletas o presentan inconsistencias, se requiere una validación manual, lo que puede tomar un poco más de tiempo. ORIGEN DE FONDO Cada usuario tiene asociados límites predeterminados para operar sin necesidad de presentar documentación adicional. Sin embargo, si se requieren límites más altos, el usuario puede cargar la documentación necesaria. Una vez validada correctamente, los límites serán ajustados según corresponda. PERSONA JURÍDICA ESTATUTO Documento fundacional que establece las normas internas de funcionamiento, objeto social, capital y estructura organizativa de la sociedad. ACTA DESIGNACION DE AUTORIDADES Documento que certifica la designación formal de autoridades, directores o representantes legales de la empresa según las decisiones del órgano societario. BALANCE Estado contable que muestra la situación financiera de la empresa en un momento determinado, incluyendo activos, pasivos y patrimonio neto REGISTRO DE ACCIONISTAS Documento que certifica la desigación formal de accionistas. DNI Documentación identificatorioa ( frente y dorso dni ) del representante legal de la empresa. 1 Subir Necesitas obtener la URL para subir la imagen, en la cual tenes que hacer un PUT con la imagen en binario 2 Notificación Una vez subida la imagen recibimos notifiacion de que subio la imagen y entra en nuestro proceso de validación 3 Revisión Se analizan la imagen subida y dependiendo del tipo de documento subido se puede aprobar o rechazar Estados PENDING ⇢ Fue subido exitosamente y entró en proceso de validación REJECTED ⇢ Rechazado, puede obtener más información en el motivo adjunto VALIDATED ⇢ Aprobado EXPIRED ⇢ Expirado • [Obtener URL de subida](https://docs.manteca.dev/broker/primeros-pasos/alta-de-usuarios/documentaciones/obtener-url-de-subida.md): Errores 409 INVALID_DOCUMENTATION_FORMAT ⇢ No soportamos el formato de la documentacion a subir 409 DOCUMENTATION_PENDING ⇢ Existe en el sistema y esta pendiente de ser validado 409 DOCUMENTATION_EXISTS ⇢ Existe el documento en el sistema y ya se encuentra valido 400 PERSON_NF ⇢ No se encontró una persona vinculada con ese CUIT 409 ONBOARDING_PENDING ⇢ Necesita terminar de completar la información personal antes de subir documentos Formatos Onboarding persona DNI_FRONT ⇢ .jpg .jpeg .png .webp DNI_BACK ⇢ .jpg .jpeg .png .webp SELFIE ⇢ .jpg .jpeg .png .webp Onboarding empresa BALANCE ⇢ .pdf AUTHORITIES ⇢ .pdf STAKEHOLDERS ⇢ .pdf BYLAWS ⇢ .pdf Otros FUNDS ⇢ .pdf • [Obtener documentaciones](https://docs.manteca.dev/broker/primeros-pasos/alta-de-usuarios/documentaciones/obtener-documentaciones.md) • [Obtener documento por ID](https://docs.manteca.dev/broker/primeros-pasos/alta-de-usuarios/documentaciones/obtener-documento-por-id.md) • [Operaciones](https://docs.manteca.dev/broker/primeros-pasos/operaciones.md): Las operaciones representan las distintas formas disponibles para generar órdenes dentro de la plataforma. En un caso sin descubierto , el flujo es simple: Depósito de pesos/dólares Creación de órden y seguimiento de su estado a través de los webhooks (Opcional) Solicitud de retiro de fondos (en caso que sea una venta contra pesos/dólares) En caso de operar con descubierto (es decir, permitir que el usuario confirme la operación antes de tener el saldo disponible), lo que suele hacerse es: Caso práctico – Compra de 10.000 ARS de dólar MEP El usuario confirma una operación de compra por 10.000 ARS. De su lado, deben descontar/bloquear los 10.000 ARS (aunque aún no se ejecutó la compra). Envían a Manteca la petición para crear la órden de compra (la operación MEP). Si por cualquier motivo la creación del sintético falla, reintegran los fondos al usuario de su lado. Caso contrario, a los pocos segundos, reciben un webhook notificando que la órden fue ejecutada correctamente. En ese webhook, reciben el monto realmente utilizado (pues en la creación se devuelve un monto aproximado que no es necesariamente igual al que se termina operando) en details.operatedAmount , con lo cual deben ajustar la diferencia respecto a los 10.000 ARS iniciales. Eso significa por un lado enviar a Manteca el total operado para saldar el descubierto y, por otro, reacreditar al usuario los fondos no utilizados en la operación. • [Envío de órdenes a mercado](https://docs.manteca.dev/broker/primeros-pasos/operaciones/envio-de-ordenes-a-mercado.md): Para realizar una compra o venta, simplemente se debe crear una orden. La orden es la entidad de más bajo nivel en nuestra estructura operativa, y es sobre la cual actúan directamente los sintéticos. Esto permite no solo operaciones de tipo MEP o CCL, sino también brindar acceso a instrumentos puntuales como bonos (por ejemplo, AL30) o CEDEARs (como NU), habilitando una experiencia de inversión más amplia y flexible para los usuarios. Estado PENDING ⇢ La órden fue creada, pero todavía no se envió a mercado SENT ⇢ La órden fue enviada a mercado FAILED ⇢ La órden llegó a mercado y fue rechazada COMPLETED ⇢ La órden se completó en su totalidad CANCELLED ⇢ La órden fue cancelada por el mercado o por algún administrador Tiempos de acreditación Una órden puede tener distintos tiempos de liquidación y, por tanto, de acreditación. El resultado de la misma va a estar disponible una vez terminado dicho tiempo de acreditación. CI ⇢ Contado inmediato (T+0) 24hs ⇢ Liquidación a un día (T+1) 48hs ⇢ Liquidación a dos días (T+2) Fees Las comisiones que se cobran para una orden son: platformFee ⇢ Comisión que cobra Manteca por el uso de la plataforma companyProfit ⇢ Comisión que cobra la compañía cliente (ganancia) marketRight ⇢ Comisión que cobra el agente de bolsa por el acceso al mercado iva ⇢ Aplica para ciertos activos y tiene un valor constante de 21% holdingIncomeFee ⇢ Comisión que cobra el agente de bolsa a la ganancia generada por tenencia de activos earningsWithholding ⇢ Comisión que aplica solamente a préstamos o cauciones Info Diferencia entre amount y filledAmount Una órden puede completarse parcialmente o en su totalidad. amount ⇢ cantidad enviada a mercado (lo que quiero operar) filledAmount ⇢ cantidad final operada (lo que se operó), puede ser igual o menor a amount Pueden haber órdenes con estado CANCELLED o FAILED que tengan filledAmount mayor a cero. • [Previsualizar orden](https://docs.manteca.dev/broker/primeros-pasos/operaciones/envio-de-ordenes-a-mercado/crear-orden-copy-1.md): Errores 400 MIN_ASSET_AMOUNT ⇢ 400 ORDER_MARKET_PRICE_OVERRIDE ⇢ 400 MISSING_PRICE ⇢ 400 BANK_HOLIDAY ⇢ 400 INVALID_ASSET ⇢ 400 PRICE_OUT_OF_BOUNDS ⇢ 400 INVALID_PRICE_STEP_SIZE ⇢ 400 MIN_AMOUNT ⇢ 400 MAX_AMOUNT ⇢ 400 TICK_SIZE ⇢ • [Crear orden](https://docs.manteca.dev/broker/primeros-pasos/operaciones/envio-de-ordenes-a-mercado/crear-orden.md): Errores 400 MIN_ASSET_AMOUNT ⇢ 400 ORDER_MARKET_PRICE_OVERRIDE ⇢ 400 MISSING_PRICE ⇢ 400 BANK_HOLIDAY ⇢ 400 INVALID_ASSET ⇢ 400 DUPLICATE_REQUEST ⇢ 400 PRICE_OUT_OF_BOUNDS ⇢ 400 INVALID_PRICE_STEP_SIZE ⇢ 400 MIN_AMOUNT ⇢ 400 MAX_AMOUNT ⇢ 400 TICK_SIZE ⇢ 400 NO_FUNDS ⇢ 403 PERSON_DEPOSIT_LIMIT ⇢ 409 COMPANY_RESERVES ⇢ 403 NO_USD_ACCOUNT ⇢ 403 NO_ARS_ACCOUNT ⇢ 403 UNFINISHED_PARKING ⇢ 409 ORDER_EXISTS ⇢ • [Obtener orden por ID](https://docs.manteca.dev/broker/primeros-pasos/operaciones/envio-de-ordenes-a-mercado/obtener-orden-por-id.md) • [Obtener órdenes](https://docs.manteca.dev/broker/primeros-pasos/operaciones/envio-de-ordenes-a-mercado/obtener-ordenes.md) • [Sintéticos](https://docs.manteca.dev/broker/primeros-pasos/operaciones/sintetico-dolar-mep.md): Entendemos que ciertos flujos operativos son muy comunes y que muchas empresas desean versiones simplificadas de los mismos. Para responder a esa necesidad, desarrollamos herramientas de automatización, en particular lo que llamamos Sintéticos, que permiten simplificar y automatizar operaciones habituales. Un ejemplo típico es lo que denominamos dólar mep: generar una órden de compra de AL30 contra pesos (por ejemplo) y luego, una órden de venta contra dólares; teniendo como resultado una compra de dólares. Un sintético es una entidad compuesta por una serie de etapas que se ejecutan en órden, siguiendo una lógica determinada. Esta funcionalidad permite encapsular flujos operativos completos en una única entidad, reduciendo la complejidad de la integración y automatizando procesos críticos. Estados STARTING ⇢ El sintético fue creado pero ninguna orden ha sido cursada ACTIVE ⇢ El sintético cuenta con una orden en el mercado WAITING ⇢ El sintético está esperando a terminar el tiempo de espera por regulaciones de mercado, se ejecutará la siguiente etapa cuando sea posible PAUSED ⇢ El sintético fue pausado manualmente y la siguiente etapa no se ejecutará, para ejecutarlo se debe usar el endpoint de “Ejecutar sintético” FAILED ⇢ El sintético tuvo algún error no recuperable en alguna etapa y requiere intervención manual COMPLETED ⇢ El sintético completó todas sus etapas exitosamente CANCELLED ⇢ El sintético fue manualmente cancelado • [Dólar MEP](https://docs.manteca.dev/broker/primeros-pasos/operaciones/sintetico-dolar-mep/sinteticos-disponibles/operar-sintetico-dolar-mep.md): Errores 400 LETTER_MEP_SETTLEMENT ⇢ 400 MIN_AMOUNT ⇢ 400 INVALID_SETTLEMENT ⇢ 400 MIN_ASSET_AMOUNT ⇢ 400 LETTER_CLOSE_TO_EXPIRE ⇢ 400 DUPLICATE_REQUEST ⇢ 403 NO_USD_ACCOUNT ⇢ 403 NO_ARS_ACCOUNT ⇢ 409 SYNTHETIC_EXISTS ⇢ Mínimos COMPRA ⇢ 10.000 ARS VENTA ⇢ 10 USD • [Obtener sintéticos](https://docs.manteca.dev/broker/primeros-pasos/operaciones/sintetico-dolar-mep/obtener-sinteticos.md) • [Obtener sintético por ID](https://docs.manteca.dev/broker/primeros-pasos/operaciones/sintetico-dolar-mep/obtener-sintetico-por-id.md) • [Envío de ARS/USD](https://docs.manteca.dev/broker/primeros-pasos/operaciones/movimiento-de-fondos.md): Estados PENDING ⇢ Se inicia el proceso ante la entidad bancaria para enviar el dinero PENDING_ADMIN ⇢ La acción necesita una aprobación por parte de un administrador PENDING_EXECUTION ⇢ Se encuentra programado para ser procesado en el horario definido PROCESSING ⇢ Se encuentra en proceso en la entidad bancaria y estamos a la espera de una respuesta FAILED ⇢ Falló ante la entidad bancaria y necesita una revisión manual por parte de un administrador RETRIED ⇢ Se encontraba en estado fallido y un administrador creó uno nuevo para ser ejecutado a la brevedad EXECUTED ⇢ Se completó exitosamente el envío del dinero CANCELLED ⇢ Se canceló la operación por el usuario o por algún administrador • [Crear retiro](https://docs.manteca.dev/broker/primeros-pasos/operaciones/movimiento-de-fondos/crear-retiro.md): Errores 409 OPERATION_BLOCKED ⇢ La operacion se encuentra bloqueada 400 MIN_WITHDRAW ⇢ El monto a retirar es inferior al minimo establecido en la API 404 BANK_ACCOUNT_NF ⇢ No se encontra la cuenta bancaria registada en el usuario 409 USER_STATUS ⇢ El estado actual del usuario no es compatible con esta operacion 409 USER_BLOCKED ⇢ El usuario se encuentra bloqueado 409 PENDING_WITHDRAW ⇢ Retiro pendiente, tiene que completarse antes de solicitar uno nuevo 400 NO_FUNDS ⇢ No dispone de los fondos necesarios en su balance para retirar el monto ingresado 403 UNFINISHED_BLOCK ⇢ Esta intentando retirar saldo que todavia esta bloqueado 403 PERSON_DEPOSIT_LIMIT ⇢ Depositó más del límite, para poder retirar tiene que presentar origen de fondos Mínimos 1.000 ARS 10 USD Testing FAILED ⇢ 9990001800000000000079 IN_PROGRESS ⇢ 9990001800000000000048 • [Obtener retiros](https://docs.manteca.dev/broker/primeros-pasos/operaciones/movimiento-de-fondos/obtener-retiros.md) • [Obtener retiro por ID](https://docs.manteca.dev/broker/primeros-pasos/operaciones/movimiento-de-fondos/obtener-retiro-por-id.md) • [FCIs](https://docs.manteca.dev/broker/primeros-pasos/operaciones/fondos-comunes-de-inversion.md): Los Fondos Comunes de Inversión (FCIs) son instrumentos que permiten a los usuarios invertir en una cartera diversificada de activos mediante la adquisición de cuotapartes. A diferencia de otras operaciones en la bolsa, los FCIs no se operan por precio en el mercado secundario, sino por monto: el inversor suscribe (compra) o rescata (vende) una determinada cantidad de dinero, y recibe o entrega cuotapartes a un valor calculado por la sociedad gerente del fondo. El funcionamiento está diseñado para ser ágil y accesible: las órdenes de suscripción o rescate pueden enviarse en cualquier momento del día, y el proceso de settlement se realiza con frecuencia diaria, en un horario previamente acordado. Para poder operar FCIs, es requisito que el usuario se encuentre en estado ACTIVE dentro del sistema. Si el usuario no ha sido validado o no se encuentra activo, las órdenes serán rechazadas automáticamente. En esta sección se encuentran los endpoints para realizar la suscripción y el rescate de cuotapartes. Adicionalmente, ofrecemos endpoints relacionados para: Consultar la información del fondo , incluyendo precio actual de la cuotaparte y tasa estimada. Obtener el balance invertido del usuario , expresado en moneda e incluyendo la revalorización diaria. Acceder al flujo de fondos de compañía , que detalla el total de suscripciones, rescates y el monto neto operado en el día para efectos de settlement. • [Suscribir al fondo](https://docs.manteca.dev/broker/primeros-pasos/operaciones/fondos-comunes-de-inversion/suscribir-al-fondo.md): Este endpoint permite realizar una inversión en un Fondo Común de Inversión (FCI). La orden puede enviarse en cualquier momento, pero su ejecución se procesará de acuerdo con el cronograma diario de settlement previamente establecido con la sociedad gerente del fondo. Las órdenes de suscripción se crean inicialmente en estado PENDING_EXECUTION , lo que indica que han sido recibidas pero aún no fueron procesadas. La ejecución se realiza en el corte preacordado. Una vez ejecutadas, las órdenes pasan al estado COMPLETED y se emiten los webhooks correspondientes notificando el cambio de estado y el detalle final de la operación. Errores 400 MIN_INVESTMENT ⇢ No alcanza el mínimo para ingresar (equivalente a 1000 ARS) 400 NO_FUNDS ⇢ El usuario no tiene suficiente fondos para invertir 409 COMPANY_RESERVES ⇢ La compañía no tiene más descubierto disponible 403 PERSON_DEPOSIT_LIMIT ⇢ Se superaron los límites impuestos a nivel usuario 409 ORDER_EXISTS ⇢ Existe una orden registrada con el externalId proporcionado • [Rescatar del fondo](https://docs.manteca.dev/broker/primeros-pasos/operaciones/fondos-comunes-de-inversion/rescatar-del-fondo.md): Este endpoint permite realizar un rescate de un Fondo Común de Inversión (FCI). La orden puede enviarse en cualquier momento, pero su ejecución se procesará de acuerdo con el cronograma diario de settlement previamente establecido con la sociedad gerente del fondo. Las órdenes de rescate se crean inicialmente en estado PENDING_EXECUTION , lo que indica que han sido recibidas pero aún no fueron procesadas. La ejecución se realiza en el corte preacordado. Una vez ejecutadas, las órdenes pasan al estado COMPLETED y se emiten los webhooks correspondientes notificando el cambio de estado y el detalle final de la operación. Errores 400 MIN_INVESTMENT ⇢ No alcanza el mínimo para ingresar (equivalente a 1000 ARS) 400 NO_FUNDS ⇢ El usuario no tiene suficiente fondos para rescatar 409 COMPANY_RESERVES ⇢ La compañía no tiene más descubierto disponible 403 PERSON_DEPOSIT_LIMIT ⇢ Se superaron los límites impuestos a nivel usuario 409 ORDER_EXISTS ⇢ Existe una orden registrada con el externalId proporcionado • [Balance](https://docs.manteca.dev/broker/estadisticas/estadisticas-de-usuario/obtener-balance-de-usuario-por-id.md) • [Posición FCI](https://docs.manteca.dev/broker/estadisticas/estadisticas-de-usuario/obtener-balance-neto.md): Este endpoint permite consultar el balance invertido por moneda, a diferencia del endpoint de balance tradicional que muestra la cantidad de assets por instrumento. Por ejemplo, si un usuario invierte 1.000 ARS en un FCI, el endpoint tradicional retornaría la cantidad de cuotapartes (ej. 1 ), mientras que este endpoint informará el monto invertido en ARS, incluyendo la revalorización acumulada según el valor actual de la cuotaparte. Este balance es ideal para reflejar el rendimiento actualizado del usuario, mostrando no solo cuánto invirtió originalmente, sino también cuánto vale hoy su inversión. • [Movimientos](https://docs.manteca.dev/broker/estadisticas/estadisticas-de-usuario/obtener-usuarios-copy-1.md) • [Manejo de depósitos](https://docs.manteca.dev/broker/anexo/depositos.md): Para depositar balance en la cuenta de un cliente, el cliente debe hacer una transferencia bancaria con una cuenta bancaria a nombre del cliente (Mismo CUIT/CUIL). Si un cliente tiene usuarios con dos compañías, se requiere intervención de un administrador de Manteca para que asigne el depósito a la compañía correspondiente. 1 Procesamiento Desde la entidad bancaria recibimos la notifiacion de un nuevo depósito 2 Análisis Se revisa que exista un usuario con los datos proporciados y si está en condiciones de recibir un depósito 3 Acreditación Si el proceso de análisis fue exitoso se acreditan los fondos en el balance del usuario • [Obtener depósitos](https://docs.manteca.dev/broker/anexo/depositos/obtener-depositos.md) • [Obtener depósito por ID](https://docs.manteca.dev/broker/anexo/depositos/obtener-deposito-por-id.md) • [Manejo de dividendos](https://docs.manteca.dev/broker/anexo/dividendos.md): Un dividendo es un pago que una empresa hace a sus accionistas, distribuyendo parte de sus ganancias, generalmente en efectivo o acciones. 1 Procesamiento Desde ByMA ingresa el movimiento que desde x activo se pago una cantidad en ARS/USD para un usuario 2 Análisis Se revisa si el usuario tiene balance disponible para cubrir las comisiones 3 Acreditación Si el proceso de análisis fue exitoso se acreditan los fondos en el balance restando las comisiones Tipos Existen diferentes tipos de dividendos dependiente el asset que lo genere. DIVIDEND ⇢ Son pagos que hacen las empresas a sus accionistas distribuyendo parte de sus ganancias ej. AAPL BOND ⇢ Son pago de intereces que hacen los gobiernos o empresas privadas por prestarle dinero ej. AL30 o MRCAO MATURITY ⇢ Expiracion de un asset ej. S31O4 o T2X5 REDEMPTION ⇢ Son pagos de capital que hacen los gobiernos o empresas privadas por prestarle dinero ej. AL30 Estados Los dividendos pueden tener diferentes estados dependiendo la etapa de procesamiento en la cual se encuentra. PENDING ⇢ Creado, pero aún debe ser procesado LOCKED_BY_FEES ⇢ Procesado pero el usuario no tenía saldo suficiente para pagar las comisiones PAID ⇢ Procesado y pagado • [Obtener dividendos](https://docs.manteca.dev/broker/anexo/dividendos/obtener-precios-de-dolar-mep-copy-1.md) • [Obtener dividendo por ID](https://docs.manteca.dev/broker/anexo/dividendos/obtener-sintetico-por-id-copy-1.md) • [Procesar dividendo](https://docs.manteca.dev/broker/anexo/dividendos/obtener-dividendo-por-id-copy-1.md): Errores 400 DUPLICATE_REQUEST ⇢ 409 HOLDING_INCOME_STATUS ⇢ Para las empresas que trabajan bajo el sistema de deuda, cuando se deben abonar comisiones y el usuario no dispone de saldo en su balance, el dividendo pasarán a LOCKED_BY_FEES - este estado se mantendrá hasta que la empresa analice el balance del usuario en su PSP e invoque este endpoint para procesar la operación, generando la deuda correspondiente en nuestro sistema y el posterior envío de fondos para saldarla. • [Manejo de precios](https://docs.manteca.dev/broker/anexo/precios.md): Para entender el funcionamiento del mercado de activos financieros, es crucial familiarizarse con ciertos términos que describen los precios y su comportamiento. "ticker": "AL30 - CI" ⇢ representa el símbolo o código del activo financiero. "buy": 76200 ⇢ precio al que los vendedores están dispuestos a vender el activo. "sell": 76160 ⇢ precio al que los compradores están dispuestos a adquirir el activo. "open": 77430 ⇢ precio de apertura del activo en el mercado al inicio de la jornada. "close": 76750 ⇢ precio de cierre del activo al final de la jornada anterior. "last": 76160 ⇢ último precio al que se realizó una transacción del activo. "high": 77430 ⇢ precio más alto alcanzado por el activo durante la jornada. "low": 75520 ⇢ precio más bajo alcanzado por el activo durante la jornada. "variation": { "daily": -0.00769} ⇢ representa la variación del precio del activo. "depth": {"buy": [{"size": 76,"price": 76200}],"sell": [{"size": 7203,"price": 76160}]} ⇢ proporciona información sobre la profundidad del mercado. "timestamp": 1739302729862 ⇢ marca de tiempo que indica el momento en que se registraron estos datos. Los valores de los precios a excepción del depth fueron unificado en plancas de 100 unidades, es importante para assets como cedears que su cotizacion es por unidad. • [Obtener precios](https://docs.manteca.dev/broker/anexo/precios/obtener-precios.md) • [Obtener precio de una especie](https://docs.manteca.dev/broker/anexo/precios/obtener-precio-de-una-especie.md): Errores 404 PRICE_NF ⇢ • [Obtener historial de precio](https://docs.manteca.dev/broker/anexo/precios/obtener-precio-de-una-especie-copy-1.md): Errores 404 PRICE_NF ⇢ • [Obtener comisión de una especie](https://docs.manteca.dev/broker/anexo/precios/obtener-comision-de-una-especie.md): Errores 409 UNKNOWN_ASSET_TYPE ⇢ • [Obtener comisiones de un usuario](https://docs.manteca.dev/broker/anexo/precios/obtener-comisiones-de-un-usuario.md) • [Obtener precio de una letra](https://docs.manteca.dev/broker/anexo/precios/obtener-precio-de-una-letra.md): Errores 404 PRICE_NF ⇢ • [Obtener todos los instrumentos](https://docs.manteca.dev/broker/anexo/precios/obtener-todos-los-instrumentos.md) • [Obtener detalle de un instrumento](https://docs.manteca.dev/broker/anexo/precios/obtener-todos-los-instrumentos-copy-1.md) • [Obtener precios de dólar MEP](https://docs.manteca.dev/broker/anexo/precios/obtener-precios-de-dolar-mep.md): Errores 404 PRICE_NF ⇢ • [Obtener rendimiento](https://docs.manteca.dev/broker/anexo/precios/obtener-detalle-de-un-instrumento-copy-1.md) • [Obtener rendimiento de FCIs](https://docs.manteca.dev/broker/anexo/precios/obtener-rendimiento-letras-y-cauciones-copy-1.md) • [Manejo de usuarios](https://docs.manteca.dev/broker/anexo/usuarios.md): Para ejecutar cualquier tipo de operación en la plataforma, es obligatorio contar con un usuario registrado. Para indetificarlos, se recomienda el uso del id y numberId que son los identificadores principales desde el lado de Manteca segun el endpoint. Estados EMAIL_VALIDATED ⇢ requiere más información de la persona PERSONAL_DATA_COMPLETE ⇢ requiere información bancaria USER_DATA_COMPLETE ⇢ requiere subir DNIs VALIDATING ⇢ se subieron los DNIs correctamente y se están validando los datos VALIDATION_FAILED ⇢ requiere resubir la documentación ya que fue rechazada VALIDATED ⇢ se validó la documentación subida, se inicia el registro contra servicios necesarios para la operatoria ONBOARDING_FAILED ⇢ requiere esperar a que un administrador de Manteca solucione el problema ACTIVE ⇢ el cliente está disponible para operar INACTIVE ⇢ la cuenta fué dada de baja • [Obtener usuarios](https://docs.manteca.dev/broker/anexo/usuarios/obtener-usuarios.md) • [Obtener usuario por ID](https://docs.manteca.dev/broker/anexo/usuarios/obtener-usuario-por-id.md) • [Borrar usuario](https://docs.manteca.dev/broker/anexo/usuarios/borrar-usuario.md): El usuario puede solicitar la baja de su cuenta comitente, lo que derivará en la suspensión de la cuenta, cambiando su estado a INACTIVE - posteriormente, podrá volver a activarla realizando las gestiones correspondientes vía correo electrónico. • [Modificar usuario](https://docs.manteca.dev/broker/anexo/usuarios/modificar-usuario.md) • [Agregar cuenta bancaria](https://docs.manteca.dev/broker/anexo/usuarios/agregar-cuenta-bancaria.md): Errores 409 REPEATED_BANK_ACCOUNT ⇢ Ya existe la cuenta bancaria en el usuario 400 CUIT_MISMATCH ⇢ No coincide el CUIT del usuario con el de la cuenta bancaria 400 COIN_MISMATCH ⇢ No coincide la moneda (ARS/USD) informado con la informacion bancaria 409 INACTIVE_ADDRESS ⇢ La cuenta bancaria no se encuentra habilitada para recibir transferencias Testing INACTIVE_ADDRESS ⇢ 9990001800000000000055 CUIT_MISMATCH ⇢ 9990001800000000000062 COIN_MISMATCH ⇢ 9990001800000000000086 INVALID_CBU ⇢ 9990018600000000000093 • [Eliminar cuenta bancaria](https://docs.manteca.dev/broker/anexo/usuarios/eliminar-cuenta-bancaria.md): Errores 409 NO_BANK_ACCOUNTS ⇢ • [Obtener personas](https://docs.manteca.dev/broker/anexo/personas/obtener-personas.md) • [Obtener persona por CUIT/CUIL](https://docs.manteca.dev/broker/anexo/personas/obtener-persona-por-cuit-cuil.md) • [Obtener límites de una persona](https://docs.manteca.dev/broker/anexo/personas/obtener-limites-de-una-persona.md): Glosario totalYearlyOperated ⇢ monto en ARS operados en el año calendario totalYearlyDeposited ⇢ monto en ARS depositado en el año calendario verifiedLimit ⇢ monto en ARS subido por origenes de fondos govLimit ⇢ monto base en ARS permitido a depositar sin presentar origen de fondo availableDollars ⇢ (deprecado) Los depositos en USD se convertirán en ARS bajo el tipo de cambio MEP para contabilizarlo. • [Modificar persona](https://docs.manteca.dev/broker/anexo/personas/modificar-persona.md) • [Crear depósito](https://docs.manteca.dev/broker/anexo/recursos-para-testear/obtener-deposito-por-id-copy-1.md): Para poder automatizar las pruebas en SANDBOX ofrecemos este endpoint para poder crear depósitos • [Reintentar registro contra terceros](https://docs.manteca.dev/broker/anexo/recursos-para-testear/onboarding-inicial-copy-1.md): Para poder automatizar las pruebas en SANDBOX ofrecemos este endpoint para poder reintentar el proceso de registro contra servicion de terceros como ByMA, que son necesarios para que el usuario puede operar en el mercado bursátil. • [Modificar documento](https://docs.manteca.dev/broker/anexo/recursos-para-testear/modificar-documento.md): Para poder automatizar las pruebas en SANDBOX ofrecemos este endpoint para poder aprobar/rechazar documentos Un documento puede ser rechazado por uno de los siguiente motivos DNI 1. Sin comentarios 2. El DNI no se encuentra centrado en la imagen 3. La foto del DNI se ve borrosa o sin nitidez 4. El DNI subido no corresponde con la información del usuario o está vencido, o no es el ejemplar correcto 5. Se subio la misma foto para frente y dorso del DNI 6. El DNI está siendo tapado por un objeto o la mano del usuario 7. Tipo de DNI no valido 8. El DNI enviado esta próximo a vencer SELFIE 1. Sin comentarios 2. No coincide DNI con la foto 3. La foto SELFIE no tiene un formato válido • [Estado del servicio](https://docs.manteca.dev/broker/anexo/health.md): Podés consultar el estado del servicio haciendo un llamado a nuestro endpoint de salud.