Deposits and guarantees#
A deposit is expensive for tenants at move-in. CasaPay can guarantee it instead, so the tenant pays a small recurring fee and you keep the same protection.
The two modes#
deposit_upfront | deposit_guaranteed | |
|---|---|---|
| Tenant pays now | Full deposit + rent | Rent + monthly fee |
| Who holds the deposit | CasaPay segregated account | Nobody - CasaPay guarantees it |
| Tenant ongoing cost | None | Monthly subscription fee |
| Your protection | Cash held | CasaPay guarantee |
Set deposit_mode to force one, or choice to let the tenant decide at checkout.
Letting the tenant choose#
With deposit_mode: choice the checkout shows both options with real numbers. Preview them first so your own UI can match:
curl -X POST https://manage.casapay.com/api/v1/gateway/pricing-preview \
-H 'Authorization: Bearer sk_live_...' \
-H 'Content-Type: application/json' \
-d '{ "cover_amount": 800, "first_payment_amount": 650 }'For an 800 EUR deposit and 650 EUR rent at a 2% fee rate:
| Option | Due today | Then |
|---|---|---|
| Pay deposit upfront | 1450.00 | Nothing |
| CasaPay guarantee | 666.00 | 16.00/month |
resolved_mode tells you what they picked
While deposit_mode stays choice, the webhook's deposit.resolved_mode reports the actual decision - deposit_upfront or deposit_guaranteed. Branch on resolved_mode, not mode.
Where the money goes#
A cash deposit is not part of your payout. CasaPay splits the payment:
- Deposit to a segregated CasaPay deposit account, held for the tenancy.
- Rent to your entity, paid out on the normal schedule.
So a 1450 EUR charge produces a 650 EUR payout to you, not 1450.
ontime vs cover#
Both guarantee the deposit. They differ in when you get paid:
ontime | cover | |
|---|---|---|
| Payout | On the due date | Due date + 30 days |
| You are paid when the tenant is late | Yes | Yes, after the delay |
Pick ontime for predictable cash flow, cover when a longer settlement window is acceptable.
Rules#
deposit_modeis required whenevercover_amountis above 0.payment_linkagreements cannot carry acover_amount.cover_amountis capped at 15000 on sessions.- A
cover_amountof 0 is valid - a guarantee agreement with no deposit required.