Issue a full or partial refund for a completed collection. Processing fees are non-refundable.
| Parameter | Type | Description |
|---|---|---|
collectionId | string | The collection ID to refund |
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | No | Refund mode: FULL (default) or PARTIAL |
amount | number | Conditional | Required for PARTIAL mode. Refund amount in USD |
reason | string | No | Reason code (default: CUSTOMER_REQUEST). See available reasons |
| Mode | Description | Amount Required |
|---|---|---|
FULL | Refunds the entire net amount automatically | No |
PARTIAL | Refunds a specific amount you specify | Yes |
FULL mode to avoid calculation errors. The system automatically determines the maximum refundable amount (net amount after fees).reason field:
| Code | Description |
|---|---|
DUPLICATE_PAYMENT | Duplicate payment |
FRAUDULENT | Fraudulent transaction |
CUSTOMER_REQUEST | Customer requested refund (default) |
ORDER_CANCELLED | Order was cancelled |
PRODUCT_NOT_DELIVERED | Product/service not delivered |
PRODUCT_NOT_AS_DESCRIBED | Product/service not as described |
PRICING_ERROR | Pricing or billing error |
OTHER | Other reason |
GET /api/v3/refunds/reasons.
| Field | Type | Description |
|---|---|---|
refundId | string | Unique refund identifier |
collectionId | string | Original collection ID |
amount | number | Refunded amount |
currency | string | Currency code |
reason | string | Reason code |
reasonDescription | string | Human-readable reason description |
status | string | COMPLETED |
recipient | object | Payer who received the refund |
recipient.clientId | string | Payer’s Fyatu client ID |
recipient.name | string | Payer’s name |
createdAt | string | Refund timestamp |
| Original Payment | $25.00 |
|---|---|
| Processing Fee | -$0.75 |
| Net Amount (Max Refundable) | $24.25 |
| Error Code | HTTP | Description |
|---|---|---|
RESOURCE_NOT_FOUND | 404 | Collection not found |
INVALID_STATUS | 400 | Collection not in COMPLETED status |
AMOUNT_EXCEEDS_REFUNDABLE | 400 | Requested amount exceeds maximum (includes maxRefundable value) |
ALREADY_REFUNDED | 400 | Collection has already been refunded |
INSUFFICIENT_BALANCE | 402 | Business wallet balance too low |
PAYER_NOT_FOUND | 400 | Payer account no longer exists |
REFUNDEDPARTIALLY_REFUNDEDJWT access token obtained from /auth/token
Collection ID or batch ID
Refund mode: FULL (auto-calculate) or PARTIAL (specify amount)
FULL, PARTIAL Refund amount (required for PARTIAL mode)
Reason code for refund
DUPLICATE_PAYMENT, FRAUDULENT, CUSTOMER_REQUEST, ORDER_CANCELLED, PRODUCT_NOT_DELIVERED, PRODUCT_NOT_AS_DESCRIBED, PRICING_ERROR, OTHER