Billing
This page explains what a project costs on Bastide, what is never billed, how an invoice is paid and what happens when a spending limit is reached. It separates what the contract provides from what the platform already applies: where a rule is not wired yet, the page says so.
The principle
The billing unit is the project: one application, its environments and its backend. A tier's price covers hosting, the PostgreSQL database, authentication, object storage, realtime, scheduled tasks, transactional emails, logs and observability. No add-on is needed for anything to work. Seats, organisations and roles are not billed, whatever the number of members.
Tiers are paid in advance, monthly. Billing is readable at the organisation's Administrator rank, or with the Billing role.
Tiers and prices
| Tier | Price excl. VAT per project per month | Incl. French VAT (20 %) |
|---|---|---|
| Discovery | €7 | €8.40 |
| Standard | €25 | €30 |
| Pro | €79 | €94.80 |
| Sovereign | from €490, on quotation | from €588 |
What each tier includes (database, storage, build minutes, emails, previews, support…) is detailed in Limits per tier.
A project starts in Discovery. Pro is ordered through a tier change (below), subject to available capacity: a tier with no capacity left shows « Rupture de stock » (out of stock) and the API refuses the change (palier_epuise), billing nothing. Sovereign is quoted on request; its isolation (dedicated node) is not served yet.
The free-forever project
Every verified person gets one free project, with no time limit, on top of their paid projects. During the beta, verification goes through a GitHub account older than 30 days; phone and bank card are announced but not open yet.
Its guard rails:
- it sleeps after 15 minutes without a request and wakes on the next visit within a few seconds;
- it goes dormant after 30 days with neither a visit nor a deployment, without data loss: waking it is then a person's action, from the console;
- 500 MB of database, 1 GB of object storage, 100 build minutes and 100 emails per month, one custom domain;
- outbound network closed by default: you open it host by host, never wholesale; no outbound SMTP;
- sustained CPU capped at 0.25 core, to discourage mining.
Commercial use is allowed. The free project is provided « as is », with no availability commitment. There is one free project per person: deleting your account does not grant a second one. Beyond the month's 100 minutes, a build is refused before it starts (quota_gratuit_construction); builds resume on the first of the month, or immediately if you move the project to a paid tier.
To attach a Discovery project as your free project, open Palier (Tier) from the project's line in Facturation (Billing): the « Projet gratuit » card offers the verification, then « Passer au payant » (switch to paid) when you are ready.
Note. The 14-day trial of a paid tier, provided for in the contract (one project, once per holder, verified payment method), is not available yet.
What is never billed
On no tier: HTTP requests, invocations, execution time, provisioned memory, image transformations, cache reads and writes, observability events, object storage operations, firewall requests, seats, domains, certificates, redirects, and outbound traffic.
Outbound traffic is never billed by volume. Beyond the tier's fair-use threshold, throughput is smoothed and Glowsoft contacts you, without an invoice. Beyond the included image transformations, the image is served as is, untransformed and unbilled.
Meters beyond the allowance
Only four meters can be billed beyond what the tier includes. No other can be added to a running contract.
| Meter | Unit | Price excl. VAT |
|---|---|---|
| Database storage | GB-month | €0.20 |
| Object storage | GB-month | €0.04 |
| Build minutes | wall-clock minute | €0.010 |
| Transactional emails | thousand emails | €0.60 |
The calculation rules: the quantity is measured in full and the included share is only deducted at billing; storage is the average of hourly samples over the cycle; a build counts its wall-clock duration, rounded up to the second, whatever the number of cores; an email counts when the relay accepts it, hard bounces excluded; only each line's total is rounded, up to the cent.
What is applied today:
- Build minutes are a hard cap. Once the month's allowance is used, every new build is refused (
quota_de_construction_atteint) until the first of the next month (UTC). Nothing is billed beyond; online sites keep being served. For more minutes, change tier. - Not every other meter is measured yet. The « Usage au-delà des forfaits » (usage beyond plans) card of Facturation shows « non mesuré » (not measured) while a meter is not; an unmeasured meter is not billed. When an overage line exists, it shows the measurement, the allowance, the billed quantity and the unit price.
Add-ons, discounts and commitment
The planned fixed-price add-ons (fixed outbound IP address, extended backup retention, read replica, priority support) cannot be ordered yet.
The volume discount applies automatically, without negotiation, to the organisation's number of active paid projects, recalculated every cycle. The bracket's rate applies to all projects; the free project does not count.
| Active paid projects | Discount |
|---|---|
| 1 to 4 | 0 % |
| 5 to 99 (agency pack, white label included) | 20 % |
| 100 and more | 25 %, on quotation |
The annual commitment commits a project for 12 months paid in advance, with two months free (16.67 %), combinable with the volume discount, with no tacit renewal. You can always switch provider during the year: the elapsed months are then billed at the monthly price and the balance of the year is refunded. The annual commitment cannot be taken out from the console yet: ask support.
The migration offer grants 50 % off for the first 3 months of a project imported with a Bastide tool, or whose previous hosting you prove with an invoice less than 3 months old. Once per project, combinable with the volume discount, not with the annual commitment. It is not applied automatically yet: tell support about the project.
Price freeze
A project's tier price is frozen for 24 months from its subscription, 36 months with an annual commitment. The freeze is attached to each project and covers the tier price only: not the meters, nor VAT, whose changes apply immediately. A tier change opens a new freeze at the current price. Outside a freeze, a price change is notified by email at least 30 days before the 1st of the month it applies from; you may terminate beforehand.
The spending cap
Every organisation carries a monthly spending cap, never unlimited. You set it at the last step of billing activation, then change it from Facturation.
| Threshold | What happens |
|---|---|
| 50 % | Email to the billing holder |
| 80 % | Alert, and the customer's agent is notified |
| 100 % | Builds and new paid resources are suspended across the organisation |
What never stops: production traffic. At the cap, your sites stay online and serve their visitors, in every project of the organisation. A build requested at the cap is refused (plafond_de_depense_atteint); the next cycle reopens builds by itself. The overrun is bounded at 2 % of the cap or €5, whichever is higher.
- Lowering the cap applies immediately, with no second approval.
- Raising the cap needs the agreement of two distinct authorised people. The first sends the request (« Relever… »), the second resends it within 24 hours; the same account never counts twice. An agent can neither request nor approve a raise. Both actions go into the audit log.
Payment methods
The bank card is saved in Facturation, « Moyen de paiement » (payment method) card. The fields are hosted by Mollie, a European payment provider: Bastide only receives a token, never the card number. Your bank confirms the card with 3-D Secure for a €0.00 payment; the resulting mandate replaces previous ones. Invoices are then charged on that mandate on the day they are issued. SEPA direct debit goes through the payment link of the first invoice, which creates the mandate at Mollie.
Saving a card is reserved to the Owner and the Billing role, and closed to agents.
Note. During the beta, payment may not be open yet for your organisation. The card says so (« Paiement par carte pas encore ouvert ») and no paid tier can be ordered (
encaissement_indisponible).
Activating billing
From Facturation, the « Activer la facturation » (activate billing) assistant has four steps, each saved as you leave it:
- The company: legal name, SIREN or SIRET, intra-EU VAT number (optional under the French VAT franchise).
- The registered address and the invoice email; prefer a shared mailbox, which outlives a member leaving.
- The payment method.
- The monthly spending cap.
Details are then changed through « Coordonnées de facturation » (billing details), reserved to the Owner of the billing entity.
Invoices
Invoices are issued as Factur-X (PDF/A-3 carrying the XML file), kept ten years, and sent to the invoice email. The « Factures » card of Facturation lists them with their status and a « PDF » button; the PDF can also be read through the organization.invoice.read operation, reserved to a person. Until an invoice is issued, the card gives the date of the first one.
An organisation billed through its agency sees its plans at the public price, never the agency's details or invoices.
Changing tier
Open Facturation, then the project's line: the Palier screen shows the four tiers and a bar that prices the change before you confirm it.
- An upgrade takes effect immediately, against payment of the difference until the renewal date, charged to the saved card. The tier is only set once the payment is accepted. A box requests immediate performance; for a business customer it waives the right of withdrawal.
- A downgrade takes effect at the renewal date, without a pro rata refund. Going back to the current tier cancels it.
- An upgrade goes through the spending cap check, like a project creation.
Changing tier is reserved to a person: an agent creates and configures a project at the default tier, and receives palier_choisi_par_une_personne if it tries to choose another.
bastide project tier write --project-id <prj_…> --tier standard --dry-run
The preview (--dry-run) returns the amount due now, the renewal date and the waiver text, whose version is then passed to --waive-withdrawal.
Unpaid invoices
The contract sets a graduated calendar, counted from the invoice's issue date. At every step, until the purge, the full export of your data stays open and free (see Leave Bastide).
| Day | Event |
|---|---|
| D+0 | Invoice issued and charged |
| D+7 | Formal notice; deployments are suspended, applications stay online |
| D+15 | Service suspended: the project's applications are taken offline |
| D+30 | Termination by operation of law |
| D+45 and D+53 | Purge notices, by email |
| D+60 | Data purged, except what the law requires to keep |
Full payment before D+30 restores the service.
Note. During the beta, the calendar's steps are not yet triggered automatically by the platform: a reminder is sent to you by a person.
VAT
Prices exclude VAT. VAT follows your situation:
| Customer | VAT |
|---|---|
| Business established in France | French VAT |
| Business in another member state, valid VAT number | Reverse charge (article 283-2 of the French tax code), stated on the invoice |
| Consumer in France | French VAT, included in the displayed price |
| Consumer in another member state | French VAT up to the EU distance-selling threshold, then their country's VAT through the one-stop shop |
| Customer established outside the European Union | Outside the scope of French VAT |
The VAT number's format is checked on entry, then against the EU VIES register at issue; reverse charge only applies after a positive validation.
From an agent, the command line or the API
An agent reads consumption with the usage_read tool. It does not order tiers, save cards, raise the cap or read invoices: these actions commit spending or billing data and are reserved to a person. From the command line or the API, under a personal token:
bastide organization billing read --organization-id <org_…>
bastide billing manage --billing-entity-id <…> --spend-cap-cents 15000
The second lowers the cap to €150; for a raise, the same command records the first agreement and returns double_validation_requise.
Common errors
| Code | What it says | What to do |
|---|---|---|
plafond_de_depense_atteint | The cycle's cap is reached | Raise the cap with two people, or wait for the next cycle |
quota_de_construction_atteint | The month's minutes are used up | Wait for the first of the month, or upgrade |
double_validation_requise | First agreement recorded | A second person resends the request within 24 h |
moyen_de_paiement_requis | No card saved | Save a card in Facturation |
coordonnees_de_facturation_requises | Billing details incomplete | Complete « Coordonnées de facturation » |
paiement_refuse | The payment was declined | Change card, then order again |
renonciation_requise | The immediate-performance box is not ticked | Tick the box, or pass --waive-withdrawal |
palier_epuise | No capacity left at this tier | Try again later; nothing was billed |
encaissement_indisponible | Payment is not open for the organisation | Wait for it to open; no call opens it |
See also: Limits per tier, Organisations, Leave Bastide, Troubleshooting, FAQ.