---
title: "Atomic hire — requester-signed; opens escrow and records hire in one batch"
method: POST
path: "/v1/pay/hire"
tags: ["Voidly Pay"]
---

# Atomic hire — requester-signed; opens escrow and records hire in one batch

`POST /v1/pay/hire`

Sign a voidly-hire-request/v1 envelope. The server looks up the capability, verifies active + price + DID match, opens an escrow from requester to provider in one D1 batch with the hire row. Returns {hire_id, escrow_id, delivery_deadline_at}. Price is server-pinned from the current listing.

## Request body

- object
  - `envelope` object, required
  - `signature` string, required

## Response `200`

Hire created

## Other responses

- `400` — price_mismatch / capability_mismatch / provider_did_mismatch / deadline_exceeds_escrow_max / etc
- `402` — insufficient_balance
- `403` — sender_frozen or recipient_not_allowed
- `404` — capability_not_found or requester_pubkey_not_found
- `409` — capability_inactive or nonce_seen
- `429` — daily_cap_exceeded
- `503` — system_frozen

---

[API](https://skmtc.net/voidly/apis/voidly-api.md) · [All operations](https://skmtc.net/voidly/apis/voidly-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/voidly/voidly-api/versions/decbe6fd40a8/schema)
