Skip to main content
POST
/
v1
/
escrow
/
milestone
/
confirm
/
{escrowId}
/
{milestoneId}
Confirm milestone
curl --request POST \
  --url https://staging.api.payluk.ng/v1/escrow/milestone/confirm/{escrowId}/{milestoneId} \
  --header 'Authorization: Bearer <token>' \
  --header 'customer-id: <customer-id>'
{
  "status": 200,
  "message": "Milestone confirmed successfully",
  "data": {
    "id": "665f1b2c9a1e4d0012ab3c10",
    "paymentToken": "PY_8AB12C9D3045",
    "state": "OPENED",
    "status": "ONGOING",
    "settlementType": "MILESTONE",
    "milestones": [
      {
        "id": "665f1b2c9a1e4d0012ab3c21",
        "title": "Design",
        "amount": 300000,
        "status": "RELEASED",
        "releasedAt": "1750584900"
      },
      {
        "id": "665f1b2c9a1e4d0012ab3c22",
        "title": "Development",
        "amount": 500000,
        "status": "PENDING",
        "releasedAt": null
      },
      {
        "id": "665f1b2c9a1e4d0012ab3c23",
        "title": "Deployment",
        "amount": 200000,
        "status": "PENDING",
        "releasedAt": null
      }
    ]
  }
}

Authorizations

Authorization
string
header
required

Your secret key as a Bearer token. The key prefix selects the environment: sk_test_... (test) or sk_live_... (live).

Headers

customer-id
string
required

The merchant customer this request acts on behalf of.

Path Parameters

escrowId
string
required

The escrow's unique identifier.

milestoneId
string
required

The milestone's unique identifier.

Response

Milestone confirmed. When the final milestone is released the escrow moves to CLOSED / COMPLETED.

status
integer
Example:

200

message
string
Example:

"Operation successful"

data
object