Skip to main content

Holds

A hold is a temporary reservation of funds on a bank account. Holds are placed when a transaction is pending — for example, a card authorisation — and reduce the account's available balance without affecting the account balance.

You can use the holds API to list and inspect holds on an account. Holds are managed by the system and cannot be created or modified through the API.

Hold lifecycle

Every hold has a status indicating where it is in its lifecycle:

StatusDescription
placedThe hold is active and reducing the available balance.
settledThe hold has been consumed by a completed transaction. The response includes an account-transaction-url linking to the settling transaction.
releasedThe hold was cancelled — either because it expired or was explicitly released.

Once a hold moves to settled or released, it no longer affects the available balance.

List holds on an account

To list all holds on a bank account:

Request

curl "https://api.griffin.com/v0/bank/accounts/{account-id}/holds" \
-H "Authorization: GriffinAPIKey $GRIFFIN_API_KEY"

Response

{
"holds": [
{
"hold-url": "/v0/bank/holds/ho.abc123",
"account-url": "/v0/bank/accounts/ba.xyz789",
"hold-status": "placed",
"hold-amount": {
"currency": "GBP",
"value": "25.00"
},
"hold-direction": "debit",
"created-at": "2026-04-15T10:30:00Z",
"updated-at": "2026-04-15T10:30:00Z",
"expires-at": "2026-04-22T10:30:00Z",
"hold-origin-type": "card-transaction",
"hold-origin-reference": "ref-12345"
}
],
"links": {
"prev": null,
"next": null
}
}

Filtering by status

You can filter holds by status using the filter[status][in][] query parameter. For example, to list only active holds:

curl "https://api.griffin.com/v0/bank/accounts/{account-id}/holds?filter[status][in][]=placed" \
-H "Authorization: GriffinAPIKey $GRIFFIN_API_KEY"

You can include multiple statuses:

curl "https://api.griffin.com/v0/bank/accounts/{account-id}/holds?filter[status][in][]=placed&filter[status][in][]=settled" \
-H "Authorization: GriffinAPIKey $GRIFFIN_API_KEY"

Get a hold

To retrieve a specific hold:

Request

curl "https://api.griffin.com/v0/bank/holds/{hold-id}" \
-H "Authorization: GriffinAPIKey $GRIFFIN_API_KEY"

Response

{
"hold-url": "/v0/bank/holds/ho.abc123",
"account-url": "/v0/bank/accounts/ba.xyz789",
"hold-status": "settled",
"hold-amount": {
"currency": "GBP",
"value": "25.00"
},
"hold-direction": "debit",
"created-at": "2026-04-15T10:30:00Z",
"updated-at": "2026-04-16T14:00:00Z",
"account-transaction-url": "/v0/bank/transactions/pt.def456"
}

Response fields

FieldTypeDescription
hold-urlstringURL of this hold.
account-urlstringURL of the bank account the hold is placed on.
hold-statusstringOne of placed, settled, or released.
hold-amountobjectThe reserved amount, with currency and value.
hold-directionstringdebit or credit.
created-atstringTimestamp when the hold was placed.
updated-atstringTimestamp when the hold last changed state.
expires-atstring(Optional) When the hold will automatically release if not settled.
account-transaction-urlstring(Optional) URL of the transaction that settled this hold. Present only on settled holds.
hold-origin-typestring(Optional) The type of activity that created the hold, e.g. card-transaction.
hold-origin-referencestring(Optional) An external reference identifier for the originating activity.

How holds affect balances

When a hold is placed, its amount is subtracted from the account's available balance. The account balance is unaffected until the hold settles into a transaction.

Multiple holds can be active on the same account simultaneously — their amounts accumulate. When a hold is settled or released, it stops affecting the available balance.