Create Hold

Use the /createHold endpoint to set aside part of an account's available balance. The held amount can't be spent until the hold expires or you release it with Release Hold. No money moves. For example, you can hold funds as a reserve while a payment can still be returned.

We send a transaction.createHold webhook when the hold is in place, and a transaction.holdExpired webhook when it stops holding funds.

If you don't get a result back (for example, the request times out or returns HOLD_OUTCOME_UNKNOWN), don't send Create Hold again, because that can place a second hold. Check List Holds instead. To cancel a hold, call Release Hold with the holdId and accountId.

Hold requests don't need a ZTM session or approval.


📘 Note: Holds must be turned on for your program before you can create them. Contact Spidr to set this up.

Body Params

POST /v1/transaction/createHold Request body

string
required

Pass in the Spidr account ID

double
required
≤ 10000000

The amount to hold. Removed from the account's available balance until the hold expires or is released.

date-time
required
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(([+-]\d{2}:\d{2})|Z)$

When the hold ends (ISO 8601, whole seconds). When you send it, it must be at least 60 seconds in the future. Ending a hold at this time can take a short while; use List Holds to confirm it has ended.

string
length between 1 and 80
^[\w!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~ ]+$

An optional description for the hold. Max 80 characters.

string
length between 1 and 60
^[a-zA-Z0-9_-]+$

An optional ID of your own for the hold (max 60 letters, numbers, hyphens or underscores). Returned on List Holds so you can match holds to your records.

Responses

Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json