Introducción
Manteca está organizada alrededor de la interfaz REST. Tiene URLs predecibles orientadas a recursos y usa códigos de respuesta HTTP estándar. Todos los valores de retorno son en formato JSON.
Contamos con un sandbox para que puedas probar el API sin alterar los flujos productivos. Para acceder al mismo, tendrás que usar la URL correspondiente (junto con sus API keys).
Por otro lado, para todo lo que es notificaciones hacia el lado del cliente, utilizamos webhooks. También contamos con un servicio de websockets para escuchar algunos eventos como los precios.
El API utiliza el protocolo HTTPS para exponenr los endpoints. No soporta HTTP.
Base URL
Producción:
https://api.manteca.dev/broker
Sandbox:
https://sandbox.manteca.dev/broker
Autenticación
Manteca utiliza API keys para autenticar los requests. Las mismas son enviadas a través del header md-api-key
Las credenciales poseen privilegios completos por lo que es imprescindible que sean guardadas de manera segura. La interacción con Manteca debe ser siempre del lado del servidor, especialmente para los llamados autenticados.
En ciertas implementaciones donde lo creemos conveniente, también realizamos IP whitelisting para aumentar la seguridad.
Errores
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 (como parámetros omitidos o con un tipo inválido). - 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.
Ejemplo de respuesta de error
Código verbal de error
Descripción del error
Status Codes
200
Todo funcionó correctamente.
201
La creación de un recurso funcionó correctamente.
204
Todo funcionó correctamente y no hay response.
400
El request tiene algún error. Por lo general, son conflictos con los parámetros enviados.
401
Falta enviar el API key.
403
El API key no tiene suficientes permisos para realizar tal acción.
404
No existe el recurso referenciado.
409
La request genera un conflicto. Por ejemplo, por temas de duplicación de request.
429
La cantidad de requests enviados supera el límite impuesto.
500
Algo funcionó mal de nuestro lado.
Paginación
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
: La cantidad de elementos por página, el default es 10.
Header Parameters
Query Parameters
La página actual
La cantidad de elementos en cada página
Webhooks
Podés configurar los webhook endpoints a través del API para ser notificado por cada uno de los eventos que ocurran y te sean de interés, esto te permite recibir información en tiempo real sobre las operaciones que son relevantes para tu sistema.
Entre ellos, encontrarás notificaciones relacionadas a cambios de estado de órdenes, sintéticos, depósitos y retiros.
Es importante destacar que para validar la autenticidad de tales mensajes, los firmamos mediante el uso de HMAC con el secreto compartido. Tal firma la podrán obtener del header md-webhook-signature.
Recursos principales
Base URL
Producción:
https://api.manteca.dev/broker
Sandbox:
https://sandbox.manteca.dev/broker
Compañía
Existen dos tipos de compañía. PARTIALLY_MANAGED y FULLY_MANAGED.
Contabilidad
Onboarding
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.
Conflicto de Persona
Al dar de alta un cliente, la empresa otorgará los datos de la pesona del mismo. Si el individuo tuviese una persona registrada, se comparará los datos nuevos recibidos con los datos existentes. Si existe una diferencia entre los datos, se generará un conflicto. En este paso, se requiere intervención de un administrador de Manteca, el cual actualizará la persona con los datos más recientes.
Flujo de Onboarding
Empieza el alta con el endpoint de Onboarding inicial. Recibe email, legalId, personalData (datos personales simplificados, no todo. El resto se intentará obtener directamente de servicios de información como AFIP) e información de bancos. En la response, en caso de obtener la flag de causedConflict: True
se debe esperar a que un administrador lo resuelva.
Compliance
Usuarios
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.
Balances
Bancos
Depósitos
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.
Crear depósito
Header Parameters
API Key otorgada por manteca.dev
Body Parameters
ID de un usuario
Moneda del depósito
ARS
USD
Monto
Obtener depósitos
Header Parameters
API Key otorgada por manteca.dev
Query Parameters
ID del banco
ID de un usuario
ID numérico de un usuario
CUIT/CUIL de un usuario
Estado actual de un depósito
ASSIGNED
NOT_ASSIGNED
CANCELLED
Moneda del depósito
ARS
USD
Fecha en formato ISO8601
Fecha en formato ISO8601
Obtener depósito por ID
Header Parameters
API Key otorgada por manteca.dev
Path Parameters
Retiros
Órdenes
Sintéticos
Un sintético es una automatización de múltiples órdenes de mercado, las etapas del sintético se ejecutan los días hábiles a partir de las 12:00hs.
Actualmente contamos con el siguiente tipo:
- DOLAR_MEP ➜ Consiste en una compra de un activo del mercado seguido de una espera por regulaciones (para la compra). Luego se realiza una venta de ese activo del mercado contra la moneda fiat esperada. La compra del activo de mercado se hace con tiempo de acreditación instantánea y la venta del activo se hace con tiempo de acreditación de un día, a menos que la diferencia de precio contra instantáneo sea menor, en cuyo caso se ejecuta en modo instantáneo.
Precios
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": 76270
➜ es el precio al que los compradores están dispuestos a adquirir el activo."sell": 76100
➜ es el precio al que los vendedores están dispuestos a vender el activo."open": 77430
➜ es el precio de apertura del activo en el mercado al inicio de la jornada."close": 76750
➜ es el precio de cierre del activo al final de la jornada anterior."last": 76160
➜ es el último precio al que se realizó una transacción del activo."high": 77430
➜ es el precio más alto alcanzado por el activo durante la jornada."low": 75520
➜ es el 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
➜ es una marca de tiempo que indica el momento en que se registraron estos datos.
Dividendos
Un dividendo es un pago que una empresa hace a sus accionistas, distribuyendo parte de sus ganancias, generalmente en efectivo o acciones.
Estadísticas
Gestión de carteras
Una empresa puede tener diferentes grupos de comisiones dependiendo el tipo de cliente, que se puede configurar al momento de crear el usuario.