curl --request POST \
--url https://hpay-api.host-sl.com/api/v1/escrow/b1f2c3d4-.../release \
--header 'api-key: YOUR_API_KEY' \
--header 'secret-key: YOUR_SECRET_KEY' \
--header 'Idempotency-Key: order-1234-release' \
--header 'Content-Type: application/json' \
--data '{
"recipient_wallet_id": "7c6d5e4f-...",
"amount": 200.00
}'
from hostpay import HostPay
client = HostPay(api_key="YOUR_API_KEY", secret_key="YOUR_SECRET_KEY")
release = client.escrow.release(
"b1f2c3d4-...", # escrow hold transaction id
recipient_wallet_id="7c6d5e4f-...",
amount=200.00, # omit to release the full held amount
,
idempotency_key="order-1234-release",
)
print(release["status"])
import { HostPay } from "@hostpay/sdk";
const client = new HostPay({ apiKey: "YOUR_API_KEY", secretKey: "YOUR_SECRET_KEY" });
const release = await client.escrow.release("b1f2c3d4-...", {
recipientWalletId: "7c6d5e4f-...",
amount: 200.0, // omit to release the full held amount
idempotencyKey: "order-1234-release",
});
console.log(release.status);
{
"id": "c2d3e4f5-...",
"wallet_id": "9a8b7c6d-...",
"escrow_wallet_id": "5e4f3a2b-...",
"recipient_wallet_id": "7c6d5e4f-...",
"application_wallet_id": "3a2b1c0d-...",
"amount": 198.0,
"escrow_amount": 0.0,
"application_fee": 2.0,
"transaction_type": "escrow_release",
"status": "completed",
"description": "Escrow released",
"created_at": "2025-01-16T12:00:00Z",
"updated_at": "2025-01-16T12:00:00Z"
}
{
"detail": "Transaction is not in 'held' status"
}
{
"detail": "Invalid credentials"
}
{
"detail": "Escrow transaction not found"
}
Escrow
Release Escrow Funds
Release previously held escrow funds to a recipient wallet, deducting any configured escrow fee.
POST
/
api
/
v1
/
escrow
/
{transaction_id}
/
release
curl --request POST \
--url https://hpay-api.host-sl.com/api/v1/escrow/b1f2c3d4-.../release \
--header 'api-key: YOUR_API_KEY' \
--header 'secret-key: YOUR_SECRET_KEY' \
--header 'Idempotency-Key: order-1234-release' \
--header 'Content-Type: application/json' \
--data '{
"recipient_wallet_id": "7c6d5e4f-...",
"amount": 200.00
}'
from hostpay import HostPay
client = HostPay(api_key="YOUR_API_KEY", secret_key="YOUR_SECRET_KEY")
release = client.escrow.release(
"b1f2c3d4-...", # escrow hold transaction id
recipient_wallet_id="7c6d5e4f-...",
amount=200.00, # omit to release the full held amount
,
idempotency_key="order-1234-release",
)
print(release["status"])
import { HostPay } from "@hostpay/sdk";
const client = new HostPay({ apiKey: "YOUR_API_KEY", secretKey: "YOUR_SECRET_KEY" });
const release = await client.escrow.release("b1f2c3d4-...", {
recipientWalletId: "7c6d5e4f-...",
amount: 200.0, // omit to release the full held amount
idempotencyKey: "order-1234-release",
});
console.log(release.status);
{
"id": "c2d3e4f5-...",
"wallet_id": "9a8b7c6d-...",
"escrow_wallet_id": "5e4f3a2b-...",
"recipient_wallet_id": "7c6d5e4f-...",
"application_wallet_id": "3a2b1c0d-...",
"amount": 198.0,
"escrow_amount": 0.0,
"application_fee": 2.0,
"transaction_type": "escrow_release",
"status": "completed",
"description": "Escrow released",
"created_at": "2025-01-16T12:00:00Z",
"updated_at": "2025-01-16T12:00:00Z"
}
{
"detail": "Transaction is not in 'held' status"
}
{
"detail": "Invalid credentials"
}
{
"detail": "Escrow transaction not found"
}
Releases funds held by an escrow hold to a recipient wallet. You can release the full held amount or a partial amount. If your application has an escrow fee configured, it is deducted from the released amount and routed to your fee wallet; the recipient receives the net.
Path Parameters
string
required
The ID of the escrow transaction (returned by the hold endpoint) to release from. Must be in
held status.Headers
string
Optional but recommended for this money-moving call. Retries with the same
key within 24 hours return the original result instead of releasing the funds twice.
Request Body
string
required
The unique identifier of the wallet to release the funds to.
number
The amount to release. Defaults to the full held amount if omitted. Must be greater than 0 and not exceed the held amount.
Response
string
The unique identifier of the release transaction.
string
The ID of the wallet the funds were released to.
number
The net amount credited to the recipient (after any escrow fee).
number
The escrow fee collected on the release, if any.
string
The current status of the release transaction (e.g.,
completed).string
ISO 8601 timestamp of the release.
{
"id": "c2d3e4f5-...",
"wallet_id": "9a8b7c6d-...",
"escrow_wallet_id": "5e4f3a2b-...",
"recipient_wallet_id": "7c6d5e4f-...",
"application_wallet_id": "3a2b1c0d-...",
"amount": 198.0,
"escrow_amount": 0.0,
"application_fee": 2.0,
"transaction_type": "escrow_release",
"status": "completed",
"description": "Escrow released",
"created_at": "2025-01-16T12:00:00Z",
"updated_at": "2025-01-16T12:00:00Z"
}
{
"detail": "Transaction is not in 'held' status"
}
{
"detail": "Invalid credentials"
}
{
"detail": "Escrow transaction not found"
}
curl --request POST \
--url https://hpay-api.host-sl.com/api/v1/escrow/b1f2c3d4-.../release \
--header 'api-key: YOUR_API_KEY' \
--header 'secret-key: YOUR_SECRET_KEY' \
--header 'Idempotency-Key: order-1234-release' \
--header 'Content-Type: application/json' \
--data '{
"recipient_wallet_id": "7c6d5e4f-...",
"amount": 200.00
}'
from hostpay import HostPay
client = HostPay(api_key="YOUR_API_KEY", secret_key="YOUR_SECRET_KEY")
release = client.escrow.release(
"b1f2c3d4-...", # escrow hold transaction id
recipient_wallet_id="7c6d5e4f-...",
amount=200.00, # omit to release the full held amount
,
idempotency_key="order-1234-release",
)
print(release["status"])
import { HostPay } from "@hostpay/sdk";
const client = new HostPay({ apiKey: "YOUR_API_KEY", secretKey: "YOUR_SECRET_KEY" });
const release = await client.escrow.release("b1f2c3d4-...", {
recipientWalletId: "7c6d5e4f-...",
amount: 200.0, // omit to release the full held amount
idempotencyKey: "order-1234-release",
});
console.log(release.status);