List refunds
Retrieve a paginated list of refunds with optional filters. Results are ordered by creation date (newest first).
Related endpoints
POST /refunds— Create a refundGET /refunds/{id}— Get refund by ID
Common errors
401 unauthenticated— missing, malformed, or revoked API key.
Pagination
Offset-based with limit (default 25, max 100) and offset. The response pagination block includes total and hasMore. See the pagination guide for SDK auto-paging helpers.
Your RevKeen API key (powered by Unkey). Get it from Dashboard > Settings > API Keys. Use rk_sandbox_* for test mode and rk_live_* for production.
In: header
Query Parameters
Filter by refund status
"pending" | "processing" | "succeeded" | "failed" | "canceled"Filter by original payment ID
uuidFilter by payment gateway (nmi, stripe, etc.)
Filter by refund reason
"customer_request" | "duplicate" | "fraudulent" | "product_not_received" | "product_unacceptable" | "subscription_canceled" | "other"ISO 8601 date - only refunds created after this date
ISO 8601 date - only refunds created before this date
Number of results to return (1-100)
201 <= value <= 100Number of results to skip
00 <= valueResponse Body
application/json
curl "https://api.revkeen.com/v2/refunds" \ -H "x-api-key: $REVKEEN_API_KEY"{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"public_id": "ref_abc123xyz",
"payment_id": "660e8400-e29b-41d4-a716-446655440000",
"parent_transaction_id": "660e8400-e29b-41d4-a716-446655440000",
"order_id": null,
"gateway": "string",
"gateway_refund_id": "txn_refund_12345",
"amount_minor": 5000,
"currency": "USD",
"reason": "customer_request",
"reason_details": "Customer changed their mind",
"status": "succeeded",
"failure_reason": null,
"failure_code": null,
"processed_at": "2024-01-15T10:30:00Z",
"created_at": "2024-01-14T08:00:00Z"
}
],
"meta": {
"total": 100,
"limit": 20,
"offset": 0,
"has_more": true
}
}