Refund data model

Updated:

View field support, webhooks, and list parameters for each integration on the Supported Integrations page.

FieldTypeRequiredDescription
idstringNo
created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
total_amountnumberNo
payment_idstringNo(reference to PaymentPayment)
currencystringNo
notesstringNo
statusenumNoValues: SUCCEEDED, PENDING, FAILED, CANCELED
referencestringNo
refunded_atstring (date-time)NoDate and time the refund occurred (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
reasonenumNoWhy the refund was issued Values: DUPLICATE, FRAUDULENT, REQUESTED_BY_CUSTOMER, OTHER
tender_typeenumNoNormalized tender category the refund was returned to; mirrors PaymentPayment.tender_type Values: CARD, CASH, GIFT_CARD, BANK_TRANSFER, WALLET, CHECK, STORE_CREDIT, BUY_NOW_PAY_LATER, EXTERNAL, OTHER
metadataPaymentMetadata[]No
metadata[].idstringNo
metadata[].slugstringNo
metadata[].valueobjectNo
metadata[].namespacestringNo
metadata[].formatenumNoValues: TEXT, NUMBER, DATE, BOOLEAN, FILE, TEXTAREA, SINGLE_SELECT, MULTIPLE_SELECT, MEASUREMENT, PRICE, YES_NO, CURRENCY, URL
metadata[].extra_dataobjectNo

TypeScript

TypeScript
export type PaymentRefund = {
	id?: string;
	created_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	updated_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	total_amount?: number;
	payment_id?: string; // (reference to PaymentPayment)
	currency?: string;
	notes?: string;
	status?: 'SUCCEEDED' | 'PENDING' | 'FAILED' | 'CANCELED';
	reference?: string;
	refunded_at?: string-time; // Date and time the refund occurred (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	reason?: 'DUPLICATE' | 'FRAUDULENT' | 'REQUESTED_BY_CUSTOMER' | 'OTHER'; // Why the refund was issued
	tender_type?: 'CARD' | 'CASH' | 'GIFT_CARD' | 'BANK_TRANSFER' | 'WALLET' | 'CHECK' | 'STORE_CREDIT' | 'BUY_NOW_PAY_LATER' | 'EXTERNAL' | 'OTHER'; // Normalized tender category the refund was returned to; mirrors PaymentPayment.tender_type
	metadata?: [];
	raw?: any;
} 

Zod

Zod
import { z } from 'zod';

export const ZodPaymentRefund = z.object({
	id: z.string().optional(),
	created_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	updated_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	total_amount: z.number().optional(),
	payment_id: z.string().optional().describe("(reference to PaymentPayment)"),
	currency: z.string().optional(),
	notes: z.string().optional(),
	status: z.enum("SUCCEEDED", "PENDING", "FAILED", "CANCELED").optional(),
	reference: z.string().optional(),
	refunded_at: z.string-time().optional().describe("Date and time the refund occurred (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	reason: z.enum("DUPLICATE", "FRAUDULENT", "REQUESTED_BY_CUSTOMER", "OTHER").optional().describe("Why the refund was issued"),
	tender_type: z.enum("CARD", "CASH", "GIFT_CARD", "BANK_TRANSFER", "WALLET", "CHECK", "STORE_CREDIT", "BUY_NOW_PAY_LATER", "EXTERNAL", "OTHER").optional().describe("Normalized tender category the refund was returned to; mirrors PaymentPayment.tender_type"),
	metadata: z.array().optional(),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class PaymentRefundStatus(str, Enum):
	SUCCEEDED = 'SUCCEEDED'
	PENDING = 'PENDING'
	FAILED = 'FAILED'
	CANCELED = 'CANCELED'

@dataclasses.dataclass
class PaymentRefundReason(str, Enum):
	DUPLICATE = 'DUPLICATE'
	FRAUDULENT = 'FRAUDULENT'
	REQUESTED_BY_CUSTOMER = 'REQUESTED_BY_CUSTOMER'
	OTHER = 'OTHER'

@dataclasses.dataclass
class PaymentRefundTender_type(str, Enum):
	CARD = 'CARD'
	CASH = 'CASH'
	GIFT_CARD = 'GIFT_CARD'
	BANK_TRANSFER = 'BANK_TRANSFER'
	WALLET = 'WALLET'
	CHECK = 'CHECK'
	STORE_CREDIT = 'STORE_CREDIT'
	BUY_NOW_PAY_LATER = 'BUY_NOW_PAY_LATER'
	EXTERNAL = 'EXTERNAL'
	OTHER = 'OTHER'

@dataclasses.dataclass
class PaymentRefund:
	id: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	created_at: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	updated_at: Optional[str]
	total_amount: Optional[int]
	"""(reference to PaymentPayment)"""
	payment_id: Optional[str]
	currency: Optional[str]
	notes: Optional[str]
	status: Optional[PaymentRefundStatus]
	reference: Optional[str]
	"""Date and time the refund occurred (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	refunded_at: Optional[str]
	"""Why the refund was issued"""
	reason: Optional[PaymentRefundReason]
	"""Normalized tender category the refund was returned to; mirrors PaymentPayment.tender_type"""
	tender_type: Optional[PaymentRefundTender_type]
	metadata: Optional[PropertyPaymentRefundMetadata]
Are we missing anything? Let us know
Was this page helpful?