Order Webhook V2

Behaviour

Each time a order is closed, SecuTix backend calls a given url transmitting the orderId. In this version, besides the call, all the information related to the order provided by getOrderDetails will be sent as a payload. That means no call is required from the callee.

Url and http method

Designing the url

The callee must provide an URL.

Any POST URL can be used in this webhook version.

Http method

The URL will be called using POST method. The output of getOrderDetails method will be used as payload.

Filter

A filter can be defined in the interface parameters to handle the transmission of the desire orders. This filter parameter contains a string, based on OrderDetailResult, like this below:

OrderDetailsData.OperationDatas(*).ProductCode=XXXX (if product code of any operation is XXXX)

OrderDetailsData.OperationDatas(ProductCode=XXXX).BasePrice=10000;OrderDetailsData.OrderType=SALE (if base price of the operation with product code XXXX is 10000 and the order type is SALE)

The delimiter of each condition in the filter is the character ";".

When a filter is added to the interface parameters, it's important to set the "Granularity" parameter (possible values in getOrderDetails method).

Other setup options (authentication, passing order email...)

In this version, the interface can be configured to send the granularity of the output result. It should be a string, with possible values as per getOrderDetails under "granularity".

Setup in backend

  1. Ask for a proxy opening for the destination URL.
  2. In organization/tools/external interfaces create a new interface of type Firehose order
  3. Paste the url in the Url field
  4. Enter the desired granularity of the output result to be synced. By default: "TICKET"
  5. Save
  6. In the schedule menu, create a new schedule with a frequency fitting your needs and batch size of 60 (recommanded default value).

Order JSON example

