Skip to main content
POST
/
dispute-raise
Raise a dispute
curl --request POST \
  --url https://aarwcjjzhlmkgdwrisyt.supabase.co/functions/v1/dispute-raise \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "escrow_id": "d4e5f6a7-b8c9-0123-defa-234567890123",
  "reason_code": "item_not_as_described",
  "reason": "The phone arrived with a cracked screen. It was described as brand new."
}
'
{
  "success": true,
  "status": 201,
  "data": {
    "id": "c3d4e5f6-a7b8-9012-cdef-345678901234",
    "escrow_id": "d4e5f6a7-b8c9-0123-defa-234567890123",
    "raised_by": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "reason_code": "item_not_as_described",
    "reason": "The phone arrived with a cracked screen.",
    "status": "negotiation",
    "negotiation_deadline": "2026-04-19T10:00:00Z",
    "auto_release_at": "2026-04-21T10:00:00Z",
    "resolved_by": null,
    "resolution": null,
    "resolved_at": null,
    "created_at": "2026-04-18T10:00:00Z"
  }
}

Authorizations

Authorization
string
header
required

JWT access token obtained from /auth-verify (login context) or /auth-signup. Set the bearer_token environment variable in your API client to apply it globally.

Body

application/json
escrow_id
string<uuid>
required
reason_code
enum<string>
required
Available options:
item_not_received,
item_not_as_described,
service_not_delivered,
service_not_as_agreed,
payment_not_made,
other
reason
string
required
Required string length: 10 - 2000
Example:

"The phone arrived with a cracked screen. It was described as brand new."

Response

Dispute raised

success
boolean
Example:

true

status
integer
Example:

200

data
object