This page explains how to process payments in S360 via APIs, without redirecting to the Ticketshop pages. Through the S360 APIs, a payment instance will be created in the E‑Payment Center (EPC) and then, the EPC payment widget can be used to be displayed in any webpage by providing some parameters.
reopenOrder API to reopen the order and authorize a new payment attempt.
Info
If this option is not available, either the feature is not activated for the institution (elcadmin), either the sales channel is not of type Internet

If this is not the case, you can update the version by :

If the sales channel is not already processing payment, make sure that the EPC Shop ID is correctly configured in the Point of Sale Internet Parameters:
After creating the order using Secutix APIs, you have to call the API service createPaymentAndCloseOrder (https://secutix.pos.secutix.com/tnseb/apidocs/ExternalOrderFacade_latest.html#createPaymentsAndCloseOrder) and provide those two parameters in "paymentParams.paymentParametersMap" object :
More details here: https://secutix.pos.secutix.com/tnseb/apidocs/ExternalOrderFacade_latest.html#PaymentParameters
In the response, use the transactionID inside the EPC Transaction Data for the next step (to use for payment ID field).
Keep track of the paymentId in case of payment cancellation.
{
"orderId": "2621264",
"isConvertedReservation": false,
"createToken": true,
"payments": [
{
"amount": 24000,
"paymentMethodId": 16362
}
],
"paymentParams": {
"contactNumber": "752565",
"totalAmount": 24000,
"paymentParametersMap": {
"ORDER_IDENTIFIER": "your-unique-session-id-12345",
"RETURN_URL": "<https://yourdomain.com/payment-success>"
}
},
"orderType": "SALE",
"maxWaitingTime": 0,
"purchasersInfo": [
{
"contactReference": "752565"
}
]
}
This methid will return a paymentId and an identification. Store them to be able to cancel the payments if needed.
To show the widget, you just need to include JS file and call a JavaScript function.
JS File for preproduction and testing : https://pp-payment.secutix.com/widget/integrate_widget.js
JS File for production : https://payment.secutix.com/widget/integrate_widget.js
Code snippet to use in the page
<div id="paymentWidget"></div>
<!-- Do not change the ID of this script element,
it is required to load the payment widget correctly -->
<script type="text/javascript" id="paymentWidgetJs" src="https://pp-payment-qf.secutix.com/widget/integrate_widget.js"></script>
<script>
createPaymentWidget(
"widget", // use "alias" to show the widget to create an alias
"paymentWidget", // id of the div
{
"paymentId": "1638671948",
"sessionId": "30ab1465-b39a-4212-a5f1-ea8ce345f685"
},
{
"fullRedirection": true, // should payment widget redirect to parent page after submitting, true by default
"enableCancelButton": true
}
);
</script>
At the end of the payment, the widget will do a full redirection of the page to the return URL provided when creating the payment.
Here is the parameter that provides the result of the payment on the redirected URL:

Call the notifyOrder method with maxWaitingTime = 100
https://mosa.demo-ws.secutix.com/tnseb/apidocs/ExternalOrderService_latest.html#notifyOrder
{
"requestId": null,
"orderId": 990735,
"maxWaitingTime":100
}
Expected result: success

Call immediately the notifyOrder method with maxWaitingTime = 3000
https://mosa.demo-ws.secutix.com/tnseb/apidocs/ExternalOrderService_latest.html#notifyOrder
{
"requestId": null,
"orderId": 990735,
"maxWaitingTime":30000
}
Expected result:
{
"statusCode": "success",
"statusDetail": "Workcase failed : 990735_1759750930782, ROLLBACK, WARN, The payment process has been cancelled successfully.<br/>The order has been reopened.<br/>",
"movementTicketDatas": [],
"repaymentSafe": true
}
Then it will be possible to call createPaymentAndCloseOrder again.
Call the notifyOrder method with maxWaitingTime = 3000
https://mosa.demo-ws.secutix.com/tnseb/apidocs/ExternalOrderService_latest.html#notifyOrder
{
"requestId": null,
"orderId": 990735,
"maxWaitingTime":100
}
To have the cancel button displayed, the following parameters must be used:

Call to: https://mosa.demo-ws.secutix.com/tnseb/apidocs/ExternalPaymentService_latest.html#updatePayments
{
"requestId": null,
"orderId": 990735,
"payments": [{
"paymentId" : 10229102727225,
"paymentIdentifier" : "1521143230",
"paymentStatus" : "CANCELLED_BY_USER",
"amount": 64000
}]
}
To mark the payment as cancelled by the user
Expected result: success
{
"statusCode": "success",
"paymentDetails": [
{
"paymentId": 10229102727225,
"amount": 64,
"paymentMethod": {
"id": 121518554,
"externalName": {
"translations": [
{
"locale": "en",
"value": "Credit Card"
}
]
},
"paymentType": "CB",
"subPaymentMethods": []
},
"paymentStatus": "ABANDONED",
"paymentDate": "2025-10-06T12:18:34.845+01:00",
"payerContact": false,
"catalogCurrency": {
"currencyCode": "GBP",
"symbol": "£",
"fractionDigit": 2,
"minAmount": 10
},
"installment": false
}
]
}
Then, depending on your choice
https://mosa.demo-ws.secutix.com/tnseb/apidocs/ExternalOrderService_latest.html#notifyOrder
Call the method notify order with parameter maxWaitingTime=30000
(see above the example for payment failure handling)
https://mosa.demo-ws.secutix.com/tnseb/apidocs/ExternalOrderService_latest.html#notifyOrder
Call the method notify order with parameter maxWaitingTime=100
(see above the example for payment failure handling)
You can have access to advanced display options by sending more options in the JSON configuration in the 4th parameter. Here is the list of advanced parameters available for now :
Or if the abandon of the order is not managed, the order remains opened around 25 minutes.