Savings plan subscription withdrawal
Transfers money from a savings plan subscription to the CVU in cxu. The user can withdraw at any time, even before the plan's target date or target amount.
- Partial: send
amount. That amount is transferred and the subscription stays active. It cannot exceed the invested capital. - Total: send
finalize_plan: trueand noamount. Everything the subscription holds is transferred, minus the penalty, and the subscription is closed.
When the transfer completes, Allaria calls your Plan activity completed webhook, which reports the amount actually transferred.
A withdrawal currently forfeits all generated returns: only the invested capital is transferred. This policy is subject to change.
A USD deposit is invested in mutual funds. It can only be withdrawn once its fund shares are assigned, from 9 p.m. (Argentina time).
Until then it counts in the subscription's valuation, but a request that needs it returns insufficient_settled_position. Retry once it is available.
| Deposit processed | Available to withdraw |
|---|---|
| Before the funds' cut-off (4–4:30 p.m.) | That same night |
| After the cut-off | The night of the next business day |
A total withdrawal redeems the funds in full and sends the cash once the redemption is priced, from 9 p.m. on the day it is processed. ARS subscriptions are not affected.
/v1/savings/business/account-investment-plans/{account_investment_plan_id}/withdrawalRequest
Headers
| Field | Type | Required | Description |
|---|---|---|---|
Authorization | string | Yes | Access token in Bearer ACCESS_TOKEN format |
Content-Type | string | Yes | Must be application/json |
Path Parameters
| Field | Type | Required | Description |
|---|---|---|---|
account_investment_plan_id | number | Yes | Subscription identifier. |
Not applicable: Query Parameters.
Body
The body must be sent in snake_case.
| Field | Type | Required | Description |
|---|---|---|---|
cxu | string | Yes | Destination CVU to which the funds will be transferred. |
amount | number | Conditional | Amount to withdraw. Must be greater than 0. Required unless finalize_plan is true. |
finalize_plan | boolean | No | true withdraws everything and closes the subscription; amount must not be sent. |
Response
2XX Success
| Field | Type | Description |
|---|---|---|
message | string | Message confirming the result of the withdrawal. |
activity_id | number | Identifier of the activity created for this withdrawal. Store it against your own record: the Plan activity completed webhook reports the same value when the withdrawal settles, and it is the only field that tells one operation from another. |
Error Codes
Errors return the following body:
{
"code": "invalid_request",
"description": "Error description."
}
| Status | Code | Condition |
|---|---|---|
400 | invalid_request | The cxu field was not sent, or neither amount nor finalize_plan: true was sent. |
400 | finalize_plan_with_amount | finalize_plan: true was sent together with amount. To close the subscription, do not send amount: everything is moved. |
400 | invalid_request | The amount field is less than or equal to 0. |
400 | invalid_request | The subscription is not in an active state. |
400 | invalid_request | The amount field exceeds the invested capital. Returns cannot be withdrawn. |
400 | insufficient_valuation | The amount field exceeds the current valuation of the subscription, or, on a total withdrawal, the subscription has nothing to withdraw. |
400 | insufficient_settled_position | USD subscriptions only. Part of the amount corresponds to fund shares that have not been assigned to the account yet (see Availability of deposits above), or, on a total withdrawal, any deposit is still pending. Checked per fund of the plan. Retry once the pending deposits are available. |
400 | cxu_not_found | The specified CVU does not exist in the financial system. |
400 | invalid_request | The specified CVU is not a valid CBU/CVU or the account is not active. |
400 | cxu_not_owned_by_holder | The specified CVU does not belong to the subscription holder. For USD subscriptions, the holder is the principal holder of the comitente; co-holders and attorneys are not accepted. |
400 | holder_cuit_unavailable | The subscription holder has no valid CUIT registered at Allaria, so ownership of the destination CVU cannot be verified. For USD subscriptions, also when the principal holder of the comitente cannot be determined. Contact Allaria: the data must be corrected on our side before retrying. |
403 | — | The token does not have the required role to operate this endpoint. |
502 | cxu_fetch_error | The destination CVU could not be validated because the financial system is unavailable. Transient: retry the request. |
502 | holder_fetch_error | The holders of the comitente could not be retrieved, so ownership of the destination CVU cannot be verified. USD subscriptions only. Transient: retry the request. |
Code Example
- cURL
- JavaScript
- Python
- Node.js
curl -X POST https://b2b.allaria.cloud/v1/savings/business/account-investment-plans/1/withdrawal \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"cxu": "0000003100010000000001",
"amount": 50000.00
}'
const accountInvestmentPlanId = 1;
const response = await fetch(
`https://b2b.allaria.cloud/v1/savings/business/account-investment-plans/${accountInvestmentPlanId}/withdrawal`,
{
method: 'POST',
headers: {
'Authorization': 'Bearer ACCESS_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
cxu: '0000003100010000000001',
amount: 50000.00
})
}
);
const data = await response.json();
console.log(data);
import requests
account_investment_plan_id = 1
response = requests.post(
f'https://b2b.allaria.cloud/v1/savings/business/account-investment-plans/{account_investment_plan_id}/withdrawal',
headers={
'Authorization': 'Bearer ACCESS_TOKEN',
'Content-Type': 'application/json'
},
json={
'cxu': '0000003100010000000001',
'amount': 50000.00
}
)
data = response.json()
print(data)
const axios = require('axios');
const accountInvestmentPlanId = 1;
const response = await axios.post(
`https://b2b.allaria.cloud/v1/savings/business/account-investment-plans/${accountInvestmentPlanId}/withdrawal`,
{
cxu: '0000003100010000000001',
amount: 50000.00
},
{
headers: {
Authorization: 'Bearer ACCESS_TOKEN',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
{
"message": "Withdrawal created successfully",
"activity_id": 4821
}