Issue Refund
POST/api/stripe/invoices/:id/refunds
Issues a partial or full refund against the charge backing a paid Stripe Invoice. Requires admin or power-user privileges. Throttled to 20 requests/minute.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
Fields:
amount_in_cents(optional, integer, min 1) — refund amount in the currency's smallest unit; if omitted, refunds the full remaining refundable amountreason(optional, enum) — one ofduplicate,fraudulent,requested_by_customer
Returns 422 when the refund is refused: the invoice has not been paid, it is already fully refunded, the amount is more than what is left to refund, or the Stripe integration is no longer available.
amount_in_cents is in the currency's smallest unit, as Stripe expects it: cents for USD/EUR (2-decimal currencies), whole units for zero-decimal currencies (¥1,000 → 1000 for JPY, also KRW, VND, CLP…), thousandths for three-decimal currencies (KWD, BHD, JOD, OMR, TND: 1.500 KWD → 1500). The default (outstanding balance / remaining refundable amount) is computed the same way.
Request
Responses
- 201
- 401
- 403
- 404
- 422
- 429
Created
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden
Response Headers
Not Found
Response Headers
Unprocessable Content
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.