Holidays
Holidays are the days the banks are closed. They serve two purposes:
- Finding the effective due date: an invoice due on a weekend or holiday can be paid on the next business day with no fine or interest.
- Counting business days when the late fee policy charges interest per working day instead of per calendar day.
Each organization has its own list. A municipal holiday moves the working day for one customer's bank and not another's, and removing a holiday on your account affects no one else.
Where to configure it​
System → Holidays.
The screen shows the holidays for the selected year, with each row's weekday and where it came from.
Automatic import​
Every organization created on the platform already carries the national holidays for the current year and the next two, imported from BrasilAPI.
To bring in another year, or to fill in what was missed, use Import national with the year selected.
The import includes Carnaval, Good Friday, Easter and Corpus Christi. Strictly speaking Carnaval and Corpus Christi are optional days off rather than statutory holidays — but the banks close on them, and it is the bank closing that matters for counting a business day.
:::note The import does not undo a removal If you remove a holiday, importing the national ones again does not bring it back. The removed row stays on file precisely so the import can respect your decision. When that happens, the screen says how many removed holidays were left out. :::
Adding one by hand​
Use New holiday for state and municipal holidays, your own optional days off, or any other date.
| Field | Description |
|---|---|
| Date | The day on the calendar. No time of day — a holiday is a date, not an instant |
| Name | Together with the date it identifies the row. A municipal and a national holiday can fall on the same day |
| Scope | National, state, municipal, optional day off, or your own |
| Notes | Free text — the city of a municipal holiday, for instance |
A holiday falling on a Saturday or Sunday changes nothing in the count: those days were not working days to begin with. The screen flags it to save you the question.
How it affects interest​
In the late fee policy, the Day count field decides what counts:
- Calendar days — every day, weekends and holidays included.
- Business days — only the days the bank is open, according to this list.
With R$ 1,000.00 at 1% per month, due on a Thursday and looked at the following Monday:
| Day count | Days | Interest |
|---|---|---|
| Calendar | 4 | R$ 1.33 |
| Business | 2 (Friday and Monday) | R$ 0.67 |
| Business, with Friday a holiday | 1 (Monday) | R$ 0.33 |
The fine is unaffected: it applies once, counted in calendar days. The bank instruction treats it the same way — there is no "business days for the fine" setting.
:::caution With no holidays on file the count is wrong
If the policy charges per business day and the list is empty, the calculation skips only weekends. The bank skips the holidays too, so it will collect less than we accrue — and the difference shows up as credit on the customer's account, along with the invoice.late_charges_unexplained event. Import the national ones before turning business-day charging on.
:::
Due dates on weekends and holidays​
A bank slip due on a day the banks are closed can be paid on the next business day with no charges — that is the Febraban rule, and the slip is already registered with that date. Fines and interest follow the slip's due date: they count from the next business day, whatever the policy's day count.
An invoice due on Saturday and paid on Monday owes no fine or interest. Paid on Tuesday, it is one day late, counted from Monday.
To have the invoice itself show that date — not just the slip — turn on Due dates on business days only under Settings → Billing. With it on, every due date that falls on a weekend or holiday moves to the next business day: the one computed from the payment terms, one typed by hand, and each installment's. Imported invoices keep the date in the file.
Through the API​
The resource is /v1/holidays. Dates are calendar days (YYYY-MM-DD), never instants.
# List a year's holidays
curl "https://api.kobana.com.br/billing/v1/holidays?year=2026" \
-H "Authorization: Bearer $TOKEN"
# Add a municipal holiday
curl -X POST https://api.kobana.com.br/billing/v1/holidays \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"date": "2026-01-25",
"name": "Aniversário de São Paulo",
"type": "municipal",
"notes": "São Paulo, SP"
}'
# Import the national ones
curl -X POST https://api.kobana.com.br/billing/v1/holidays/sync \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"years": [2026, 2027]}'
The import response carries created, existing and skipped_removed — the last one counts the holidays that were removed and therefore left out.
Frequently asked​
Do I need holidays if I charge interest per calendar day? Yes. Even with calendar days, a due date that falls on a holiday moves to the next business day, and only the list says which days are holidays. Without it, only weekends move the due date.
Do the holidays apply to all my companies? The list is per organization, so it applies to every company inside it. If one company sits in a municipality with its own holiday, add it with the municipal scope and note the city.
Why does Easter appear, if it always falls on a Sunday? BrasilAPI returns it, and keeping it is harmless: a holiday on a weekend does not change the count.
Who can edit this?
Anyone with permission to update settings — the same one as Settings.