Account Limits
Read the per-transaction and monthly limits that apply to your account.
GET /api/account/limits
Returns the limits that apply to the API key user's account.
Requires the virtual-account feature flag. Without it the endpoint responds 403. Ask your account manager to enable it.
All amounts are integer cents of BRL.
400000is R$ 4.000,00.
Request
curl --request GET \
--url https://api.hodle.com.br/api/account/limits \
--header "Authorization: Bearer $API_KEY"const res = await fetch('https://api.hodle.com.br/api/account/limits', {
headers: { Authorization: `Bearer ${process.env.HODLE_API_KEY}` },
})
const data = await res.json()import os, requests
res = requests.get(
"https://api.hodle.com.br/api/account/limits",
headers={"Authorization": f"Bearer {os.environ['HODLE_API_KEY']}"},
)
data = res.json()Response
{
"success": true,
"data": {
"limits": {
"pixDayLimit": 4000000,
"pixNightLimit": 100000,
"pixInSameHolderDayLimit": 300000,
"pixInDifferentHolderDayLimit": 300000,
"pixInSameHolderNightLimit": 300000,
"pixInDifferentHolderNightLimit": 300000,
"dayStartAt": "06:00",
"nightStartAt": "20:00",
"monthly": {
"limit": 12000000,
"used": 450000,
"remaining": 11550000
}
}
}
}Two ceilings, both enforced
An inbound Pix has to clear both limits. Passing one is not enough.
| Ceiling | Scope | Field |
|---|---|---|
| Per transaction | A single deposit | pixIn* |
| Monthly | The calendar month | monthly |
Per transaction — pixIn*
Caps one deposit. It does not vary by holder or by time of day, which is why all four variants carry the same value.
| Field | Description |
|---|---|
pixInSameHolderDayLimit | Per-transaction inbound limit |
pixInDifferentHolderDayLimit | Per-transaction inbound limit |
pixInSameHolderNightLimit | Per-transaction inbound limit |
pixInDifferentHolderNightLimit | Per-transaction inbound limit |
A deposit above this value is refused whatever the monthly headroom.
Monthly — monthly
Caps the calendar month. It resets at the start of each month.
| Field | Description |
|---|---|
limit | The monthly allowance |
used | Volume that settled so far this month |
remaining | limit - used, floored at 0 |
Only settled deposits count. A Pix QR code that was generated and never paid is not volume and does not consume the allowance.
remaining is never negative: once the month is overspent it reports 0.
Account ceilings
pixDayLimit, pixNightLimit, dayStartAt and nightStartAt are registered for the account itself and are reported as-is. Each can be null when the account has none configured, so read them defensively.
dayStartAt and nightStartAt are HH:mm strings bounding the window each ceiling applies to — with the example values above, the day window runs 06:00–20:00 and the night window covers the rest.
const { monthly, pixInSameHolderDayLimit } = data.data.limits
const canDeposit = (amountInCents) =>
amountInCents <= pixInSameHolderDayLimit &&
amountInCents <= monthly.remaininglimits = data["data"]["limits"]
def can_deposit(amount_in_cents: int) -> bool:
return (
amount_in_cents <= limits["pixInSameHolderDayLimit"]
and amount_in_cents <= limits["monthly"]["remaining"]
)Not included
Pix-out and boleto limits are not part of this response.
Errors
| Status | Meaning |
|---|---|
401 | Missing or invalid API key |
403 | The virtual-account feature flag is not enabled for this user — the error message names the flag your account manager enables |
404 | No limits are available for this account |
502 | The limits could not be read at this time — retry shortly |
{
"success": false,
"error": "<feature flag> is not enabled for this user"
}