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ámetros | Descripción |
---|---|
account_id | Identificador de la Cuenta a la que se le realizará la orden |
amount | Monto a suscribir o rescatar parcialmente |
side | Tipo de orden, puede ser buy , sell o total_sell |
currency | Moneda |
responsible_doc_number | Número de documento del responsable de la orden |
cvu | CVU 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"
}
]
}
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.
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"
}
]
Recomendamos no enviar más de 1000 órdenes en un mismo lote para evitar posibles errores de procesamiento