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_upfrontdeposit_guaranteed
Tenant pays nowFull deposit + rentRent + monthly fee
Who holds the depositCasaPay segregated accountNobody - CasaPay guarantees it
Tenant ongoing costNoneMonthly subscription fee
Your protectionCash heldCasaPay 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:

OptionDue todayThen
Pay deposit upfront1450.00Nothing
CasaPay guarantee666.0016.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:

ontimecover
PayoutOn the due dateDue date + 30 days
You are paid when the tenant is lateYesYes, after the delay

Pick ontime for predictable cash flow, cover when a longer settlement window is acceptable.

Rules#

  • deposit_mode is required whenever cover_amount is above 0.
  • payment_link agreements cannot carry a cover_amount.
  • cover_amount is capped at 15000 on sessions.
  • A cover_amount of 0 is valid - a guarantee agreement with no deposit required.