Skip to main content
POST
Create refund (full or partial)

Authorizations

Authorization
string
header
required

Partner-level JWT token (unscoped). Token payload includes partner_id. Business access is validated via partner ownership. Format: Bearer <your-jwt-token>

Use this for: Multi-business operations where the business_id is specified in the URL and partner has access to multiple businesses.

Path Parameters

business_id
string<uuid>
required

Business UUID provided by Thred (unique identifier for the business)

Body

Serializer for creating simple refunds

invoice_id
string<uuid>
required

Invoice to refund

method
enum<string>
required

Payment method for the refund

  • CASH - Cash
  • CHECK - Check
  • CREDIT_CARD - Credit Card
  • DEBIT_CARD - Debit Card
  • ACH - ACH
  • BANK_TRANSFER - Bank Transfer
  • PAYPAL - PayPal
  • STRIPE - Stripe
  • OTHER - Other
Available options:
CASH,
CHECK,
CREDIT_CARD,
DEBIT_CARD,
ACH,
BANK_TRANSFER,
PAYPAL,
STRIPE,
OTHER
completed_at
string<date-time>
required

When the refund was completed

external_id
string
required

Required external identifier for idempotency (unique per business)

Required string length: 1 - 255
amount_cents
integer

Optional: Partial refund amount in cents. If not provided, refunds full amount.

Required range: x >= 1
memo
string

Optional description

Minimum string length: 1
reference_number
string

Optional reference number

Required string length: 1 - 100
processor
string

Payment processor (e.g., STRIPE)

Required string length: 1 - 100
refund_processing_fee_cents
integer
default:0

Processing fee for the refund in cents

Required range: x >= 0
document
object

Refund specific document upload payload.

Response

Serializer for refunds (simple response). All amounts in cents.

id
string<uuid>
required
read-only

Unique refund identifier

refunded_amount
integer
required
read-only

Total refunded amount in cents

customer_id
string<uuid>
required
read-only

UUID of the customer receiving the refund

customer_name
string
required
read-only

Customer display name

allocations
object[]
required
read-only
refund_payments
object[]
required
read-only
document
object
required

Latest document linked to this refund

created_at
string<date-time>
required
read-only

Refund creation timestamp

updated_at
string<date-time>
required
read-only

Last update timestamp

external_id
string

Your unique identifier for this refund (used for idempotency)

Maximum string length: 255
status
enum<string>

Refund status (pending, processing, paid, failed, cancelled)

  • pending - Pending
  • processing - Processing
  • paid - Paid
  • failed - Failed
  • cancelled - Cancelled
Available options:
pending,
processing,
paid,
failed,
cancelled
completed_at
string<date-time> | null

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

Maximum string length: 100
metadata
any

Custom key-value pairs for additional context

currency
enum<string>

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
Available options:
EUR,
GBP,
USD,
SEK,
NOK,
DKK,
ISK,
MYR,
SGD