Skip to main content

Refund Order

Retrieve Product ID from Get Order Details API.


Endpoint

POST https://demo-api.frontpayment.no/api/v1/connect/orders/refund/{{ORDER_UUID}}

Authentication

This endpoint 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

The request body should be a JSON object containing details

{
    "type": "regular",
    "grandTotal": 10,
    "products": [
        {
            "id": 5410,
            "amount": 10
        }
    ],
    "source": null,
    "reference": null
}

Validation Rules

Make sure your request meets the following requirements:

Field Type Description
type required | string Required Using type. Available types are regular, invoiced and reservation
grandTotal required | numeric Required Grand total of the refunded amount.
products.*id required | numeric Required Order product id. From which product you want to refund.
products.*.amount required | numeric Required Refund amount for the product.
source nullable | string Conditional Required When using type is reservation then this field is required. Avaiable values are captured and charged.
reference nullable | string Conditional 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
}