### Call to getLastSetupUpdate
Source: https://platform.secutix.com/backend/sales/sample_queries
Request and response examples for retrieving the last setup update timestamp.
```XML
MOSA_B2C
P@ssw0rd
```
```JSON
{
}
```
```XML
success
2016-11-01T15:32:35.628+01:00
```
```JSON
{
"statusCode": "success",
"lastSetupUpdate": "2022-01-10T13:42:05.026+01:00"
}
```
--------------------------------
### Retrieve product details
Source: https://platform.secutix.com/frontend/links
Example of a GET request to fetch specific product data and the corresponding JSON response structure.
```http
GET https://PREFIX/1/catalog/894639304565
```
```json
{
"id": "894639304565",
"stxCode": "2012-13|Rigolett",
"lastUpdate": "2013-02-25T09:46:54.010Z"},
"topic": { "code": "OPERA|ROM|19E", "name": { "translations": [
{ "locale": "fr", "value": "Opéra|Romantique|19ème" },
{ "locale": "en", "value": "Opera|Romantic|19th" }
] } },
"name": { "translations": [
{ "locale": "fr", "value": "Rigoletto de Verdi" },
{ "locale": "en", "value": "Rigoletto from Verdi" }
] },
"location": {
"siteCode": "BASTILLE",
"spaceCode": "AMPHI",
"siteName": { "translations": [
{ "locale": "fr", "value": "Opéra Bastille" },
{ "locale": "en", "value": "Opéra Bastille" }
] },
"spaceName": { "translations": [
{ "locale": "fr", "value": "Amphithéâtre" },
{ "locale": "en", "value": "Amphiteatre" }
] },
},
"logo": "http://example.com/resources/img/hdt203ndxhze83.jpg?version=3"
}
```
--------------------------------
### SOAP Security Header Example
Source: https://platform.secutix.com/backend/standards/soap
Example of a WS-Security header using UsernameToken for system authentication.
```xml
...
INSTIT_ZOE
ILoveDogs
...
...
```
--------------------------------
### Order JSON Example
Source: https://platform.secutix.com/webhook/order/v2
A sample JSON object representing an order with product and site details.
```json
"preSaleAmount": 14000,
"reservationAmount": 0,
"optionAmount": 0,
"waitingAccountBalanceAmount": 0,
"operationDatas": [
{
"operationId": 10229212866133,
"kind": "SIMPLE_PRODUCT",
"type": "PRE_SALE",
"quantity": 1,
"basePrice": 14000,
"unitPrice": 14000,
"withoutVatTotalAmount": 14000,
"totalAmount": 14000,
"productId": 101049282449,
"product": "Billet Musée",
"productCode": "MSTIC",
"itemId": 101049310928,
"siteId": 466636059,
"site": "MoSA Musée",
"siteAddress": {
"firstAddressLine": "62, rue de Lille",
"zipCode": "75007",
"locality": "Paris",
"countryCode": "FR"
},
"contingentId": 466646159,
"contingent": "Ventes en ligne",
"numbered": false,
"audienceSubCategoryId": 306159078,
"audienceSubCategory": "Adulte",
"audienceSubCategoryRank": 1,
"audienceSubCategoryRequireAttachment": false,
"audienceSubCategoryExternalDescription": "Plein Tarif",
"vatRate": 0,
"vatCountryCode": "FR",
"selfPaidVat": false,
"operationNumber": 1,
"productFamilyType": "PASS",
"productFamilySubType": "VISIT_PASS",
"itemDisplayExternalDesignation": "Billet Musée",
"locations": [
{
"spaceCode": "INTEGR",
"siteCode": "MOSA",
"spaceExternalName": {
"translations": [
{
"locale": "fr",
"value": "Tour Intégrée"
},
{
"locale": "en",
"value": "Integrated Tour"
},
{
"locale": "es",
"value": "Tour Integrado"
},
{
"locale": "de",
"value": "Integrierte Tour"
},
{
"locale": "it",
"value": "Visita Integrato"
}
]
},
"siteExternalName": {
"translations": [
{
"locale": "fr",
"value": "MoSA Musée"
},
{
"locale": "en",
"value": "MoSA Museum"
},
{
"locale": "es",
"value": "Museo MoSA"
},
{
"locale": "de",
"value": "MWK-Museum"
},
{
"locale": "it",
"value": "Museo MoSA"
}
]
},
"siteAddress": {
"firstAddressLine": "62, rue de Lille",
"zipCode": "75007",
"locality": "Paris",
"countryCode": "FR"
}
}
],
"fileId": 13116,
"waitingAccountBalance": 0,
"season": "Saison 1",
"crossSellParentOperationIds": [],
"comfortVariableValues": {},
"includedInShipmentFee": false,
"audienceCatId": 15655,
"exchangeable": true,
"catalogCurrency": {
"currencyCode": "EUR",
"symbol": "€",
"fractionDigit": 2,
"minAmount": 10
},
"itemDate": "2024-06-10T11:00:00.000+02:00",
"timeslotId": 101047469409,
"timeslotDuration": 7200
```
--------------------------------
### GET PREFIX/1/catalog/products/
Source: https://platform.secutix.com/frontend/links
Retrieves the entire list of products from the catalog.
```APIDOC
## GET PREFIX/1/catalog/products/
### Description
Retrieves all products in the catalog in one request by omitting the specific product identifier.
### Method
GET
### Endpoint
PREFIX/1/catalog/products/
```
--------------------------------
### getContactData Request Examples
Source: https://platform.secutix.com/backend/contacts/contact_sam
Example SOAP and REST request payloads for the getContactData method.
```xml
MOSA_B2C
P@ssw0rd
43
ADDRESSES
```
```json
{
"contactNumber": "43",
"details": ["ADDRESSES"]
}
```
--------------------------------
### Order Filter Syntax Examples
Source: https://platform.secutix.com/webhook/order/v2
Examples of filter strings used to control which orders are transmitted based on OrderDetailResult fields.
```text
OrderDetailsData.OperationDatas(*).ProductCode=XXXX
```
```text
OrderDetailsData.OperationDatas(ProductCode=XXXX).BasePrice=10000;OrderDetailsData.OrderType=SALE
```
--------------------------------
### SOAP Request with Pagination
Source: https://platform.secutix.com/backend/accesscontrol/know_how_integrate
Example of a SOAP request using paginationStart to iterate through results.
```xml
MOSA_AC
P@ssw0rd
GREY
MOSA_AC
Saison1
PABLO
5
2022-11-17 11:44:27.969
```
--------------------------------
### POST /tnseb/backend-apis/catalogService/v1_31/getLastSetupUpdate
Source: https://platform.secutix.com/backend/sales/sample_queries
Retrieves the timestamp of the last setup update from the catalog service.
```APIDOC
## POST /tnseb/backend-apis/catalogService/v1_31/getLastSetupUpdate
### Description
Fetches the last setup update information from the catalog service.
### Method
POST
### Endpoint
https://mosa.demo-ws.secutix.com/tnseb/backend-apis/catalogService/v1_31/getLastSetupUpdate
### Response
#### Success Response (200)
- **statusCode** (string) - Status of the request
- **lastSetupUpdate** (string) - Timestamp of the last update
### Response Example
{
"statusCode": "success",
"lastSetupUpdate": "2022-01-10T13:42:05.026+01:00"
}
```
--------------------------------
### GET /api/1/redirect/product
Source: https://platform.secutix.com/frontend/links
Redirects the user to the online shopping site for a specific product.
```APIDOC
## GET /api/1/redirect/product
### Description
Redirects the user to the online shopping site for a specific product. This link should only be displayed if the product is on sale and available.
### Method
GET
### Endpoint
/api/1/redirect/product
### Parameters
#### Query Parameters
- **id** (string) - Required - Product identifier
- **code** (string) - Optional - Product code (if the Id is unknown)
- **lang** (string) - Optional - ISO 639-1 language code
```
--------------------------------
### GET PREFIX/1/catalog/products/
Source: https://platform.secutix.com/frontend/links
Retrieves detailed information for a specific product by its identifier.
```APIDOC
## GET PREFIX/1/catalog/products/
### Description
Retrieves the details of a specific product using its unique identifier. This data is used by S-360 to update its cache.
### Method
GET
### Endpoint
PREFIX/1/catalog/products/
### Parameters
#### Path Parameters
- **id** (String) - Required - Website identifier of the product
### Response
#### Success Response (200)
- **id** (String) - Website identifier of this product
- **stxId** (String) - S-360 product identifier
- **stxCode** (String) - Organisation code + | + season code + | + product code
- **lastUpdate** (Date) - Date and time of last modification
- **topic** (Topic) - Arborescence of topic and subtopics
- **name** (Multilingual) - Product name
- **description** (Multilingual) - Product description
- **nameAddOn** (Multilingual) - Product name add-on
- **logo** (URL) - URL address of the logo
- **location** (Location) - Product location details
### Response Example
{
"id": "894639304565",
"stxCode": "2012-13|Rigolett",
"lastUpdate": "2013-02-25T09:46:54.010Z",
"topic": { "code": "OPERA|ROM|19E", "name": { "translations": [ { "locale": "fr", "value": "Opéra|Romantique|19ème" }, { "locale": "en", "value": "Opera|Romantic|19th" } ] } },
"name": { "translations": [ { "locale": "fr", "value": "Rigoletto de Verdi" }, { "locale": "en", "value": "Rigoletto from Verdi" } ] },
"location": {
"siteCode": "BASTILLE",
"spaceCode": "AMPHI",
"siteName": { "translations": [ { "locale": "fr", "value": "Opéra Bastille" }, { "locale": "en", "value": "Opéra Bastille" } ] },
"spaceName": { "translations": [ { "locale": "fr", "value": "Amphithéâtre" }, { "locale": "en", "value": "Amphiteatre" } ] }
},
"logo": "http://example.com/resources/img/hdt203ndxhze83.jpg?version=3"
}
```
--------------------------------
### GET /api/1/redirect/option
Source: https://platform.secutix.com/frontend/links
Redirects the user to the online buying site for selecting product options.
```APIDOC
## GET /api/1/redirect/option
### Description
Redirects the user to the online buying site for selecting product options. This link should only be displayed if the user is in the 'CE' universe and the option request is authorized.
### Method
GET
### Endpoint
/api/1/redirect/option
### Parameters
#### Query Parameters
- **productId** (string) - Required - Product identifier
- **lang** (string) - Optional - ISO 639-1 language code
```
--------------------------------
### Retrieve Sale Order Details
Source: https://platform.secutix.com/backend/sales/how_to/create_close_refund_order
Examples for fetching order information using either SOAP or REST protocols.
```xml
CUBE_B2C
P@ssw0rd
10000000910
```
```json
{
"orderId" : "10000000910"
}
```
--------------------------------
### Order JSON Payload Example
Source: https://platform.secutix.com/webhook/order/v2
A sample JSON structure representing an order, which is sent to the configured webhook URL.
```json
{
"orderDetailsData": {
"orderId": 10000418846,
"orderState": "OPEN",
"creationDateTime": "2024-05-27T10:45:49.201+02:00",
"referenceDate": "2024-05-27T02:00:00.000+02:00",
"expirationDate": "2024-05-27T11:00:49.779+02:00",
"saleAmount": 0,
```
--------------------------------
### Call to createUser (REST)
Source: https://platform.secutix.com/backend/contacts/social_login_service
Example JSON payload for the REST endpoint POST request to the createUser method.
```json
{
"signUpData": {
"email": [],
"firstname": "Maxwell",
"gender": "MR",
"lang": "EN",
"lastname": "SilverHammer",
"phoneNumber": "797997979",
"phonePrefix": "41",
"title": "MR"
},
"provider": "ACCOUNT_KIT",
"providerUserReference": "1520956517919901"
}
```
--------------------------------
### Inventory JSON Payload Example
Source: https://platform.secutix.com/webhook/inventory
A partial JSON structure representing inventory items, pricing, and associated metadata.
```json
{
"locale": "fr",
"value": null
},
{
"locale": "en",
"value": null
},
{
"locale": "es",
"value": null
},
{
"locale": "de",
"value": null
},
{
"locale": "it",
"value": null
}
]
},
"saleCloseExceptions": [],
"seatCategories": [],
"prices": [
{
"institutionSeatCatId": 112908204,
"seatCatId": null,
"audSubCatId": 306159078,
"amount": 35000,
"minQty": null,
"maxQty": null,
"priceLevelId": null,
"chargesAmounts": null
},
{
"institutionSeatCatId": 112908204,
"seatCatId": null,
"audSubCatId": 466637473,
"amount": 28000,
"minQty": null,
"maxQty": null,
"priceLevelId": null,
"chargesAmounts": null
},
{
"institutionSeatCatId": 112908204,
"seatCatId": null,
"audSubCatId": 466681713,
"amount": 20000,
"minQty": null,
"maxQty": null,
"priceLevelId": null,
"chargesAmounts": null
},
{
"institutionSeatCatId": 112908204,
"seatCatId": null,
"audSubCatId": 466654444,
"amount": 25000,
"minQty": null,
"maxQty": null,
"priceLevelId": null,
"chargesAmounts": null
}
],
"charges": [],
"comfortVariableValues": [],
"performanceType": null,
"visitLanguageCode": null,
"maxSeatsPerOrder": null,
"itemIds": [
10228321401627
],
"performanceSocialNetworkLinks": [],
"salePeriods": []
}
]
},
"service": null,
"goods": null,
"pack": null,
"seasonTicket": null,
"transport": null,
"pass": null,
"membership": null,
"hospitality": null,
"minQuantity": null,
"maxQuantity": null,
"culturalContact": null,
"waitingListAllowed": false,
"partnerContactId": null
}
]
```
--------------------------------
### Inventory Webhook JSON Payload Example
Source: https://platform.secutix.com/webhook/inventory
Represents the structure of the product data sent in the webhook POST request.
```json
[
{
"id": 10228321399304,
"prevSeasonProductId": null,
"code": "2010CIMM",
"productFamilyType": "SINGLE_ENTRY",
"productFamilySubType": "SIMPLE_TICKET",
"audienceType": "ALL",
"state": "RUNNING",
"logo": null,
"smallImageUrl": null,
"mediumImageUrl": null,
"largeImageUrl": null,
"detailURL": null,
"vatCodeId": 15251,
"ticketModelId": 466679292,
"chargesTableId": null,
"partnerContactNumber": null,
"productTypeId": null,
"allowQuestionnaire": false,
"questionnaireId": null,
"salePeriods": [],
"saleCloseExceptions": [],
"externalName": {
"translations": [
{
"locale": "fr",
"value": "A Shape of Things to Come"
},
{
"locale": "en",
"value": "A Shape of Things to Come"
},
{
"locale": "es",
"value": "A Shape of Things to Come"
},
{
"locale": "de",
"value": "Deutsche Name"
},
{
"locale": "it",
"value": "A Shape of Things to Come"
},
{
"locale": "ca",
"value": "A Shape of Things to Come"
},
{
"locale": "nl",
"value": "A Shape of Things to Come"
},
{
"locale": "fi",
"value": "A Shape of Things to Come"
},
{
"locale": "hu",
"value": "A Shape of Things to Come"
},
{
"locale": "pt",
"value": "A Shape of Things to Come"
}
]
},
"internalName": {
"translations": [
{
"locale": "fr",
"value": "A Shape of Things to Come"
},
{
"locale": "en",
"value": "A Shape of Things to Come"
},
{
"locale": "es",
"value": "A Shape of Things to Come"
},
{
"locale": "de",
"value": "A Shape of Things to Come"
},
{
"locale": "it",
"value": "A Shape of Things to Come"
}
]
},
"shortName": {
"translations": [
{
"locale": "fr",
"value": "A Shape of Thin"
},
{
"locale": "en",
"value": "A Shape of Thin"
},
{
"locale": "es",
"value": "A Shape of Thin"
},
{
"locale": "de",
"value": "A Shape of Thin"
}
```
--------------------------------
### SOAP Access Control Catalog Response
Source: https://platform.secutix.com/backend/accesscontrol/access_test_museums
Example of a SOAP envelope containing product and season information for museum access control.
```xml
101081248238
FamilyV
Family Package - Guided Visits
101086000086
2days
Pass 2 jours au musée
Musée
101094266938
INPACK
Qaquet individuel: Musée + Visite guidée
101095656292
FRIEND
Friend Package - Guided Visits
101095635789
SCHL
Visite conférence exposition
Hall Est
10228170869813
VI+Media
Guided visit for individual + Multimedia guide
10228235011984
WAVIINLI
WebAccess_ Visite individuelle Libre
Hall Ouest
2020-03-08T00:00:00+01:00
```
--------------------------------
### REST Access Control Catalog Response
Source: https://platform.secutix.com/backend/accesscontrol/access_test_museums
Example of a JSON response body containing season and product details for museum access control.
```json
{
"statusCode": "success",
"statusDetail": null,
"requestId": null,
"seasons": [
{
"id": 306158775,
"code": "Saison1",
"internalName": "Saison 1",
"startDate": "2020-03-22T23:00:00.000+00:00",
"endDate": "2022-03-22T23:00:00.000+00:00",
"products": [
{
"id": 101030359699,
"code": "KINGDOM",
"internalName": "L'égypte antique transformée: L'Empire du Milieu",
"performance": null,
"timeslots": null,
"spaceName": null
},
{
"id": 101089607403,
"code": "DON_REL",
"internalName": "Soulagement du Musée",
"performance": null,
"timeslots": null,
"spaceName": null
},
{
"id": 101091020493,
"code": "GUIWH+F",
"internalName": "Group Guided visit & La Vie en Rose",
"performance": null,
"timeslots": null,
"spaceName": null
},
{
"id": 101096182402,
"code": "EXFI",
"internalName": "Exposition + Collection de films + Souper",
"performance": null,
"timeslots": null,
"spaceName": null
},
{
"id": 101030359698,
"code": "SARGENT",
"internalName": "Sargent: Portraits d'artistes et amis",
"performance": null,
"timeslots": null,
"spaceName": null
},
{
"id": 101081706677,
"code": "BESPOKE",
"internalName": "Bespoke tours",
"performance": null,
"timeslots": null,
"spaceName": "Tour Intégrée"
},
{
"id": 101067950881,
"code": "CIT+WH",
"internalName": "Visite combinée: musée et halle ouest",
"performance": null,
"timeslots": null,
"spaceName": null
},
{
"id": 466676258,
"code": "GUIDES",
"internalName": "Guides",
"performance": null,
"timeslots": null,
"spaceName": null
},
{
"id": 466677375,
"code": "YOUNG",
"internalName": "Membre jeune",
"performance": null,
"timeslots": null,
"spaceName": null
},
{
```
--------------------------------
### SOAP Access Control List Items
Source: https://platform.secutix.com/backend/accesscontrol/access_test_museums
Example of the XML structure for accessControlListItems within a SOAP response. This structure contains ticket details such as barcode, validity dates, and product information.
```xml
BIRTHDATE
COUNTRY_CODE
false
2020-09-28T00:00:00+02:00
0
C-PAEDU
466677398
SECUTIX
01040000286
THERMAL
VALID
2020-09-28T00:00:00+02:00
0
REDUCED
ICOM
ARC-A28FE6A7A40DC76CBFAFD45EF4B7A363
NOT_CANCELLED
2020-09-29T00:00:00+02:00
182
ID_NUMBER
LASTNAME
FIRSTNAME
BIRTHDATE
COUNTRY_CODE
false
2020-09-28T00:00:00+02:00
0
C_ICOM
466677399
SECUTIX
01040000377
THERMAL
VALID
2020-09-28T00:00:00+02:00
0
REDUCED
SENIOR
ARC-620DFF9FC0AD0C7902D4ACAAC2C62254
NOT_CANCELLED
2020-09-29T10:30:00+02:00
1
731
ID_NUMBER
LASTNAME
FIRSTNAME
BIRTHDATE
COUNTRY_CODE
false
2020-09-29T09:00:00+02:00
5000
ENTRY
466637979
SECUTIX
01020000568
THERMAL
VALID
2020-09-29T09:00:00+02:00
0
REDUCED
SENIOR
ARC-1F581254D5AF5F33FFBDADD2AC428A34
```
--------------------------------
### Demonstrate Newsletter Subscription Workflow
Source: https://platform.secutix.com/backend/contacts/associate_newsletters
Initializes the service and executes the registration process using sample data.
```java
private void demo() {
// Initializing the service.
ContactInformationPublicService service = initService();
// Generate a sample email, for demonstration purpose.
String generatedEmail = "example.person" + System.currentTimeMillis() + "@do-not-send.com";
// Here put the contact criterion id code for your newsletter.
String criterionCode = "NEWSLET";
boolean contactSubscribesToNewsletter = true;
// Here is the code of the authorization that checks if a person accepts to receive emails or not.
// This code is most the of the time this one.
String authorizationCode = "CNIL_O";
boolean contactAcceptsToReceiveEmails = true;
// Those two calls are not necessary every time, but they guarantee that we are using real and available
// authorization and criterion codes.
Assert.isTrue(checkThatAuthorizationCodeExists(service, authorizationCode));
Assert.isTrue(checkThatCriterionCodeExists(service, criterionCode));
registerToNewsletter(service, generatedEmail, criterionCode, contactSubscribesToNewsletter, authorizationCode, contactAcceptsToReceiveEmails);
}
```
--------------------------------
### Initialize Secutix Widgets
Source: https://platform.secutix.com/frontend/widgets
Use STX.Widgets.start to define widget groups. Each call requires a unique set of global parameters and a list of widgets to render.
```javascript
```
--------------------------------
### STX.Widgets.start(config)
Source: https://platform.secutix.com/frontend/widgets
Initializes a group of widgets with shared global configuration settings. This method can be called multiple times to define different groups with unique configurations.
```APIDOC
## STX.Widgets.start(config)
### Description
Initializes and renders a group of widgets on the page. All widgets within a single call share the same global configuration.
### Parameters
- **config** (object) - Required - The configuration object containing global settings and the list of widgets.
#### Global Configuration
- **hostname** (string) - Required - The hostname defined in the point of sales.
- **apiKey** (string) - Required - The API key for authentication.
- **language** (string) - Required - The language code for the widgets.
- **widgets** (array) - Required - A list of widget objects to initialize.
#### Widget Object Properties
- **widget** (string) - Required - The name of the widget (e.g., "Product", "Catalog").
- **root** (string) - Required - The CSS selector for the HTML element where the widget will be rendered.
- **productId** (string) - Optional - The ID of the product (required for Product widget).
- **occurrenceId** (string) - Optional - The ID of the performance, match, or slot (required for Product widget).
- **showActions** (boolean) - Optional - Whether to show actions.
- **aspectRatio** (string) - Optional - The display aspect ratio for the picture.
- **showDescription** (boolean) - Optional - Whether to show the product description.
- **showImage** (boolean) - Optional - Whether to show the product image.
### Example
```javascript
STX.Widgets.start({
hostname: "host.shop.secutix.com",
apiKey: "8bafa660-8bc1-4982-83da-f15fce01f4ec",
language: "fr",
widgets: [
{
widget: "Product",
root: "#product_1",
productId: "4654654",
occurrenceId: "87846578",
showActions: true,
aspectRatio: "VERTICAL"
}
]
});
```
```
--------------------------------
### Execute Data Export GET Request
Source: https://platform.secutix.com/backend/dataexport/how_to
Perform a basic GET request to retrieve payment method codes and IDs using an authorization header.
```bash
curl --location --request GET 'https://mosa.demo-ws.secutix.com/tnai/backend-apis/dataExportService/v1/export/GET_PAYMETH_CODE_AND_ID' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJNT1NBIiwiYXVkIjoiTU9TQV9EQVQiLCJpc3MiOiJUZXN0IiwiaWF0IjoxNjA2OTg0ODI1LCJleHAiOjE2MDY5ODU3MjV9.2tB7FdocRC2oZTieTOJ5rsY-L7AMAleSpPYk84Q6gJQ'
```
--------------------------------
### Widget initialization configuration
Source: https://platform.secutix.com/frontend/widgets
Structure of the object passed to the STX start function to initialize widgets with required host and API credentials.
```javascript
{
hostname: string that represent the hostname of the internet point of sales (mandatory)
apiKey: string that contains the apikey linked to the internet point of sales (mandatory)
language: string representing the language in which the widgets should be displayed (optional, it takes the default institution language if not provided)
widgets: a list of widget definitions
}
```
--------------------------------
### GET /api/1/sso/saml/logout
Source: https://platform.secutix.com/frontend/sso/secutixasidp
Enables user logoff from the purchase funnel.
```APIDOC
## GET /api/1/sso/saml/logout
### Description
This API enables user logoff. It can be called with either http or https protocols.
### Method
GET
### Endpoint
/api/1/sso/saml/logout
### Parameters
#### Query Parameters
- **count** (integer) - Optional - Step in the logoff loop. If equal to 0, the logout loop ends.
- **redirectUrl** (string) - Optional - Manually specified return URL.
```
--------------------------------
### Include the widget library
Source: https://platform.secutix.com/frontend/widgets
Load the widget loader script. Replace the placeholder URL with the customer-specific S-360 host URL.
```html
```
--------------------------------
### OpenID Connect Configuration JSON
Source: https://platform.secutix.com/frontend/sso/secutixassp
Example configuration object for setting up an OIDC provider in S-360, including endpoint URLs and profile path mappings.
```json
{
"providerId": "secutix-test",
"appSecret": "e6*********************5a",
"oAuthScope": "email",
"openIdUrlConfig": {
"authorizeUrl": "https://sso.test.platform.*****integrator.com/auth/realms/OurClient/protocol/openid-connect/auth",
"accessTokenUrl": "https://sso.test.platform.*****integrator.com/auth/realms/OurClient/protocol/openid-connect/token",
"authenticateUserUrlAdditionalParam": "",
"userInfoUrl": "https://sso.test.platform.*****integrator.com/auth/realms/OurClient/protocol/openid-connect/userinfo"
},
"defaultPhoneNumberCountryCode":"GB", // OPTIONAL
"setAddressAsShippingAddress": true, // OPTIONAL
"openIdProfilePath": {
"userIdProfilePath": "sub",
"emailProfilePath": "email",
"firstNameProfilePath": "given_name",
"lastNameProfilePath": "family_name",
"genderProfilePath": ""
}
}
```
--------------------------------
### GET /api/1/redirect/product/performance
Source: https://platform.secutix.com/frontend/links
Redirects the user directly to a specific performance of an event.
```APIDOC
## GET /api/1/redirect/product/performance
### Description
Redirects the user directly to a specific performance of an event.
### Method
GET
### Endpoint
/api/1/redirect/product/performance
### Parameters
#### Query Parameters
- **id** (string) - Required - Product identifier
- **lang** (string) - Optional - ISO 639-1 language code
```
--------------------------------
### GET /api/1/redirect/account/edit
Source: https://platform.secutix.com/frontend/links
Accesses the profile edition page of the client in the ticket shop.
```APIDOC
## GET /api/1/redirect/account/edit
### Description
Accesses the profile edition page of the client in the ticket shop. If the user is not authenticated, they will be redirected to the authentication page.
### Method
GET
### Endpoint
/api/1/redirect/account/edit
### Parameters
#### Query Parameters
- **lang** (string) - Optional - ISO 639-1 language code
```