Skip to main content
A milestone escrow holds the whole amount upfront and releases it in parts as the buyer confirms each milestone, ideal for multi-stage work (design → build → deploy). It has settlementType: MILESTONE and carries a milestones[] array. See Milestone escrows for the concept and fees & settlement for how each release is netted.
Funding still uses the shared Pay escrow endpoint (the buyer pays the full amount once). The difference is creation and staged release, both covered here.

Endpoints

How a milestone escrow flows

1

Create with milestones (seller)

POST /v1/escrow/milestone/create with a milestones[] array summing to amount. Each milestone may carry an optional customerId to route its release to a specific customer.
2

Fund in full (buyer)

Pay escrow once → OPENED.
3

Confirm milestone-by-milestone (buyer)

Each POST …/milestone/confirm/{escrowId}/{milestoneId} releases that milestone’s amount to the seller (or to its customerId, if set) and sets its status to RELEASED.
4

Auto-complete

Releasing the last milestone closes the escrow as COMPLETED; no separate confirm-payment call.