# Secutix

## Retrieve ticket URLs from Secutix file ID

> Fetches ticket download URLs and metadata from Secutix system using a file identifier.\
> Used for order fulfillment, ticket distribution, and mobile pass generation.\
> \
> \## Use Cases\
> \- Generate direct ticket download links for customers\
> \- Create mobile wallet passes with ticket data\
> \- Debug order fulfillment issues\
> \- Support ticket resale and transfers\
> \
> \## Authorization\
> Requires valid Secutix API credentials in tenant configuration

```json
{"openapi":"3.1.1","info":{"title":"Neostore internal API","version":"v1"},"tags":[{"name":"Secutix"}],"servers":[{"url":"https://app.neostore.cloud","description":"Production Server"},{"url":"https://app-qa.neostore.cloud","description":"Staging Server"}],"security":[{"admin-bearer":["ScopedAuthorizeRequirement"]},{"apiKey":["ScopedAuthorizeRequirement"]}],"components":{"securitySchemes":{"admin-bearer":{"type":"oauth2","flows":{"implicit":{"authorizationUrl":"https://auth.neostore.cloud/authorize?audience=https://app.neostore.cloud/api/","scopes":{}}}},"apiKey":{"type":"apiKey","name":"X-API-KEY","in":"header"}},"schemas":{"ProblemDetails":{"type":"object","properties":{"type":{"type":["null","string"]},"title":{"type":["null","string"]},"status":{"type":["null","integer"],"format":"int32"},"detail":{"type":["null","string"]},"instance":{"type":["null","string"]}},"additionalProperties":{}},"HttpValidationProblemDetails":{"type":"object","allOf":[{"$ref":"#/components/schemas/ProblemDetails"}],"properties":{"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}},"additionalProperties":{}}}},"paths":{"/api/{tenantId}/external/secutix/orders/getTicketsUrl/{fileId}":{"get":{"tags":["Secutix"],"summary":"Retrieve ticket URLs from Secutix file ID","description":"Fetches ticket download URLs and metadata from Secutix system using a file identifier.\nUsed for order fulfillment, ticket distribution, and mobile pass generation.\n\n## Use Cases\n- Generate direct ticket download links for customers\n- Create mobile wallet passes with ticket data\n- Debug order fulfillment issues\n- Support ticket resale and transfers\n\n## Authorization\nRequires valid Secutix API credentials in tenant configuration","parameters":[{"name":"fileId","in":"path","description":"Secutix file identifier from order system","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Ticket URL resolved."},"401":{"description":"Unauthorized order access.","content":{"text/plain":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}},"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}},"text/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}}}},"404":{"description":"Order not found for the provided file identifier.","content":{"text/plain":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}},"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}},"text/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}}}},"500":{"description":"Unexpected server error."}}}}}}
```

## Handle Secutix order state changes

> Webhook endpoint called by Secutix when ticket orders change state (purchased, validated, refunded, etc.).\
> \
> \## Order States\
> \- \*\*PAID\*\*: Order completed, tickets ready\
> \- \*\*CANCELLED\*\*: Order cancelled, refund processed\
> \- \*\*VALIDATED\*\*: Ticket scanned/used at venue\
> \- \*\*MODIFIED\*\*: Order details changed\
> \
> \## Processing Flow\
> 1\. Secutix sends webhook immediately when order state changes\
> 2\. Endpoint validates request and schedules background task\
> 3\. Background task retrieves full order details from Secutix API\
> 4\. System creates/updates passes for tickets\
> 5\. Push notifications sent to customer devices\
> \
> \## Background Processing\
> Tasks are queued with correlation IDs for:\
> \- Retry handling on failures\
> \- Deduplication of rapid-fire updates\
> \- Performance monitoring\
> \
> \## Use Cases\
> \- Generate event tickets as wallet passes\
> \- Update pass when ticket validated at gate\
> \- Cancel passes for refunded orders\
> \- Multi-ticket orders (family packages)

```json
{"openapi":"3.1.1","info":{"title":"Neostore internal API","version":"v1"},"tags":[{"name":"Secutix"}],"servers":[{"url":"https://app.neostore.cloud","description":"Production Server"},{"url":"https://app-qa.neostore.cloud","description":"Staging Server"}],"paths":{"/api/{tenantId}/webhooks/listeners/secutix/orders":{"post":{"tags":["Secutix"],"summary":"Handle Secutix order state changes","description":"Webhook endpoint called by Secutix when ticket orders change state (purchased, validated, refunded, etc.).\n\n## Order States\n- **PAID**: Order completed, tickets ready\n- **CANCELLED**: Order cancelled, refund processed\n- **VALIDATED**: Ticket scanned/used at venue\n- **MODIFIED**: Order details changed\n\n## Processing Flow\n1. Secutix sends webhook immediately when order state changes\n2. Endpoint validates request and schedules background task\n3. Background task retrieves full order details from Secutix API\n4. System creates/updates passes for tickets\n5. Push notifications sent to customer devices\n\n## Background Processing\nTasks are queued with correlation IDs for:\n- Retry handling on failures\n- Deduplication of rapid-fire updates\n- Performance monitoring\n\n## Use Cases\n- Generate event tickets as wallet passes\n- Update pass when ticket validated at gate\n- Cancel passes for refunded orders\n- Multi-ticket orders (family packages)","parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Order change request with token, state, and ticket/movement IDs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderChangeRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/OrderChangeRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/OrderChangeRequest"}}}},"responses":{"200":{"description":"Order change queued for processing."},"400":{"description":"Missing or invalid order token.","content":{"text/plain":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}},"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}},"text/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}}}},"500":{"description":"Unexpected server error."}}}}},"components":{"schemas":{"OrderChangeRequest":{"required":["lastUpdate","orderSecretToken","state"],"type":"object","properties":{"ticketId":{"type":["null","integer"],"description":"Ticket identifier from Secutix, when available.","format":"int64"},"saleMovementId":{"type":["null","integer"],"description":"Sale movement identifier from Secutix, when available.","format":"int64"},"orderSecretToken":{"type":"string","description":"Secret token identifying the order."},"state":{"type":"string","description":"Current state reported by Secutix (PAID, CANCELLED, VALIDATED, etc.)."},"lastUpdate":{"type":"string","description":"Last update timestamp provided by Secutix."}},"additionalProperties":false},"ProblemDetails":{"type":"object","properties":{"type":{"type":["null","string"]},"title":{"type":["null","string"]},"status":{"type":["null","integer"],"format":"int32"},"detail":{"type":["null","string"]},"instance":{"type":["null","string"]}},"additionalProperties":{}},"HttpValidationProblemDetails":{"type":"object","allOf":[{"$ref":"#/components/schemas/ProblemDetails"}],"properties":{"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}},"additionalProperties":{}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.thewalletcrew.io/api-reference/extensions/secutix.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
