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.

Virtual accounts must be enabled on your account. Without it the endpoint responds 403. Ask support to enable it.

All amounts are integer cents of BRL. 400000 is 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.

CeilingScopeField
Per transactionA single depositpixIn*
MonthlyThe calendar monthmonthly

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.

FieldDescription
pixInSameHolderDayLimitPer-transaction inbound limit
pixInDifferentHolderDayLimitPer-transaction inbound limit
pixInSameHolderNightLimitPer-transaction inbound limit
pixInDifferentHolderNightLimitPer-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.

FieldDescription
limitThe monthly allowance
usedVolume that settled so far this month
remaininglimit - 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.remaining
limits = 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

StatusMeaning
401Missing or invalid API key
403Virtual accounts are not enabled for this account — ask support to enable them
404No limits are available for this account
502The limits could not be read at this time — retry shortly
403 Forbidden
{
  "success": false,
  "error": "<feature> is not enabled for this user"
}