Skip to main content

Refund Order

Retrieve Product ID from Get Order Details API.


Endpoint

POST 

Authentication

This

endpoint

The

Endpoint:https://demo-api.frontpayment.no/api/v1/connect/orders/refund/{{ORDER_UUID}}
Method:POST
Authorization:Bearer
Payload Validations:
'type' => 'required|string|in:regular,invoiced,reservation',
'grandTotal' => 'required|numeric',
'products' => 'required|array',
'products.*.id' => 'required|numeric',
'products.*.amount' => 'required|numeric',
'source' => 'nullable|string|in:captured",charged|requiredIf('type') === reservation',
'reference' => 'nullable|string|requiredIf('type') === reservation
requires a Bearer Token for authentication. You will need to obtain this token from Frontpayment and include it in the Authorization header of your request.

Example Authorization Header: Authorization: Bearer YOUR_FRONTPAID_BEARER_TOKEN

Request Payload

:request body should be a JSON object containing details

{
    "type": "regular",
    "grandTotal": 55,10,
    "products": [
        {
            "id": 451,5410,
            "amount": 30
        },
        {
            "id": 452,
            "amount": 2510
        }
    ],
    "source": null,
    "reference": null
}

Validation Rules

Make sure your request meets the following requirements:

FieldTypeDescription
typerequired | stringRequired Using type. Available types are regular, invoiced and reservation
grandTotalrequired | numericRequired Grand total of the refunded amount.
products.*idrequired | numericRequired Order product id. From which product you want to refund.
products.*.amountrequired | numericRequired Refund amount for the product.
sourcenullable | stringConditional Required When using type is reservation then this field is required. Avaiable values are captured and charged.
referencenullable | stringConditional Required When using type is reservation then this field is required. Using captured or charged uuid.
Response Structure :
{
    "status_code": 202,
    "status_message": "OK",
    "message": "orderRefundedSuccessfully",
    "is_data": true,
    "data": null
}

{ "status_code": 417, "status_message": "Client Error", "message": "payloadValidationErrors", "is_error": true, "errors": "Array" }

{ "status_code": 404, "status_message": "Not Found", "message": "orderNotFound", "is_error": false, "errors": null }

{ "status_code": 404, "status_message": "Not Found", "message": "refundRejectionForTransactionNotFound", "is_error": false, "errors": null }

{ "status_code": 400, "status_message": "Conflict of Business Logic", "message": "refundRejectionForRefundedCancelledInvoicedOrderParamRefunded", "is_error": false, "errors": null }

{ "status_code": 400, "status_message": "Conflict of Business Logic", "message": "refundRejectionForRefundedCancelledInvoicedOrderParamCancelled", "is_error": false, "errors": null }

{ "status_code": 400, "status_message": "Conflict of Business Logic", "message": "requestProductIdNotAvailable", "is_data": false, "data": null }

{ "status_code": 400, "status_message": "Conflict of Business Logic", "message": "refundRejectionForRefundedCancelledInvoicedOrderParamInvoiced", "is_error": false, "errors": 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": "orderProductsNotFound", "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": 500, "status_message": "Internal Dependency Error", "message": "internalErrorOccurredPleaseTryAgainLater", "is_error": true, "errors": "Array" }

{ "status_code": 510, "status_message": "Execution Exception Occurred", "message": "somethingWentWrong", "is_error": true, "errors": "Array" }


Example Response :
{
    "status_code": 202,
    "status_message": "OK",
    "message": "orderRefundedSuccessfully",
    "is_data": true,
    "data": null
}