Refund a payment
POSThttps://app.shuttleglobal.com/c/api/instances/{instance_key}/payments/{payment_id}/refund
You can refund a payment in part or full, or simply mark a payment as refunded (if refunded offline). You can refund “PAYMENT” and “CAPTURE” type transactions, but not “AUTH” (void an AUTH to release what is still reserved on it).
Note, support for multi-refund (e.g., I pay $100 and refund $20 followed by a second refund of $80) is not available on all gateways.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”"tr_11842_10000"The payment’s ID (pay_...), capture ID (ca_...) or transaction ID (tr_...), or the alt_key you gave it (case-insensitive).
The record must be a payment or capture, otherwise 404 Payment not found.
An alt_key resolves to the newest payment or capture with that key, ignoring failed attempts;
if another one with the same alt_key was created in the last six months, the request fails with Duplicate alt_key.
Request Bodyrequired
Section titled “Request Bodyrequired”object
object
"10.00"(Optional) The amount of the refund as a string e.g., “10”.
The amount should not have commas and use a . as a decimal separator.
If omitted, the entire unrefunded amount of the transaction will be refunded.
"Customer returned item"The reason for the refund (free text)
(Optional) Set to true if you do not want to process the refund via the gateway, but simply record that a refund was performed offline.
Responses
Section titled “Responses”Refund processed
object
object
"ref_11842_11073"The unique ID of the refund
"pay_11842_11072"The original payment this refund relates to
"10"The amount refunded
"2020-11-27T15:17:15.000Z"When the refund was created/instructed
"2020-11-27T15:17:18.000Z"When the refund completed processing
"Customer requested cancellation"The reason for the refund
"BOLT-00011073"A unique customer facing reference for the refund
"tr_11842_11072"The original transaction that is being refunded - may be a payment or a capture
The status of the refund transaction
The gateway status of the refund transaction
The message from the gateway (if pending or declined)
False if the refund was instructed, or true if it was only recorded (in which case the onus is on the user to perform the refund via an offline method)
"USD"The currency of the refund (always the same as source transaction)
The ID of the person this refund is for
An array of parts objects for which charge(s) the refund was applied to
object
True if this is just a record to indicate a refund was performed offline
The date the record was last updated
The version of the record
Bad request - invalid parameters
Every error has a code and a message. Some add more fields alongside them, with detail about the error.
object
The error code, for example VALIDATION_ERROR, INVALID, INVALID_REQUEST, UNAUTHORIZED, FORBIDDEN or NOT_FOUND. Program against this, not the message.
What went wrong, in words, for logs and support.
Unauthorized - invalid credentials
Every error has a code and a message. Some add more fields alongside them, with detail about the error.
object
The error code, for example VALIDATION_ERROR, INVALID, INVALID_REQUEST, UNAUTHORIZED, FORBIDDEN or NOT_FOUND. Program against this, not the message.
What went wrong, in words, for logs and support.
Example
{ "code": "UNAUTHORIZED", "message": "Unauthorised"}Payment not found
Every error has a code and a message. Some add more fields alongside them, with detail about the error.
object
The error code, for example VALIDATION_ERROR, INVALID, INVALID_REQUEST, UNAUTHORIZED, FORBIDDEN or NOT_FOUND. Program against this, not the message.
What went wrong, in words, for logs and support.
Was this page helpful?
What went wrong?
Thanks for telling us.