Agency mode

Agency module policy and client billing

Govern client module access, set a client price book, create immutable offers, collect through Stripe Connect, and manage cancellation or refunds.

Agency module policy controls what client workspaces may request or install. Agency client billing turns an explicit price book into an immutable offer that the client accepts through the agency's connected Stripe account.

Configure module policy

Open Agency → Modules. Policy is grouped by the same categories used in the client Apps catalog. Set a category first, then expand it when an individual module needs a different stance.

StanceClient experience
Defaultagaro's platform decision remains in effect
AllowedAn eligible client admin can install without agency approval
Ask usThe client submits a request for the agency to approve or deny
BlockedThe client cannot install or request the module

Agency policy cannot bypass a platform block, plan requirement, paid add on requirement, or shelved module. It can only keep or narrow platform availability.

Review module requests

The Requests tab shows pending client requests. Approve only after confirming the target client, module purpose, commercial agreement, and any required paid entitlement. Denial returns the module to a denied request state in the client catalog.

An approval does not fabricate a missing platform entitlement. If the module still cannot be installed, resolve the plan or add on requirement first.

Build the client price book

Open Agency → Rebilling. The price book can contain:

  • A default monthly base workspace price
  • A client specific base price override
  • A flat monthly price for each installed module
  • A zero price, which explicitly marks an item free
  • A default markup in basis points
  • A minimum monthly amount
  • A three letter billing currency

No price row and a zero price are different. Zero means the agency deliberately made the item free. No row means the module is unpriced.

Editing the price book alone charges nobody. It is a preview and offer preparation surface.

Review the preview

The tenant preview calculates the current proposed total for each client from the base, priced module lines, markup, and minimum. It also lists installed but unpriced modules.

An offer with an unpriced installed module cannot enter collection. Price every installed module, even if the intended price is zero, before creating the offer.

The preview reflects current configuration. It is not a contract until an immutable snapshot and offer are created.

Connect the agency Stripe account

Open Agency → Billing and complete Stripe Connect onboarding for client payment collection. The connected account belongs to the agency collection flow. It is separate from agaro's platform account that bills the agency for its reseller subscription.

Stripe must report the account ready for collection before a paid client offer can open checkout.

Create a client offer

From Rebilling, create an offer for one client. agaro freezes the calculated price lines into an immutable pricing snapshot and creates a pending contract.

An Agency Admin cannot accept on the client's behalf. The client Super Admin opens Settings → Subscription, reviews the agency billing contract, acknowledges consent, and continues through secure Stripe Checkout.

Checkout collects a payment method, billing address, and supported tax identifier on the agency's connected Stripe account. A zero total offer can activate without a provider charge after explicit client consent.

Monitor collection

The collection view distinguishes pending consent, active provider status, and collection failures. Signed Stripe events update invoice and subscription evidence.

If a payment fails, review the failure state and next provider attempt. Do not replace the contract merely to hide a failed invoice.

Cancel collection

Select Cancel collection to stop future Stripe renewals. agaro cancels the provider subscription before closing the local collection state. Existing contract, invoice, payment, tax, and refund evidence remains available.

The client can also cancel its own active agency collection from its subscription surface where that control is offered.

Refund an invoice

When the latest agency client invoice contains a refundable paid amount, an Agency Admin can start a refund through the connected Stripe account. Partial and full refunds update the recorded refunded amount and invoice status.

Confirm the client, invoice, currency, and remaining refundable amount before approval. A refund spends agency funds and is not reversible through agaro.

Troubleshooting

Create client offer is disabled

Price every installed module and set at least a base or module price decision. Unpriced modules intentionally block collection.

The client cannot accept the offer

Only the client workspace Super Admin can start acceptance. Confirm the offer is pending, the client is in the same agency, and the agency Stripe account is ready.

Checkout says Stripe onboarding is incomplete

Return to Agency → Billing, refresh the Connect status, and finish every required Stripe step before retrying.

A price change did not change an active charge

Active collection is based on an immutable accepted offer. Updating the price book changes future previews and offers, not the accepted contract. Cancel and create a new clearly reviewed offer when commercial terms genuinely change.

Refund is unavailable

The invoice may be unpaid, already fully refunded, missing a refundable Stripe charge, or tied to an unavailable connected account. Review the invoice evidence before retrying.