# Yurplan

## Process Yurplan order confirmation

> Webhook called when an event ticket order is confirmed and payment processed in Yurplan.\
> Creates wallet passes for each ticket in the order.\
> \
> \## Order Processing\
> 1\. Yurplan confirms payment and finalizes order\
> 2\. Webhook sends customer identifier and ticket list\
> 3\. System emits order validated event (for CRM sync if needed)\
> 4\. Creates wallet pass for each ticket with unique token\
> \
> \## Pass Identification\
> Tickets are identified by: \`yurplan.ticketId = {eventId}|{ticketToken}\`\
> This composite key ensures uniqueness across events and platforms.\
> \
> \## Use Cases\
> \- Generate event tickets as digital wallet passes\
> \- Automatic mobile ticket delivery\
> \- QR code for gate entry\
> \- Event updates and reminders via pass

```json
{"openapi":"3.1.1","info":{"title":"Neostore internal API","version":"v1"},"tags":[{"name":"Yurplan"}],"servers":[{"url":"https://app.neostore.cloud","description":"Production Server"},{"url":"https://app-qa.neostore.cloud","description":"Staging Server"}],"paths":{"/api/{tenantId}/webhooks/listeners/yurplan/{eventId}/order/confirmed":{"post":{"tags":["Yurplan"],"summary":"Process Yurplan order confirmation","description":"Webhook called when an event ticket order is confirmed and payment processed in Yurplan.\nCreates wallet passes for each ticket in the order.\n\n## Order Processing\n1. Yurplan confirms payment and finalizes order\n2. Webhook sends customer identifier and ticket list\n3. System emits order validated event (for CRM sync if needed)\n4. Creates wallet pass for each ticket with unique token\n\n## Pass Identification\nTickets are identified by: `yurplan.ticketId = {eventId}|{ticketToken}`\nThis composite key ensures uniqueness across events and platforms.\n\n## Use Cases\n- Generate event tickets as digital wallet passes\n- Automatic mobile ticket delivery\n- QR code for gate entry\n- Event updates and reminders via pass","parameters":[{"name":"eventId","in":"path","description":"Yurplan event identifier.","required":true,"schema":{"type":"string"}},{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Order details with ticket tokens.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderConfirmedDataWebhookRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/OrderConfirmedDataWebhookRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/OrderConfirmedDataWebhookRequest"}}}},"responses":{"200":{"description":"Order processed and passes created."},"500":{"description":"Unexpected server error."}}}}},"components":{"schemas":{"OrderConfirmedDataWebhookRequest":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrderConfirmedData"}},"additionalProperties":false},"OrderConfirmedData":{"type":"object","properties":{"identifier":{"type":"string"},"tickets":{"type":"array","items":{"$ref":"#/components/schemas/TicketData"}}},"additionalProperties":false},"TicketData":{"type":"object","properties":{"token":{"type":"string"},"identifier":{"type":"string"}},"additionalProperties":false}}}}
```

## Handle Yurplan ticket cancellation

> Called when a ticket is cancelled (refund or customer request).\
> Updates pass status and removes from customer wallet if needed.\
> \
> \## Cancellation Handling\
> \- Marks pass as cancelled/expired\
> \- Triggers push notification for app users\
> \- Updates customer transaction history\
> \- May trigger refund workflows

```json
{"openapi":"3.1.1","info":{"title":"Neostore internal API","version":"v1"},"tags":[{"name":"Yurplan"}],"servers":[{"url":"https://app.neostore.cloud","description":"Production Server"},{"url":"https://app-qa.neostore.cloud","description":"Staging Server"}],"paths":{"/api/{tenantId}/webhooks/listeners/yurplan/{eventId}/ticket/canceled":{"post":{"tags":["Yurplan"],"summary":"Handle Yurplan ticket cancellation","description":"Called when a ticket is cancelled (refund or customer request).\nUpdates pass status and removes from customer wallet if needed.\n\n## Cancellation Handling\n- Marks pass as cancelled/expired\n- Triggers push notification for app users\n- Updates customer transaction history\n- May trigger refund workflows","parameters":[{"name":"eventId","in":"path","description":"Yurplan event identifier.","required":true,"schema":{"type":"string"}},{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Canceled ticket details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketCanceledDataWebhookRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/TicketCanceledDataWebhookRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/TicketCanceledDataWebhookRequest"}}}},"responses":{"200":{"description":"Cancellation processed."},"500":{"description":"Unexpected server error."}}}}},"components":{"schemas":{"TicketCanceledDataWebhookRequest":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TicketCanceledData"}},"additionalProperties":false},"TicketCanceledData":{"type":"object","properties":{"ticket":{"$ref":"#/components/schemas/TicketData"}},"additionalProperties":false},"TicketData":{"type":"object","properties":{"token":{"type":"string"},"identifier":{"type":"string"}},"additionalProperties":false}}}}
```

## Handle Yurplan ticket check-in

> Called when ticket is scanned/checked in at event entry point.\
> Updates pass status to indicate event attendance.\
> \
> \## Check-in Processing\
> \- Marks pass as used/redeemed\
> \- Updates audit trail with entry timestamp\
> \- Triggers post-event marketing workflows\
> \- May enable post-event upsell or feedback requests\
> \
> \## Analytics\
> Check-in data contributes to:\
> \- Event attendance metrics\
> \- Customer journey tracking\
> \- Pass engagement measurement

```json
{"openapi":"3.1.1","info":{"title":"Neostore internal API","version":"v1"},"tags":[{"name":"Yurplan"}],"servers":[{"url":"https://app.neostore.cloud","description":"Production Server"},{"url":"https://app-qa.neostore.cloud","description":"Staging Server"}],"paths":{"/api/{tenantId}/webhooks/listeners/yurplan/{eventId}/ticket/checked":{"post":{"tags":["Yurplan"],"summary":"Handle Yurplan ticket check-in","description":"Called when ticket is scanned/checked in at event entry point.\nUpdates pass status to indicate event attendance.\n\n## Check-in Processing\n- Marks pass as used/redeemed\n- Updates audit trail with entry timestamp\n- Triggers post-event marketing workflows\n- May enable post-event upsell or feedback requests\n\n## Analytics\nCheck-in data contributes to:\n- Event attendance metrics\n- Customer journey tracking\n- Pass engagement measurement","parameters":[{"name":"eventId","in":"path","description":"Yurplan event identifier.","required":true,"schema":{"type":"string"}},{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Checked ticket details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketCheckedDataWebhookRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/TicketCheckedDataWebhookRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/TicketCheckedDataWebhookRequest"}}}},"responses":{"200":{"description":"Check-in processed."},"500":{"description":"Unexpected server error."}}}}},"components":{"schemas":{"TicketCheckedDataWebhookRequest":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TicketCheckedData"}},"additionalProperties":false},"TicketCheckedData":{"type":"object","properties":{"ticket":{"$ref":"#/components/schemas/TicketData"}},"additionalProperties":false},"TicketData":{"type":"object","properties":{"token":{"type":"string"},"identifier":{"type":"string"}},"additionalProperties":false}}}}
```
