Skip to main content

Disputes

Payment dispute management. All endpoints require authentication.

GET /disputes

List disputes for the authenticated user.

curl "https://api.paylinks.ro/api/v1/disputes?status=OPEN&limit=20" \
-H "Authorization: Bearer YOUR_TOKEN"

Query Parameters:

ParameterTypeDefaultDescription
limitinteger20Items per page
offsetinteger0Pagination offset
statusstringFilter: OPEN, UNDER_REVIEW, WON, LOST

Response (200):

{
"data": [
{
"id": "disp-001",
"transactionId": "tx-001",
"stripeDisputeId": "dp_1234567890",
"amount": 4999,
"currency": "RON",
"status": "OPEN",
"reason": "fraudulent",
"dueBy": "2026-03-01T00:00:00.000Z",
"createdAt": "2026-02-15T10:00:00.000Z"
}
],
"total": 1
}

Dispute Statuses

StatusDescription
OPENNew dispute, evidence can be submitted
UNDER_REVIEWEvidence submitted, awaiting Stripe decision
WONDispute resolved in seller's favor
LOSTDispute resolved in buyer's favor

GET /disputes/:id

Get a single dispute by ID.

curl https://api.paylinks.ro/api/v1/disputes/disp-001 \
-H "Authorization: Bearer YOUR_TOKEN"

Response (200): Full dispute object.


POST /disputes/:id/evidence

Submit evidence for a dispute.

curl -X POST https://api.paylinks.ro/api/v1/disputes/disp-001/evidence \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"uncategorizedText": "Customer received the digital product on Feb 15. Download logs attached.",
"uncategorizedFile": "https://files.paylinks.ro/evidence/receipt.pdf"
}'

Request Body:

FieldTypeRequiredDescription
uncategorizedTextstringNoText evidence
uncategorizedFilestringNoURL to evidence file

Response (200):

{"message": "Evidence submitted"}