Security Deposit Taken by Hand
Record a security deposit the business took in person (cash, bank transfer, its own card machine) as held, then give it back or keep some of it when the booking ends. No card is charged through EquipDash.
These are the same actions as the deposit panel on the booking page and the Dash record_security_deposit tool.
Authenticationโ
Requires an API key with the bookings:write scope.
Record a depositโ
POST /v1/bookings/{id}/deposit/record
| Field | Type | Required | Description |
|---|---|---|---|
amount | number | No | The deposit actually taken, in the booking currency. Must be greater than zero. When it differs from the booking's deposit, or the booking has none, the booking's deposit is set to it first. Omit to use the booking's deposit amount. |
offline_method | string | No | cash (default), bank_transfer, card or other |
security_deposit_id | integer | No | For a deposit split into parts: the part to record |
location_id | integer | No | The location of the counter where the cash changed hands, so it counts at the till open there. See Which till a payment counts at |
curl -X POST "https://app.equipdash.com/api/v1/bookings/123/deposit/record" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "amount": 250, "offline_method": "cash" }'
Returns the booking. security_deposit_status is held and security_deposit_amount is the amount recorded.
Give it backโ
POST /v1/bookings/{id}/deposit/release
| Field | Type | Required | Description |
|---|---|---|---|
amount | number | No | For a charged deposit, how much to give back. Omit to give back all of it. |
security_deposit_id | integer | No | For a deposit split into parts: the part to give back |
location_id | integer | No | The location of the counter where the cash changed hands, so it counts at the till open there. See Which till a payment counts at |
security_deposit_status becomes released.
Keep some or all of itโ
POST /v1/bookings/{id}/deposit/capture
| Field | Type | Required | Description |
|---|---|---|---|
amount | number | No | How much to keep, up to the deposit. Omit to keep all of it. |
security_deposit_id | integer | No | For a deposit split into parts: the part to act on |
location_id | integer | No | The location of the counter where the cash changed hands, so it counts at the till open there. See Which till a payment counts at |
For a deposit held in cash, the rest is recorded as given back, so the booking's payment history shows both what was kept and what went back. security_deposit_status becomes captured.
Settle it when the gear comes backโ
The return action takes the deposit in the same call, the same as the return window on the booking page.
POST /v1/bookings/{id}/actions/return
| Field | Type | Required | Description |
|---|---|---|---|
deposit | string | No | back gives the whole deposit back. keep keeps part of it for damage. Omit to leave the deposit as it is. |
deposit_keep | number | When deposit is keep | How much to keep, up to the deposit. The rest is recorded as given back. |
curl -X POST "https://app.equipdash.com/api/v1/bookings/123/actions/return" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "deposit": "keep", "deposit_keep": 40 }'
Settling the deposit needs permission to take payments; without it the call answers 403 and nothing is returned. If the items go back but the deposit cannot be settled, the call answers 422 with the code deposit_not_settled: the booking is returned, and only the deposit is left to sort out.
Errorsโ
| Status | When |
|---|---|
403 | The booking belongs to another business, or the key lacks bookings:write |
404 | No booking with that ID |
409 | Nothing to act on: a deposit was already recorded, or it is not held |
422 | amount is zero, negative or more than the deposit |