{
    "orderDetailsData": {
        "orderId": 10000702652,
        "orderState": "CLOSED",
        "creationDateTime": "2020-10-13T10:09:27.503+00:00",
        "referenceDate": "2020-10-12T22:00:00.000+00:00",
        "expirationDate": "2020-10-13T10:32:33.738+00:00",
        "saleAmount": 40000,
        "preSaleAmount": 0,
        "reservationAmount": 0,
        "optionAmount": 0,
        "waitingAccountBalanceAmount": 0,
        "operationDatas": [{
                "operationId": 10228310724422,
                "kind": "SINGLE_ENTRY",
                "quantity": 2,
                "basePrice": 20000,
                "unitPrice": 20000,
                "productId": 10228231108335,
                "product": "Arena Suite Dining",
                "productCode": "ASTDN",
                "itemId": 10228231110052,
                "performanceId": 10228231109243,
                "performance": "Arena Suite Dining",
                "eventId": 10228231108335,
                "physicalConfigurationId": 10228231107425,
                "siteId": 101053494751,
                "site": "SecuTix Arena",
                "siteAddress": {
                    "firstAddressLine": "Route des Plaines-du-Loup 7",
                    "zipCode": "1018",
                    "locality": "Lausanne",
                    "countryCode": "CH",
                    "phoneNumber": "41-0213151414",
                    "gpsLatitude": "46.5333333",
                    "gpsLongitude": "6.6241666999999325",
                    "website": "http://www.secutix.com"
                },
                "space": "Home arena suites",
                "contingentId": 101053494560,
                "contingent": "VIP",
                "numbered": false,
                "seatCategoryId": 10228231108132,
                "seatCategory": "Cat 2",
                "seatCategoryRank": 1,
                "audienceSubCategoryId": 10228231110152,
                "audienceSubCategory": "VIP",
                "audienceSubCategoryRank": 1,
                "audienceSubCategoryRequireAttachment": false,
                "vatRate": 8000,
                "vatCountryCode": "CH",
                "selfPaidVat": false,
                "operationNumber": 2,
                "productFamilyType": "SINGLE_ENTRY",
                "productFamilySubType": "SPORTING_EVENT",
                "activityType": "SPORT",
                "performanceData": {
                    "10228231109243": "2020-10-31T16:00:00.000+00:00"
                },
                "performanceDate": "2020-10-31T16:00:00.000+00:00",
                "performanceDuration": 7200,
                "itemDisplayExternalDesignation": "Arena Suite Dining",
                "locations": [{
                        "spaceCode": "Suites",
                        "siteCode": "Arena",
                        "spaceExternalName": {
                            "translations": [{
                                    "locale": "en",
                                    "value": "Home arena suites"
                                }
                            ]
                        },
                        "siteExternalName": {
                            "translations": [{
                                    "locale": "en",
                                    "value": "SecuTix Arena"
                                }, {
                                    "locale": "fr",
                                    "value": "Ar´┐Żne SecuTix"
                                }
                            ]
                        },
                        "siteAddress": {
                            "firstAddressLine": "Route des Plaines-du-Loup 7",
                            "zipCode": "1018",
                            "locality": "Lausanne",
                            "countryCode": "CH",
                            "phoneNumber": "41-0213151414",
                            "gpsLatitude": "46.5333333",
                            "gpsLongitude": "6.6241666999999325",
                            "website": "http://www.secutix.com"
                        }
                    }
                ],
                "fileId": 5464,
                "match": {
                    "finalDate": true,
                    "roundCode": "J1",
                    "roundRank": 1,
                    "hostTeamId": 101053521731,
                    "opposingTeamId": 101053521720,
                    "round": "Day 1",
                    "hostTeam": "Team Play",
                    "opposingTeam": "Athletico Fedora"
                },
                "withoutVatTotalAmount": 37040,
                "totalAmount": 40000,
                "performanceKind": "Default",
                "waitingAccountBalance": 0,
                "season": "Current season",
                "crossSellParentOperationIds": [],
                "comfortVariableValues": {
                    "PrioPts": {
                        "translations": [{
                                "locale": "en",
                                "value": "0"
                            }
                        ]
                    }
                },
                "performanceCode": "ASTDN",
                "audienceCatId": 15655,
                "seatCategoryBgColor": "FF8000",
                "seatCategoryTextColor": "000000",
                "exchangeable": false,
                "isNominative": false
            }
        ],
        "movementDatas": [{
                "movementId": 10228310724638,
                "operationId": 10228310724422,
                "barcode": "278777501804038390760100",
                "taxNumber": "01010089510",
                "type": "AREA",
                "seatCategoryId": 10228231108132,
                "seatCategory": "Cat 2",
                "contingentId": 101053494560,
                "contingent": "VIP",
                "areaId": 10228231107526,
                "saleAreaId": 10228231107931,
                "area": "Arena suite",
                "contactReference": "10912",
                "areaKind": "INDIFFERENT",
                "resumed": false,
                "attributionMatch": "NO_EXPECTATION",
                "externalReferences": []
            }, {
                "movementId": 10228310724637,
                "operationId": 10228310724422,
                "barcode": "337510583739402222630181",
                "taxNumber": "01010089509",
                "type": "AREA",
                "seatCategoryId": 10228231108132,
                "seatCategory": "Cat 2",
                "contingentId": 101053494560,
                "contingent": "VIP",
                "areaId": 10228231107526,
                "saleAreaId": 10228231107931,
                "area": "Arena suite",
                "contactReference": "10912",
                "areaKind": "INDIFFERENT",
                "resumed": false,
                "attributionMatch": "NO_EXPECTATION",
                "externalReferences": []
            }
        ],
        "movementTicketDatas": [{
                "movementId": 10228310724638,
                "ticketId": 10228310723729,
                "ticketState": "NOT_PRINTED",
                "barcode": "278777501804038390760100",
                "taxNumber": "01010089510",
                "contactReference": "10912",
                "ticketSupport": "THERMAL",
                "linkedToTicketDistribution": false
            }, {
                "movementId": 10228310724637,
                "ticketId": 10228310723728,
                "ticketState": "NOT_PRINTED",
                "barcode": "337510583739402222630181",
                "taxNumber": "01010089509",
                "contactReference": "10912",
                "ticketSupport": "THERMAL",
                "linkedToTicketDistribution": false
            }
        ],
        "contactReference": "10912",
        "salesChannelName": {
            "translations": [{
                    "locale": "en",
                    "value": "Box office - Test"
                }, {
                    "locale": "fr",
                    "value": "Guichet"
                }, {
                    "locale": "ca",
                    "value": "Kasse"
                }
            ]
        },
        "orderType": "SALE",
        "generatedContiguities": [],
        "orderOriginData": {
            "countryCode": "ES",
            "zipCode": "18010",
            "toCreateToken": false
        },
        "salesChannelType": "BOXOFFICE",
        "orderInstallmentsToCreate": [{
                "orderId": 10000702652,
                "dueDate": "2020-11-11T23:00:00.000+00:00",
                "dueAmount": 40000,
                "paidAmount": 0
            }
        ],
        "orderSecretId": "851b3217-c963-430a-b4fd-36d6a28fb504_10000702652",
        "orderOriginator": "SALE",
        "salesChannelCode": "BO",
        "catalogCurrency": {
            "currencyCode": "EUR",
            "symbol": "?",
            "fractionDigit": 2,
            "minAmount": 10
        },
        "organizationCode": "PLAY",
        "organizationName": {
            "translations": [{
                    "locale": "en",
                    "value": "MPLAY - TEST"
                }, {
                    "locale": "fr",
                    "value": "MPLAY - TEST"
                }
            ]
        }
    },
    "orderDetailGranularity": "TICKET"
}