Refund Reservation
The Refund Reservation endpoint enables merchants to initiate either full or partial refunds for a reservation using its Reservation UUID
. Depending on your business workflow, you can refund the entire order or only specific items. Upon successful submission, the API responds with a 202 Accepted
, indicating that your refund request has been accepted and is pending processing.
This endpoint is ideal for scenarios such as:
- Returns & Exchanges: Revert payment for returned or exchanged items.
- Order Modifications: Adjust invoices or correct billing mistakes.
- Partial Cancellations: Process refunds for specific products rather than full orders.
Endpoint
POST https://demo-api.frontpayment.no/api/v1/connect/reservations/refund/{{RESERVATION_UUID}}
Authorization
To access this endpoint, include a Bearer Token
in the Authorization
header of your request. You can obtain this token from Frontpayment.
Request Payload
Send the following parameters as a JSON object in the request body:
{
"type": "reservation",
"grandTotal": 15,
"products": [
{
"id": 510,
"amount": 15
}
],
"source": "captured",
"reference": "CAP123234"
}
Retrieve Product ID from Get Order Details API.
Validation reference.Rules
Make sure your request meets the following requirements:
Field | Type | Description |
---|---|---|
type |
string |
Required Using type. Available types is reservation |
grandTotal |
numeric |
Required Grand total of the refunded amount. |
products.*id |
numeric |
|
products.*.amount |
numeric |
Required
|
source |
string |
Required Avaiable values are . |
reference |
string |
Required Using captured or charged uuid. |
Response
A successful request will return a 202 OK
status with the following JSON payload:
{
"status_code": 202,
"status_message": "OK",
"message": "orderRefundedSuccessfully",
"is_data": true,
"data": null
}
Error Response
API returns a 404
error, it means requested order with RESERVATION_UUID
could not be found in our system.
{
"status_code": 404,
"status_message": "Not Found",
"message": "orderNotFound",
"is_error": false,
"errors": null
}
API return a 417
error, it means request payload validation failed.
{
"status_code": 417,
"status_message": "Client Error",
"message": "payloadValidationErrors",
"is_error": true,
"errors": "Array"
}
{
API 404,returns "status_message":a "Not510
Found",error, "message":it "orderNotFound",means "is_error":something false,failed "errors":on nullthe }server {side
{
"status_code": 510,
"status_message": "Execution Exception Occurred",
"message": "somethingWentWrong",
"is_error": true,
"errors": "Array"
}
Others refund rejections Example Response
:
errors
{
"status_code": 202,400,
"status_message": "OK"Conflict of Business Logic",
"message": "orderRefundedSuccessfully"requestProductIdNotAvailable",
"is_data": true,false,
"data": null
}
{
"status_code": 400,
"status_message": "Conflict of Business Logic",
"message": "refundRejectionForRefundRequestGreaterThanOrderAmount",
"is_error": false,
"errors": null
}
{
"status_code": 400,
"status_message": "Conflict of Business Logic",
"message": "refundRejectionForProductAmountExceed",
"is_error": true,
"errors": "Array"
}
{
"status_code": 400,
"status_message": "Conflict of Business Logic",
"message": "refundRejectionForWeeklyThresholdExceed",
"is_error": true,
"errors": null
}
{
"status_code": 400,
"status_message": "Conflict of Business Logic",
"message": "refundRejectionForRequestAmountThresholdExceed",
"is_error": true,
"errors": null
}
{
"status_code": 202,400,
"status_message": "OK"Conflict of Business Logic",
"message": "orderRefundedSuccessfully"requestProductIdNotAvailable",
"is_data": true,false,
"data": null
}
{
{
"status_code": 400,
"status_message": "Conflict of Business Logic",
"message": "refundRejectionForProductAmountExceed",
"is_error": true,
"errors": "Array"
}
{
"status_code": 400,
"status_message": "Conflict of Business Logic",
"message": "refundRejectionForWeeklyThresholdExceed",
"is_error": true,
"errors": null
}
{
"status_code": 400,
"status_message": "Conflict of Business Logic",
"message": "refundRejectionForRequestAmountThresholdExceed",
"is_error": true,
"errors": null
}