---
title: "List refunds"
method: GET
path: "/v1/platform/businesses/{business_id}/invoices/refunds/"
tags: ["Refunds"]
---

# List refunds

`GET /v1/platform/businesses/{business_id}/invoices/refunds/`

## Request

- Base URL: `https://docs.thredfi.com` (the document declares no server; this is the origin it was published from)
- URL: `https://docs.thredfi.com/v1/platform/businesses/{business_id}/invoices/refunds/`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer
  - HTTP basic
  - HTTP bearer
  - HTTP bearer

List refunds for a business with filtering and search.

## Path parameters

- `business_id` string, uuid, required

## Query parameters

- `completed_at_end` string, date-time
- `completed_at_start` string, date-time
- `customer_external_id` string
- `customer_id` string
- `external_id` string
- `is_dedicated` boolean
- `max_amount` integer
- `min_amount` integer
- `ordering` string
- `page` integer
- `page_size` integer
- `reference_numbers` string
- `search` string
- `status` string

## Response `200`

- PaginatedRefundList
  - `count` integer, required: Total number of items
  - `page_info` object, required
    - `total_count` integer, required: Total number of items (same as count)
    - `current_page` integer, required: Current page number (1-indexed)
    - `total_pages` integer, required: Total number of pages
    - `page_size` integer, required: Number of items per page
  - `results` Refund[], required
    - `id` string, uuid, required: Unique refund identifier
    - `external_id` string: Your unique identifier for this refund (used for idempotency)
    - `refunded_amount` integer, required: Total refunded amount in cents
    - `status` 'pending' | 'processing' | 'paid' | 'failed' | 'cancelled': Refund status (pending, processing, paid, failed, cancelled) * `pending` - Pending * `processing` - Processing * `paid` - Paid * `failed` - Failed * `cancelled` - Cancelled
    - `completed_at` string, date-time, nullable: Timestamp when refund was fully paid
    - `is_dedicated` boolean: Whether this is a dedicated refund (true/false)
    - `memo` string: Description or reason for the refund
    - `reference_number` string: Reference number for tracking
    - `metadata` unknown
    - `customer_id` string, uuid, required: UUID of the customer receiving the refund
    - `customer_name` string, required: Customer display name
    - `allocations` RefundAllocation[], required
      - `id` string, uuid, required: Unique allocation identifier
      - `allocation_type` 'invoice' | 'payment' | 'credit' | 'line_item', required: Type of allocation (invoice, line_item, etc.) * `invoice` - Invoice Refund * `payment` - Payment Refund * `credit` - Customer Credit * `line_item` - Line Item Refund
      - `amount` integer, required: Allocation amount in cents
      - `invoice_id` string, uuid, required: Invoice ID if allocated to invoice
      - `invoice_number` string, required: Invoice number if allocated to invoice
      - `invoice_outstanding_balance_cents` integer, required: Invoice outstanding balance in cents if allocated to invoice
      - `target_description` string, required
      - `description` string: Allocation description or notes
      - `allocation_date` string, date-time: Date when allocation was made
    - `refund_payments` RefundPayment[], required
      - `id` string, uuid, required: Unique refund payment identifier
      - `refund_id` string, uuid, required: ID of the refund this payment belongs to
      - `external_id` string: Your unique identifier for idempotency (unique within refund)
      - `refunded_amount` integer, required: Refunded amount in cents
      - `refund_processing_fee` integer, required: Processing fee in cents
      - `completed_at` string, date-time, nullable: Date and time when refund payment was completed
      - `method` 'BANK_TRANSFER' | 'CREDIT_CARD' | 'DEBIT_CARD' | 'ACH' | 'CHECK' | 'CASH' | 'PAYPAL' | 'STRIPE' | 'OTHER': Payment method used for refund (CASH, CHECK, CREDIT_CARD, BANK_TRANSFER, etc.) * `BANK_TRANSFER` - Bank Transfer * `CREDIT_CARD` - Credit Card * `DEBIT_CARD` - Debit Card * `ACH` - ACH/Direct Debit * `CHECK` - Check/Cheque * `CASH` - Cash * `PAYPAL` - PayPal * `STRIPE` - Stripe * `OTHER` - Other
      - `processor` string: Payment processor used (e.g., Stripe, PayPal, manual)
      - `transaction_tags` unknown
      - `memo` string: Optional description or notes for this refund payment
      - `metadata` unknown
      - `reconciled_bank_transactions` EntityReconciliationDetail[], required: Bank transactions this refund payment is reconciled to
        - `payment_type` string
        - `bank_transaction_id` string, uuid, required
        - `bank_transaction_date` string, date-time, required
        - `bank_transaction_amount_cents` integer, required
        - `bank_transaction_direction` string, required
        - `reconciled_amount_cents` integer, required
        - `reconciliation_link_id` string, uuid, required
        - `reconciled_at` string, date-time, required
        - `currency` string, required
        - `bank_account_name` string
        - `notes` string
      - `created_at` string, date-time, required: Timestamp when refund payment record was created
      - `updated_at` string, date-time, required: Timestamp when refund payment record was last updated
    - `document` DocumentFileUrl, required: Serializer for document file URL with metadata.
      - `url` string, uri, required: Presigned URL for document download
      - `expires_in` integer, required: Seconds until URL expires
      - `document_id` string, uuid, required: Document UUID
      - `file_name` string, required: Original document filename
      - `file_size` integer, required: File size in bytes
      - `mime_type` string, required: MIME type of the document
    - `currency` 'EUR' | 'GBP' | 'USD' | 'SEK' | 'NOK' | 'DKK' | 'ISK' | 'MYR' | 'SGD': Three-letter ISO 4217 currency code (EUR, GBP, USD) * `EUR` - Euro * `GBP` - British Pound * `USD` - US Dollar * `SEK` - Swedish Krona * `NOK` - Norwegian Krone * `DKK` - Danish Krone * `ISK` - Icelandic Króna * `MYR` - Malaysian Ringgit * `SGD` - Singapore Dollar
    - `created_at` string, date-time, required: Refund creation timestamp
    - `updated_at` string, date-time, required: Last update timestamp

## Other responses

- `400`: Validation errors in request data
- `401`: Authentication required - missing or invalid API key
- `403`: Permission denied - insufficient privileges
- `404`: Resource not found
- `409`: Conflict - resource already exists or invalid state transition
- `422`: Unprocessable entity - business logic validation failed
- `500`: Internal server error

---

[API](https://skmtc.dev/thredfi/apis/thredfi-accounting-platform-api.md) - [All operations](https://skmtc.dev/thredfi/apis/thredfi-accounting-platform-api/llms.txt) - [OpenAPI document](https://skmtc.dev/thredfi/apis/thredfi-accounting-platform-api/revisions/0c1918254db3?raw)
