Saltar al contenido principal

Creación de orden

Antes de crear una orden es importante haber realizado la Apertura de cuenta cuotapartista anteriormente. Es posible crear órdenes singulares o masivas enviando un lote de ordenes.

Crear orden

Para crear una orden utilizamos el endpoint /v1/orders/.

Es posible crear órdenes de compra o venta según el side. Enviando buy creamos una orden de suscripción, enviando sell o total_sell creamos una orden de rescate.

Método: POST
URL: /v1/orders/

El payload se debe enviar con los siguientes datos:

{
"account_id": "acct_1wx3ivesBZhaANhq",
"side": "buy",
"asset_id": "asset_ailw0majWpcqGk8n",
"amount": "15000",
"currency": "ARS",
"responsible_doc_number": "39651529",
"cvu": "01145678901497543"
}

En la siguiente tabla podemos encontrar los parametros requeridos para crear una orden.

ParámetrosDescripción
account_idIdentificador de la Cuenta a la que se le realizará la orden
amountMonto a suscribir o rescatar parcialmente
sideTipo de orden, puede ser buy, sell o total_sell
currencyMoneda
responsible_doc_numberNúmero de documento del responsable de la orden
cvuCVU de la cuenta bancaria vinculada con la operación

Los demás parametros son opcionales. Si no se envía el asset se seleccionará el activo por defecto. En caso de que no se envíe el side se asumirá que es una suscripción. El valor de asset_id se puede obtener con GET al siguiente endpoint /api/v1/funds/.

Respuesta:

{
"order_id": "order_FsnhH3d1Iq4LsyTg",
"account": 10040,
"asset_name": "Testeo de fondos - Testo FMA - Clase Fondo Clase A",
"side": "buy",
"operated_quantity": null,
"operated_price": null,
"amount": "15000.000000000",
"operated_amount": null,
"status": "pendiente de validación",
"status_detail": "Pendiente de validación",
"operational_date": "2023-01-16T16:47:33.404077-03:00",
"responsible": "DeLaRosa, Juancito (#39651529)",
"previous_operational_date": "2023-01-17",
"created": "2023-01-16T16:47:33.404566-03:00",
"updated": "2023-01-16T16:47:33.424095-03:00",
"status_history": [
{
"status": "pendiente de validación",
"status_detail": "Pendiente de validación",
"comment": "Orden ID#7687 pasada a status Pendiente de validación.",
"created": "2023-01-16T16:47:33.420078-03:00"
}
]
}
Aclaración

El estado inicial de una orden dependerá de su side. Por ejemplo, si la orden es de tipo buy se creará con el estado Esperando validación, esto se debe a que este tipo de orden requiere que se realice una transferencia desde una cuenta bancaria indicada hacia la cuenta bancaria del ACDI o Colocador. Una vez que se haya realizado la transferencia, la orden cambiará su estado a Lista para enviar. En cambio, si la orden es de tipo sell o total_sell, se creará directamente con el estado Lista para enviar.

A las 5PM GMT -3:00 del mismo día, se generarán las nóminas correspondientes para enviar las órdenes a la SG/AM. En ese momento, el estado de la orden cambiará a sent_fm. Además, nosotros crearemos el registro en el ente de registro utilizado por el ACDI o Colocador. Una vez que se complete exitosamente el ciclo, la orden pasará al estado completed y la tenencia se acreditará automáticamente en la cuenta que solicitó la orden.

Realizar transferencia a cuenta de destino

Dado que estamos en un entorno de prueba, es importante realizar el pago de la suscripción para que la orden pueda avanzar el flujo. Es posible simular el pago utilizando el endpoint v1/orders/{order_id}/simulate_payment/ para que la orden pase a estar pagada.

Aclaración

En producción este endpoint no existe y el pago se realiza de manera automática.

Método: POST
URL: /v1/orders/{order_id}/simulate_payment/

Respuesta:

{
"order_id": "order_I3K7HcYKIWBD2nkE",
"account": 10040,
"asset_name": "Testeo de fondos - Testo FMA - Clase Fondo Clase A",
"side": "buy",
"operated_quantity": null,
"operated_price": null,
"amount": "15000.000000000",
"operated_amount": null,
"status": "ready_to_send",
"status_detail": "Lista para Enviar",
"operational_date": "2023-01-18T17:20:23.736722-03:00",
"responsible": "DeLaRosa, Juancito (#39651529)",
"previous_operational_date": "2023-01-19",
"created": "2023-01-18T17:20:23.745628-03:00",
"updated": "2023-01-18T17:20:35.899519-03:00",
"status_history": [
{
"status": "ready_to_send",
"status_detail": "Lista para Enviar",
"comment": "Orden ID#7692 pasada a status Pendiente de validación.",
"created": "2023-01-18T17:20:23.759958-03:00"
},
{
"status": "ready_to_send",
"status_detail": "Lista para Enviar",
"comment": "Orden pasada a Lista para enviar de manera automática por homologacion",
"created": "2023-01-18T17:20:35.892214-03:00"
}
]
}

Con esta respuesta exitosa podemos ver que la orden pasó a Lista para enviar y el flujo puede proseguir.

Crear órdenes en lote

Esta funcionalidad permite crear órdenes en lote o masivas. Para ello se debe utilizar el endpoint /v1/orders/batch_orders/.

Método: POST
URL: /v1/orders/batch_orders/

El payload se debe enviar con los siguientes datos:

[
{
"account_id": "string",
"side": "buy",
"asset_id": "string",
"quantity": "string",
"amount": "string",
"currency": "ARS",
"responsible_doc_number": "string",
"has_upfront_rescue": true,
"cvu": "string",
"external_id": "string"
},
{
"account_id": "string",
"side": "buy",
"asset_id": "string",
"quantity": "string",
"amount": "string",
"currency": "ARS",
"responsible_doc_number": "string",
"has_upfront_rescue": true,
"cvu": "string",
"external_id": "string"
}
]
Importante

Recomendamos no enviar más de 1000 órdenes en un mismo lote para evitar posibles errores de procesamiento