# Actito

## Update passes via Actito marketing automation

> Receives pass update events from Actito marketing automation platform.\
> Enables dynamic pass content updates triggered by marketing campaigns and customer actions.\
> \
> \## Update Triggers\
> Can be triggered from Actito Journey Builder for:\
> \- Promotional offer updates\
> \- Loyalty point additions\
> \- Status changes\
> \- Personalized content delivery\
> \
> \## Processing\
> Updates Apple Wallet and Google Wallet passes with new content.\
> Sends push notifications to customers for significant changes.\
> \
> \## Authorization\
> Requires \<c>ActitoListener.Write\</c> scope

```json
{"openapi":"3.1.1","info":{"title":"Neostore internal API","version":"v1"},"tags":[{"name":"Actito"}],"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}/webhooks/listeners/actito/custom-actions/updatePass":{"post":{"tags":["Actito"],"summary":"Update passes via Actito marketing automation","description":"Receives pass update events from Actito marketing automation platform.\nEnables dynamic pass content updates triggered by marketing campaigns and customer actions.\n\n## Update Triggers\nCan be triggered from Actito Journey Builder for:\n- Promotional offer updates\n- Loyalty point additions\n- Status changes\n- Personalized content delivery\n\n## Processing\nUpdates Apple Wallet and Google Wallet passes with new content.\nSends push notifications to customers for significant changes.\n\n## Authorization\nRequires <c>ActitoListener.Write</c> scope","parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Actito pass update event payload","content":{"application/json":{"schema":{}},"text/json":{"schema":{}},"application/*+json":{"schema":{}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Bad Request","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"}]}}}},"401":{"description":"Unauthorized","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":"Internal Server Error"}}}}}}
```

## Handle Actito profile creation and updates

> Webhook endpoint called by Actito when customer profiles are created or updated.\
> \
> \## Event Types\
> \- \*\*CREATE\*\*: New customer profile created in Actito\
> \- \*\*UPDATE\*\*: Existing customer profile modified\
> \
> \## Integration Flow\
> 1\. Actito sends webhook with profile event\
> 2\. System retrieves full profile data from Actito API\
> 3\. Updates local customer records\
> 4\. Triggers pass updates if profile changes affect pass content\
> \
> \## Use Cases\
> \- Customer data synchronization\
> \- Loyalty tier changes reflected in passes\
> \- Profile enrichment from marketing campaigns

```json
{"openapi":"3.1.1","info":{"title":"Neostore internal API","version":"v1"},"tags":[{"name":"Actito"}],"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":{"ProfileEventType":{"enum":["Create","Update"],"type":"string"},"NewProfileActitoWrapper":{"type":"object","properties":{"eventType":{"type":"string","description":"Type of the event emitted by Actito."},"operation":{"type":"string","description":"Operation name provided by Actito."},"data":{"description":"Event-specific payload.","$ref":"#/components/schemas/NewProfile"}},"additionalProperties":false,"description":"Envelope for Actito webhook payloads."},"NewProfile":{"type":"object","properties":{"profileId":{"type":"integer","description":"Numeric profile identifier.","format":"int64"}},"additionalProperties":false,"description":"Minimal profile identifier payload from Actito."},"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}/webhooks/listeners/actito/profile/{eventType}":{"post":{"tags":["Actito"],"summary":"Handle Actito profile creation and updates","description":"Webhook endpoint called by Actito when customer profiles are created or updated.\n\n## Event Types\n- **CREATE**: New customer profile created in Actito\n- **UPDATE**: Existing customer profile modified\n\n## Integration Flow\n1. Actito sends webhook with profile event\n2. System retrieves full profile data from Actito API\n3. Updates local customer records\n4. Triggers pass updates if profile changes affect pass content\n\n## Use Cases\n- Customer data synchronization\n- Loyalty tier changes reflected in passes\n- Profile enrichment from marketing campaigns","parameters":[{"name":"eventType","in":"path","description":"CREATE or UPDATE.","required":true,"schema":{"$ref":"#/components/schemas/ProfileEventType"}},{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Actito event with profile identifier.","content":{"application/json":{"schema":{"description":"Envelope for Actito webhook payloads.","$ref":"#/components/schemas/NewProfileActitoWrapper"}},"text/json":{"schema":{"description":"Envelope for Actito webhook payloads.","$ref":"#/components/schemas/NewProfileActitoWrapper"}},"application/*+json":{"schema":{"description":"Envelope for Actito webhook payloads.","$ref":"#/components/schemas/NewProfileActitoWrapper"}}}},"responses":{"200":{"description":"OK"},"208":{"description":"Already Reported"},"401":{"description":"Unauthorized","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":"Internal Server Error"}}}}}}
```
