Skip to main content
POST
/
v1
/
platform
/
businesses
/
{business_id}
/
invoices
/
refunds
/
{refund_id}
/
payments
Create refund payment
curl --request POST \
  --url https://sandbox.thredfi.com/v1/platform/businesses/{business_id}/invoices/refunds/{refund_id}/payments/ \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "amount_cents": 2,
  "method": "CASH",
  "external_id": "<string>",
  "completed_at": "2023-11-07T05:31:56Z",
  "processor": "<string>",
  "memo": "<string>",
  "transaction_tags": [
    "<string>"
  ],
  "refund_processing_fee_cents": 0
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "refund_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "refunded_amount": 123,
  "refund_processing_fee": 123,
  "reconciled_bank_transactions": [
    {
      "bank_transaction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "bank_transaction_date": "2023-11-07T05:31:56Z",
      "bank_transaction_amount_cents": 123,
      "bank_transaction_direction": "<string>",
      "reconciled_amount_cents": 123,
      "reconciliation_link_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "reconciled_at": "2023-11-07T05:31:56Z",
      "currency": "<string>",
      "payment_type": "<string>",
      "bank_account_name": "<string>",
      "notes": "<string>"
    }
  ],
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "external_id": "<string>",
  "completed_at": "2023-11-07T05:31:56Z",
  "method": "BANK_TRANSFER",
  "processor": "<string>",
  "transaction_tags": "<unknown>",
  "memo": "<string>",
  "metadata": "<unknown>"
}

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
required
refund_id
string
required

Body

Serializer for creating a refund payment (reusable for other endpoints). All amounts in cents.

amount_cents
integer
required

Amount to disburse for this refund in cents (e.g., 20000 for €200.00)

Required range: x >= 1
method
enum<string>
required

Payment method for the refund payment

  • 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
external_id
string
required

Required idempotency key per refund (unique within a refund)

Required string length: 1 - 255
completed_at
string<date-time>

When the refund payment was completed

processor
string

Payment processor

Maximum string length: 100
memo
string

Optional notes for the payment

transaction_tags
string[]

Optional list of string tags for reconciliation

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

Processing fee for this refund payment in cents (e.g., 30 for €0.30)

Required range: x >= 0

Response

Serializer for refund payments. All amounts in cents.

id
string<uuid>
required

Unique refund payment identifier

refund_id
string<uuid>
required

ID of the refund this payment belongs to

refunded_amount
integer
required

Refunded amount in cents

refund_processing_fee
integer
required

Processing fee in cents

reconciled_bank_transactions
object[]
required

Bank transactions this refund payment is reconciled to

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

external_id
string

Your unique identifier for idempotency (unique within refund)

Maximum string length: 255
completed_at
string<date-time> | null

Date and time when refund payment was completed

method
enum<string>

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
Available options:
BANK_TRANSFER,
CREDIT_CARD,
DEBIT_CARD,
ACH,
CHECK,
CASH,
PAYPAL,
STRIPE,
OTHER
processor
string

Payment processor used (e.g., Stripe, PayPal, manual)

Maximum string length: 100
transaction_tags
any

List of tags for categorization and reconciliation tracking

memo
string

Optional description or notes for this refund payment

metadata
any

Custom key-value pairs for payment context